На моем новом ПК с 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 попытаться «починить» загрузчик дополнительного диска. Кто-нибудь знает что-нибудь об этом?