Windows 8 меняет GRUB2 при каждой загрузке!

Я установил Windows 8 и Ubuntu 12.10 в стиле UEFI (сначала win8, затем ubuntu). GRUB2 показывает мне обе записи Ubuntu и Win8.

Если я загружаюсь в Ubuntu, это нормально. Я мог перезагрузиться в любое время, когда я увижу GRUB2 без изменений.

История меняется, когда я загружаюсь в Win8. Когда я загружаюсь в Win8 с помощью GRUB2, я перехожу к диспетчеру загрузки Windows (в котором есть только запись Windows 8). Я ударил Windows, и он загружается нормально. При перезагрузке нет ни GRUB2, ни Win loader. У него нет загрузчика.

Я загрузил LiveCD и скачал boot-repair и все вернулось. Это бесконечный цикл.

GRUB2 должен загружать загрузчик Win? Что я могу сделать, чтобы это исправить?

Дополнительная информация:

USER@MACHINE:~$ ls -l `find /boot/efi -iname "*\.efi"`

-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
-rwxr-xr-x 1 root root 1350896 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgr.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/Microsoft/Boot/bootx64.efi
-rwxr-xr-x 1 root root 1263856 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/memtest.efi
-rwxr-xr-x 1 root root  897400 Dec  9 21:41 /boot/efi/EFI/ubuntu/grubx64.efi
-rwxr-xr-x 1 root root 1357480 Dec  9 21:41 /boot/efi/EFI/ubuntu/shimx64.efi

USER@MACHINE:~$ ls -l `find /boot/efi -iname "*\.bkp"`

-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Boot/bootx64.efi.bkp
-rwxr-xr-x 1 root root 1354480 Jul 25 20:57 /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi.bkp

USER@MACHINE:~$ sudo parted /dev/sda print

