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

7

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

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

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

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

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

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

[email protected]:~$ 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

[email protected]:~$ 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

[email protected]:~$ 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)
    
задан yxd 09.12.2012 в 22:00
источник

4 ответа

5

Загрузите в 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 реализует исправление, которое по крайней мере столь же уродливое и запутанное, как ошибка, которую он обходит: он переименовывает эти два загрузочных загрузчика по умолчанию с расширениями .bkp , помещает копии GRUB в их место и настраивает GRUB, чтобы он запускал загрузчики Windows, используя их новые имена. Это приводит к загрузке GRUB, но так, что Windows не понимает и может попытаться «исправить» себя. Я думаю, что это то, что происходит - когда Windows загружается, он видит, что его загрузчик был перезаписан другим, и поэтому он пытается исправить проблему.

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

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

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

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

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

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

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

    
ответ дан Rod Smith 10.12.2012 в 00:18
0

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

  1. запустить Boot-Repair - & gt; Расширенные параметры - & gt; Untick Backup and rename EFI files - & gt; tick Restore EFI backups - & gt; Применить.
  2. Перезагрузите компьютер.
  3. Если он загружается непосредственно в Windows, настройте прошивку UEFI (~ BIOS) для загрузки записи Ubuntu , а затем перезагрузитесь.
ответ дан LovinBuntu 10.12.2012 в 21:12
0

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

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

ответ дан Kouros 04.01.2013 в 05:37
0

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

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

powercfg /h off

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

powercfg /a     

ответ дан alfioalex 28.04.2014 в 13:53