На моем новом ПК с Windows 7 на базе GPT/EFI я пытался установить диск MBR на своем старом ПК в качестве дополнительного диска SATA1. У меня есть Windows 7 и Linux Mint с двойной загрузкой на новом SATA0, но я все еще хочу использовать старый диск в качестве дополнительного резервного диска, а со старым диском MBR, подключенным к SATA1, Windows 7 настаивает на попытке загрузки от него. Возможно, если бы я вытер диск и перешел к схеме разбиения GPT, я был бы в порядке, но я все еще не готов полностью уничтожить разделы (и данные), которые там находятся.
Поэтому я попытался обнулить часть загрузчика MBR, используя dd, чтобы скопировать 446 байтов нулей в начало диска. И это сработало - отчасти. С новым нулевым значением загрузчика я могу загрузить Windows ровно один раз, а второй диск подключен к SATA1. После этого Windows 7 снова пытается загрузиться со второго диска - за исключением того, что теперь вместо загрузки загрузчика grub, который был там, она выдает ошибку «no OS found». И забавно то, что если я сравниваю обнуленную MBR от до загрузки окон с MBR после загрузки окон, она изменилась:
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 попытаться «починить» загрузчик дополнительного диска. Кто-нибудь знает что-нибудь об этом?