Я использую установку двойной загрузки с grub 2.02-beta2, которая позволяет мне переключаться между Windows 7 и arch linux на настольном компьютере x64. Они оба установлены на моем диске C: на одном физическом жестком диске. (Обычным решением было переключить BIOS на загрузку с жесткого диска Windows, для меня это невозможно)
Теперь Microsoft выпустила проблемное обновление безопасности за октябрь 2016 года, установка которого не удается при перезагрузке при использовании загрузчика GRUB. Таким образом, я пытаюсь добиться следующего:
- Как-то отключить загрузчик GRUB, чтобы мой ПК автоматически загружал Windows, не теряя никаких данных Linux (один раздел на C и один раздел на D)
- Установите все обновления, перезагрузите несколько раз.
- Используя Live CD или что-то подобное, восстановите предыдущую конфигурацию GRUB без потери данных.
решение1
Хорошо, сегодня у меня наконец-то появилось время, и я это сделал. Приготовьтесь, это займет некоторое время. ПРЕЖДЕ ЧЕМ ВЫПОЛНЯТЬ ЛЮБУЮ ИЗ ЭТИХ КОМАНД, убедитесь, что у вас есть система UEFI или BIOS, и есть ли у вас таблица разделов GPT или MBR. Очевидно, что это идет с 0 гарантией, это просто то, что сработало для меня, я использовал много ответов на StackOverflow и других форумах. К сожалению, мне разрешено ссылаться только на 2.
Шаг 0: РЕЗЕРВНОЕ КОПИРОВАНИЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ. Я использовал Reflect, он бесплатный, он делает свою работу, есть много других вариантов. Купите большой внешний HDD, поместите свои файлы в облако (я могу порекомендовать Cryptomator, если вы беспокоитесь о конфиденциальности. Например, Google Drive дает вам 15 ГБ бесплатно.) Серьезно, все может пойти не так, и есть реальный шанс, что вам придется переустановить как минимум 1 ОС.
Шаг 1: Удалить/перезаписать GRUB.
Для меня это было то, что заняло больше всего времени. По сути, вам нужно просто перезаписать MBR (я не самый подкованный в этих технических тонкостях. Вам нужно проверить, есть ли у вас UEFI или BIOS — у меня UEFI — и является ли ваша таблица разделов GPT или MBR. У меня MBR по какой-то причине, это старый стандарт.) GRUB, чтобы он указывал напрямую на Windows, затем вы можете установить обновление.
Описание того, как это сделать, можно найтиздесь. Я бы посоветовал попробовать сначала из Windows, это заняло у меня очень много времени, так как моя Windows вообще не загружалась в этот момент в течение 2 часов или около того. В конце концов, исправление запуска не сработало. Мне пришлось выбрать USB: вместо UEFI: в BIOS и выполнить много команд в командной строке:
bootrec /fixmbr
bootrec /fixboot
fixboot не удался для меня с "элемент не найден". Затем я последовалэтотстатья, особенно (ОСТОРОЖНО! ИЗМЕНИТЕ БУКВУ ДИСКА НА ПРАВИЛЬНУЮ ДЛЯ ВАС) bcdboot C:\Windows /SC: Выполните bootrec, сделайте раздел активным, выполните справку по загрузке один раз и, надеюсь, ваша Windows теперь загрузится.
Как только мы достигнем этого статуса, мы можем перезагрузить Windows несколько раз, установить все обновления и радоваться нашей новой безопасной системе. Затем мы понимаем, что хотим вернуть Linux.
Шаг 2: Переустановить grub
Для этого я загружал arch linux с моего HDD. Здесь мне пришлось сделать mv /dev/disk/by-label/MYLINUXLIVE /dev/disk/by-label/ARCH_, чтобы он загрузился. Затем я использовал sudo fdisk -l, чтобы найти раздел Linux. Теперь вы хотите смонтировать его и выполнить chroot в него sudo mount /dev/sdXY /mnt sudo arch-chroot Теперь мы хотим установить grub, который снова перезапишет MBR. sudo grub-install --target=i386-pc --recheck /dev/sdUV grub-mkconfig -o /boot/grub/grub.cfg exit reboot
Надеюсь, теперь загрузится grub. У меня сначала не нашелся windows, но это легко исправить.
Шаг 3: Добавить запись Windows обратно в grub (необязательно)
Загрузитесь в старую установку arch/Linux, запустите os-probe
, он обнаружит windows и запустит sudo grub-update
. В Arch по умолчанию нет grub-update, поэтому вот исходный код:
#!/bin/sh
set -e
exec grub-mkconfig -o /boot/grub/grub.cfg "$@"
После этого все стало так же, как и раньше, за исключением того, что было установлено проблемное обновление, и я потерял немного нервов.
решение2
Ответ Джеффа — хороший ответ. Я настоятельно рекомендую Boot-Repair:
https://sourceforge.net/projects/boot-repair-cd/
Это позволило мне сбросить MBR для загрузки непосредственно в Windows, а затем после обновления Windows переустановить Grub и вернуться в режим двойной загрузки.