Как создать загрузочный носитель USB с поддержкой только UEFI?
При установке Ubuntu на доступные в настоящее время компьютеры с Windows 8 могут возникнуть проблемы с загрузкой мультимедиа в реальном времени.
Другими словами, ключевое преимущество создания загрузочного USB-носителя с поддержкой только UEFI: вы знаете, что оно определенно загружается и устанавливается через UEFI.
Поскольку Valve уже делает загрузочные USB-установщики только для UEFI с их основанной на Debian Steam OS и UNetbootin - наиболее популярной альтернативой Ubuntu Startup Disk Creator - не поддерживает UEFI и поэтому вводит в заблуждение, я думаю, что у нас должна быть отдельная тема для создание загрузочных носителей USB с поддержкой только UEFI.
3 ответа
обзор
Создать загрузочный носитель USB с поддержкой UEFI довольно просто. Просто скопируйте файлы на USB-накопитель в формате FAT32. Это оно!
Помните, что для установки или загрузки носителя:
- Возможно, вам все равно придется явно указать компьютеру загрузку носителя через UEFI.
- Рекомендуется таблица разделов GPT, как в предустановках Windows 8 и более поздних версий.
- Используйте последние ISO-образы AMD64 (LTS), потому что они определенно содержат загрузчики UEFI.
Оглавление
- Копировать файлы из метода ISO
- Пример через терминал
- Пример через GUI
- Пример на Windows
- Метод обратной петли ISO (расширенный)
- Создание двоичного файла
- Создание файла конфигурации
- Добавление постоянства
- Проверка целостности
- UEFI Безопасная загрузка
1. Скопируйте файлы из метода ISO
Этот метод также работает для других установочных носителей, содержащих загрузчики EFI, например Windows.
1.1. Пример через терминал
Вы можете сделать что-то вроде следующего, если 604A-00EA
это ваш USB-накопитель, и у вас уже есть p7zip
установлены:
$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/
Вы сделали, если у вас есть только один раздел на этом USB-диске, в противном случае вам нужно пометить раздел как загрузочный, например, через parted
:
# parted /dev/sdX set 1 boot on
куда /dev/sdX
будет вашим USB-накопителем и 1
номер раздела, который следует использовать для загрузки.
1.2. Пример через GUI
Смонтируйте.iso-файл и скопируйте его содержимое на USB-накопитель. Нажмите Ctrl + H в Nautilus, чтобы отобразить и скопировать скрытые файлы.
Добавьте флаг загрузки через GParted.
1.3. Пример на Windows
- То же, что и выше, просто скопируйте файлы.
- Нажмите Windows / Super + X, перейдите в Управление дисками и проверьте, помечен ли раздел как активный. В версиях Windows до Windows 8 вы нажимаете Windows / Super + R, чтобы открыть меню запуска и открыть
diskmgmt.msc
, что бы открыть Управление дисками.
2. Метод обратной петли ISO (расширенный)
Вместо того, чтобы извлекать содержимое из образа ISO, GRUB и GRUB2 были в состоянии загружаться из образов ISO непосредственно через устройство обратной связи. Учитывая, что ISO-образ является загрузочным UEFI, мы можем настроить USB-накопитель, содержащий несколько ISO-файлов, с разными операционными системами, не создавая беспорядка на USB-накопителе.
Если вы тоже хотите загрузить Windows, вы можете посмотреть на SARDU. Я помню, как использовал его в Windows PE в 2005 году, и, похоже, он был обновлен для поддержки USB-накопителей и UEFI, но помните, что этот инструмент также поддерживает устаревшую загрузку.
Что нам нужно?
- Очень базовые знания конфигурационных файлов GRUB.
- Очень базовые знания по загрузке UEFI и GRUB, так как мы собираемся создать собственный образ загрузчика GRUB с большим количеством модулей.
- Загрузочный ISO-образ UEFI, USB-накопитель в формате FAT и компьютер под управлением Linux.
- Нет, нам не нужна UEFI-установка Linux (которая может быть в ситуации курицы и яйца), традиционная виртуальная машина Linux, как в VirtualBox, подойдет.
2.1. Создание двоичного файла
На вашей машине с Ubuntu или виртуальной машиной убедитесь, что установлен пакет grub-efi-amd64-bin (grub-efi-ia32-bin также доступен для 32-разрядных архитектур Intel в новых версиях). Пакет может иметь другое имя в другом дистрибутиве, вы можете сравнить список файлов пакета, чтобы найти нужный пакет в вашем дистрибутиве.
Следующая команда создаст образ GRUB, в этом случае двоичный файл EFI, который должен быть в состоянии запустить каждый компьютер с микропрограммой UEFI:
grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
fat iso9660 part_gpt part_msdos \
normal boot linux configfile loopback chain \
efifwsetup efi_gop efi_uga \
ls search search_label search_fs_uuid search_fs_file \
gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
exfat ext2 ntfs btrfs hfsplus udf
Каждая стандартная прошивка UEFI должна смотреть в \EFI\BOOT\
для файла с именем boot{arch}.efi
поэтому создайте папки на USB-накопителе и скопируйте только что созданный образ в это место. Возможны другие архитектуры вместо x64, но давайте будем проще с x64 / amd64.
2.2. Создание файла конфигурации
Очень простой пример для grub.cfg
файл конфигурации, который должен быть расположен в том же каталоге, что и bootx64.efi
будет выглядеть так:
set timeout=3
set color_highlight=black/light-magenta
menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
menuentry 'Ubuntu' {
chainloader /efi/ubuntu/grubx64.efi
}
menuentry 'Windows' {
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Firmware Setup' {
fwsetup
}
}
Важным является блок конфигурации с заголовком Boot Ubuntu 14.04.2 LTS from ISO
, Вы можете изменить цвет и время ожидания по своему вкусу. Я выбрал black/light-magenta
поскольку он по-прежнему выглядит немного Ubuntu-иш, но легко различим при загрузке по цепочке других конфигураций. Вы можете найти больше примеров для других дистрибутивов в Arch Wiki, и чтение руководства GRUB действительно стоит вашего времени, если вы хотите пойти дальше.
Возвращаясь к блоку конфигурации, должно быть очевидно, что ISO называется /efi/boot/ubuntu-14.04.2-desktop-amd64.iso
так что скопируйте ваш ISO в \EFI\BOOT\
и заменить ubuntu-14.04.2-desktop-amd64.iso
в конфигурации с фактическим именем файла вашего ISO.
loopback loop $isofile
это строка, которая будет загружать наш файл ISO на устройство с обратной связью, с которого мы можем напрямую загружать ядро Linux. Это возможно, потому что наш образ EFI GRUB включает в себя модуль обратной петли. (Чтобы выяснить, какие модули целесообразно включать, потребовалось немного проб и ошибок. Вы не должны видеть никаких сообщений об ошибках, хотя это все еще не идеально.) Говоря о ядре, вы можете добавить такие параметры ядра, как toram
, параметры для разных языков (пример locale=de_DE bootkbd=de
) и как в примере: persistent
2,3. Добавление постоянства
Вы можете добавить раздел, как описано в разделе: Как заставить live-USB использовать раздел для сохранения? Или вы можете создать casper-rw
файл и поместите его в корень вашего USB-накопителя.
dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw
Я не проверял абсолютный максимум, он должен быть где-то между 4094 и 4096 МБ. Используйте раздел, если вы собираетесь использовать больше места. Обратите внимание, что каждое изменение (root) является модификацией оверлейной файловой системы, даже удаляя файлы.
2,4. Проверка целостности
Вы должны посмотреть ответы на следующие вопросы, чтобы убедиться, что содержимое Live ISO на USB-накопителе находится в идеальном состоянии:
- Как я могу проверить целостность загруженного компакт-диска Ubuntu?
- Можно ли выполнить проверку целостности загрузочного диска USB?
2.5. UEFI Безопасная загрузка
Безопасная загрузка станет обязательной для компьютеров с Windows 10, я предлагаю вам взглянуть на PreLoader Linux Foundation, чтобы добавить функцию безопасной загрузки в эту настройку. Вот несколько ASCII-иллюстраций, иллюстрирующих меню прилагаемого HashTool.
Поздравляю, я бы сказал, что вы уже освоили загрузку UEFI и больше не должны бояться.
Извлечь из файла ISO в FAT32
Извлечение содержимого ISO-файла 64-битного рабочего стола Ubuntu в раздел с файловой системой FAT32 и загрузочным флагом сделает работу: создать живой диск, который загружается только в режиме UEFI. Это называется "Копировать файлы из метода ISO" здесь (в принятом ответе).
Проверьте, работает ли в режиме UEFI или BIOS
Но это легко проверить в работающей системе Ubuntu (работающей и установленной), если она была загружена в режиме UEFI или BIOS. Запустите эту командную строку,
test -d /sys/firmware/efi && echo efi || echo bios
Это упрощает использование действующих систем, которые могут использоваться в обоих режимах загрузки, что также может быть преимуществом.
Смотрите также следующие ссылки для более подробного объяснения и описания метода,
С помощью dd
у меня работало, почему-то не работала версия с графическим интерфейсом. Итак, во-первых, вы можете отслеживать ходы dd, другой вариант использует опцию SIGUSR1 для запуска dd
периодически сообщать о прогрессе, но это сложнее, чем pv
,
Затем:
sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use
(/dev/device_you_want_to_use
как правило, будет /dev/sdb
, но проверить с df
!)