Порядок загрузки UEFI в зависимости от того, подключен ли USB-накопитель

Я хочу попробовать Ubuntu 14.04 LTS. Поскольку я не хочу переустанавливать Windows после этого, я установил его через DVD-ROM на мою флешку usb 3.0 (64 ГБ). Это работало нормально.

Во-первых, когда я перезагружал компьютер, мне было интересно, что окна больше не запускаются, когда USB-флешка не была подключена. Я выяснил почему и изменил порядок загрузки в разделе GPT, используя Параметр -o efibootmgr.

Теперь мне нужно нажать F9, чтобы войти в меню загрузки UEFI моего ноутбука HP, и затем я могу выбрать Ubuntu. Все хорошо.

Осталось одно, что меня беспокоит: могу ли я настроить, чтобы ubuntu автоматически запускался при подключении USB-накопителя? Без USB-флешки окна должны нормально запускаться без отображения grub?

sudo efibootmgr -v
[sudo] password for alex: 
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0001,0000,0004,9999
Boot0000* ubuntu    HD(2,145800,82000,1ec11f19-24da-44cd-8ac6cd26205992d2)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,145800,82000,1ec11f19-24da-44cd-8ac6-cd26205992d2)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0004* Internal Hard Disk    ACPI(a0341d0,0)PCI(11,0)SATA(0,ffff,0)HD(2,145800,82000,1ec11f19-24da-44cd-8ac6-cd26205992d2)..BO
Boo9999* USB Drive (UEFI)   ACPI(a0341d0,0)PCI(1d,0)USB(10,0)..BO

alex@alex-desktop:~$ sudo parted -l
Modell: ATA SAMSUNG SSD 830 (scsi)
Festplatte  /dev/sda:  256GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem  Name                          Flags
 1      1049kB  683MB   682MB   ntfs         Basic data partition          versteckt, diag
 2      683MB   955MB   273MB   fat32        EFI system partition          boot, esp
 3      955MB   1089MB  134MB                Microsoft reserved partition  msftres
 4      1089MB  232GB   231GB   ntfs         Basic data partition          msftdata
 5      232GB   256GB   24,0GB  ntfs         Basic data partition          versteckt, msftdata


Modell: SanDisk Extreme (scsi)
Festplatte  /dev/sdb:  32,0GB
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Typ       Dateisystem  Flags
 1      1049kB  28,4GB  28,4GB  primary   ext4         boot
 2      28,4GB  32,0GB  3652MB  extended
 5      28,4GB  32,0GB  3652MB  logical
2
задан 8 June 2015 в 07:11

1 ответ

Фон: EFI использует переменную порядка загрузки, сохраненную в NVRAM для определения, что загрузиться. (Это BootOrder: строка в efibootmgr вывод.) Эти записи указывают на программные файлы EFI, сохраненные на Системном разделе EFI (ESP), к сетевым устройствам, и так далее. У Вас может быть несколько ESPs, и каждый ESP может иметь несколько загрузочных файлов EFI. Если один загрузочный файл перестал работать, ESP должен ронять к следующему в его списке.

Ваша проблема состоит в том, что, хотя Ubuntu установлена на Вашей карте флэш-памяти с интерфейсом USB, что флеш-накопитель не имеет никакого ESP, и выглядит, как будто GRUB был установлен в ESP на жестком диске. К сожалению, Ваша конфигурация GRUB полагается на конфигурационные файлы на Карте памяти, поэтому если Карта памяти будет отключена, когда GRUB запустится, GRUB будет ронять к a grub> подсказка, но это не перестанет работать в смысле возврата EFI так, чтобы EFI мог запустить следующий загрузчик. При первой установке Ubuntu этот GRUB был установлен как загрузчик по умолчанию, таким образом, Вы видели тип отказа, Вы описываете. Вы изменили значение по умолчанию на Windows, который заставляет его загружаться правильно, но мешает загружать Ubuntu. Существует несколько способов очистить это:

  • Можно жить с ним как есть и использовать встроенный диспетчер начальной загрузки компьютера (ключ F9, который Вы упоминаете) выбрать который ОС загрузиться. Этим решением является самое безопасное, так как это не включает изменений, которые могли бы усугубить положение.
  • Можно попытаться реконфигурировать GRUB для чтения его конфигурационного файла из ESP, а не из Ubuntu /boot каталог, затем сбрасывает GRUB как значение по умолчанию. GRUB должен затем представить меню начальной загрузки, которое позволит Вам выбрать свою желаемую немного легче ОС. Я немного ржав о том, как сделать это, все же. Проверьте эту старую страницу документации на все окровавленные детали (и затем некоторые). Обратите внимание, что GRUB автоматически не выберет Ubuntu, если и только если Карта памяти включается - или по крайней мере, если это может быть настроено, чтобы сделать это, я не знаю как.
  • Можно повторно разделить внутренний жесткий диск для включения Ubuntu /boot раздел и копия его файлы там. Необходимо будет затем переустановить GRUB. В теории это должно затем работать, включается ли Карта памяти, но это автоматически не выберет Ubuntu, когда Карта памяти будет включена и Windows, когда это не включается. Эта опция является одним из самых опасных, так как это включает изменение размеров Ваших дисковых разделов.
  • Создайте ESP на своей карте флэш-памяти с интерфейсом USB и установите GRUB там с помощью имени файла нейтрализации EFI/BOOT/bootx64.efi. (Процесс установки, вероятно, будет немного замысловатым, все же.) Можно затем использовать диспетчер начальной загрузки (F9) для переключения между Картой памяти (GRUB/Ubuntu) и Windows. Некоторый EFIs мог бы позволить Вам установить Карту памяти по умолчанию, если бы это включается, который дал бы Вам автоматическую начальную загрузку Ubuntu, когда это доступно, который Вы хотите, но я не могу обещать, что эта деталь будет работать, как Вы хотите. Необходимо будет определенно повторно разделить Карту памяти (который добавляет немного риска), и Вы, возможно, должны преобразовать диск от MBR до GPT. Одно преимущество этого подхода состоит в том, что Карта памяти должна быть независимо загрузочной на примерно любом основанном на EFI компьютере той же архитектуры.
  • Можно установить мой диспетчер начальной загрузки перенаходки на ESP. С несколькими тонкими настройками конфигурации (главным образом установка default_selection vmlinuz,Windows или что-то подобное в refind.conf файл), это должно загрузить Ubuntu по умолчанию, когда Карта памяти включается и Windows, когда Карта памяти не включается.

Могут быть другие возможные решения также, но они - те, которые приходят на ум. Лучшие из них, вероятно, оставляют его как есть, создавая ESP на Вашей Карте памяти и переустанавливая GRUB там, и использование повторно находит.

2
ответ дан 8 June 2015 в 07:11

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

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