
На моем новом ПК с Windows 7 на базе GPT/EFI я пытался установить диск MBR моего старого ПК как вторичный диск SATA1. У меня Windows 7 и Linux Mint с двойной загрузкой на новом SATA0, но я все равно хочу использовать старый диск как вторичный резервный диск, и со старым диском MBR, подключенным к SATA1, Windows 7 настаивает на попытке загрузки с него. Возможно, если бы я стер диск и перешел на схему разбиения на разделы GPT, все было бы в порядке, но я все еще не готов полностью стереть разделы (и данные), которые там находятся.
Поэтому я попытался обнулить часть загрузчика MBR, используя dd для копирования 446 байт нулей в начало диска. И это сработало — отчасти. С обнуленным загрузчиком я могу загрузить Windowsровно один разсо вторым диском, подключенным к SATA1. После этого Windows 7 снова пытается загрузиться со второго диска - за исключением того, что теперь вместо загрузки загрузчика grub, который был там раньше, он выдает ошибку «ОС не найдена». И самое забавное, что если я сравню обнуленную MBR до загрузки Windows с MBR после загрузки Windows, она изменится:
cmp -l mbr.beforewindows mbr.afterwindows
441 0 161
442 0 342
443 0 312
444 0 50
Видимо, Windows в своей бесконечной мудрости изменила пустой MBR. Согласно Википедии, ячейки MBR 440-443 являются «32-битной подписью диска (необязательно, UEFI, Windows NT/2000/Vista/7 и другие ОС)», а ячейка 444 должна быть 0. Таким образом, Windows 7, похоже, видит диск и решает сделать его загрузочным, что мешает ей загружаться с присутствующим диском. Браво, Microsoft!
Ну, может быть, при первой загрузке, когда Windowsделаетпри запуске я вижу диск в диспетчере устройств и говорю Windows не пытаться с него загружаться...
Кажется, я где-то натыкался на похожий пост с советами о том, как остановить попытки Windows «исправить» загрузчик вторичного диска. Кто-нибудь знает что-нибудь об этом?