Model: ATA ST31000524AS (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name                          Flags
 1      1049kB  316MB   315MB   ntfs            Basic data partition          hidden, diag
 2      316MB   420MB   105MB   fat32           EFI system partition          boot
 3      420MB   555MB   134MB                   Microsoft reserved partition  msftres
 4      555MB   751GB   750GB   ntfs            Basic data partition
 5      751GB   998GB   248GB   ext4
 6      998GB   1000GB  2000MB  linux-swap(v1)
7
задан 14 April 2013 в 03:37

4 ответа

Microsoft, как всегда, отстой, им не нужна другая ОС, поэтому они просто перезаписывают менеджер загрузки. Ищите bcdedit в Windows 8. До сих пор я не узнал, как его изменить.

Предотвратить Windows 8 от перезаписи bootmgr по умолчанию

0
ответ дан 14 April 2013 в 03:37

Windows 8 с включенной функцией быстрого перезапуска «восстановит» некоторые данные, включая загрузчики EFI, при завершении работы. Поэтому после того, как вы завершите настройку среды двойной загрузки и загрузите Windows 8 один раз, при следующей загрузке вы потеряете настройки двойной загрузки. Вот почему вам нужно отключить функцию быстрого перезапуска.

Запустите cmd.exe от имени администратора и введите:

powercfg /h off

Проверьте настройки:

powercfg /a

0
ответ дан 14 April 2013 в 03:37

Вместо рекомендуемого восстановления попробуйте следующее:

  1. запустите Boot-Repair -> Дополнительные параметры -> Снять галочку Backup and rename EFI files -> поставить галочку Restore EFI backups -> Применить. [ 113]
  2. Перезагрузите компьютер
  3. Если он загружается непосредственно в Windows, настройте прошивку UEFI (~ BIOS) для загрузки записи Ubuntu, затем перезагрузите компьютер.
0
ответ дан 14 April 2013 в 03:37

Загрузитесь в Linux, введите следующие три команды в оболочке и опубликуйте вывод здесь:

ls -l `find /boot/efi -iname "*\.efi"`
ls -l `find /boot/efi -iname "*\.bkp"`
sudo parted /dev/sda print

Обратите внимание, что это обратные галочки (слева от клавиши «1» на большинстве клавиатуры) вокруг команд find.

Результатом должен быть список всех загрузчиков вашего ESP, включая как обычные имена, так и переименованные версии, созданные Boot Repair; и список всех разделов на вашем диске.

Кроме того, какой компьютер вы используете? (Марка и модель.) Поставлялась ли она с Windows 8 или вы установили ее самостоятельно?

К сожалению, некоторые производители играют очень раздражающие игры со своими загрузчиками на предварительно загруженных компьютерах с Windows 8. ИМХО, срывать эти установки и начинать с нуля все больше и больше похоже на хорошее решение.


Отредактируйте / ответьте с учетом новой информации:

В вашем выводе нет ничего странного или неожиданного, поэтому похоже, что что-то в Windows «исправляет» то, что он видит как собственный «сломанный» загрузчик Это требует некоторой проработки, которая поможет вам понять, что происходит:

Реализация EFI (или UEFI, которая является просто EFI 2.x) должна проверять записи NVRAM, чтобы решить, какой загрузчик (файл с .efi расширение) для запуска при загрузке. Однако некоторые реализации не работают и загружают только загрузчик EFI/BOOT/bootx64.efi или EFI/Microsoft/Boot/bootmgfw.efi. Другие будут загружать другие загрузчики, но только если у них есть имя «Диспетчер загрузки Windows» или «Red Hat Enterprise Linux».

Чтобы обойти этот тип ошибки, инструмент Ubuntu Boot Repair реализует исправление, которое является по меньшей мере таким же уродливым и запутанным, как и ошибка, которую он обходит: переименовывает эти два загрузчика по умолчанию с расширениями .bkp, помещает копии GRUB в их место, и настраивает GRUB так, чтобы он запускал загрузчики Windows, используя их новые имена. Это загружает GRUB, но Windows не понимает и может попытаться «исправить» себя. Я думаю, что это то, что происходит - когда Windows загружается, он видит, что ее загрузчик был перезаписан другим, и поэтому пытается исправить проблему.

Я рекомендую вам попробовать следующее:

  1. Посетите веб-сайт производителя, чтобы узнать, есть ли обновление прошивки. Если есть, обновите свою прошивку до последней версии, на всякий случай есть исправление ошибки для этого типа ошибки загрузки.
  2. Загрузите Windows и перезагрузитесь, чтобы убедиться, что при перезагрузке вы переходите прямо в Windows. Вы хотите начать с этого момента, потому что он более стандартен, чем способ настройки Boot Repair.
  3. Загрузите аварийный диск Linux в режиме EFI. (Для этого установочный диск Ubuntu должен работать нормально.)
  4. При необходимости установите утилиту efibootmgr. На Ubuntu live CD вы можете сделать это, набрав sudo apt-get install efibootmgr.
  5. Тип sudo efibootmgr -c -l \\EFI\\ubuntu\\shimx64.efi -L "Windows Boot Manager" -p 2. Будьте осторожны, чтобы набрать эту команду точно , как указано, включая двойную обратную косую черту в качестве разделителей пути к каталогу. Это должно настроить GRUB для запуска в качестве загрузчика по умолчанию, присвоив ему ярлык прошивки «Диспетчер загрузки Windows» на случай, если у вас возникла эта ошибка. (Вы можете попробовать использовать менее обманчивое имя и на большинстве систем, которые будут работать, но, возможно, не для вас.) Если вы не не используете Secure Boot, вы можете заменить grubx64.efi на shimx64.efi в этой команде, но учитывая, что в вашей системе присутствует shimx64.efi, я подозреваю, что вы используете Secure Boot.
  6. Перезагрузитесь и проверьте его.

Если это работает на этом этапе, то отлично. Если он загружается в GRUB, но GRUB не может запустить Windows, вам может потребоваться настроить конфигурацию GRUB так, чтобы она ссылалась на EFI/Microsoft/Boot/bootmgfw.efi, а не на EFI/Microsoft/Boot/bootmgfw.efi.bkp.

Если вы не можете заставить свою систему запускать GRUB таким образом, то у вас может быть очень поврежденная прошивка в сочетании с чем-то в Windows, которое автоматически «исправляет» «поврежденный» загрузчик при каждой загрузке, закрывая Ваш лучший (хотя и некрасивый) путь ремонта. В этом случае у меня есть несколько дополнительных предложений:

  • Если компьютер достаточно новый, верните его в магазин и получите новый. Как продавцу, так и производителю объясните, почему вы его возвращаете.
  • Посмотрите, что в Windows проверяет и «восстанавливает» свой загрузчик, и отключите это. После этого вы сможете использовать Boot Repair в Ubuntu или сделать что-то подобное вручную, чтобы все заработало.
  • Создайте второй ESP и установите на него GRUB (или другой загрузчик Linux), используя имена Microsoft. Путем манипуляции с номерами разделов (например, с помощью gdisk - используйте опцию t в меню экспертов), вы сможете получить прошивку для использования желаемого загрузчика, в то время как Windows будет смотреть на свой собственный загрузчик. , Это очень умозрительный, хотя; это может вообще не сработать.
  • Создайте флэш-накопитель USB с помощью моего rEFInd boot manager. После этого вы сможете вставить его в компьютер и выполнить загрузку с USB-устройства, чтобы получить команду rEFInd, которая затем обнаружит как Windows, так и GRUB и даст вам возможность загрузки либо. С небольшой дополнительной реконфигурацией вы можете загрузить его непосредственно в Linux. Если вы можете настроить загрузку встроенного ПО с USB-устройства по умолчанию, вы можете оставить USB-накопитель постоянно подключенным для постоянного решения.
  • Установите rEFInd или GRUB из Windows. Я далек от этого, но если вы устанавливаете загрузчик из Windows (как описано на веб-сайте rEFInd), он может обойти все, что в Windows используется для манипулирования загрузчиками, что позволяет запускать предпочитаемый вами загрузчик по умолчанию. [тысяча сто тридцать одна]

Обратите внимание, что если вы используете какое-либо решение, включающее rEFInd, вам может потребоваться настроить его с помощью Secure Boot, с включением прыжков через некоторые дополнительные обручи. (Эта ситуация со временем улучшится, но сейчас все еще немного неловко.) В качестве альтернативы вы можете отключить Secure Boot в своей прошивке.

Надеюсь, это поможет!

0
ответ дан 14 April 2013 в 03:37

Другие вопросы по тегам:

Похожие вопросы: