обзор
Создать загрузочный носитель 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-накопителе находится в идеальном состоянии:
2.5. UEFI Безопасная загрузка
Безопасная загрузка станет обязательной для компьютеров с Windows 10, я предлагаю вам взглянуть на PreLoader Linux Foundation, чтобы добавить функцию безопасной загрузки в эту настройку. Вот несколько ASCII-иллюстраций, иллюстрирующих меню прилагаемого HashTool .
Поздравляю, я бы сказал, что вы уже освоили загрузку UEFI и больше не должны бояться.
Извлечь из файла ISO в FAT32
Извлечение содержимого ISO-файла 64-битного рабочего стола Ubuntu в раздел с файловой системой FAT32 и загрузочным флагом сделает работу: создать живой диск, который загружается только в режиме UEFI. Это называется «Копировать файлы из метода ISO» здесь (в принятом ответе).
Проверьте, работает ли в режиме UEFI или BIOS
Но это легко проверить в работающей системе Ubuntu (работающей и установленной), если она была загружена в режиме UEFI или BIOS. Запустите эту командную строку,
Это упрощает использование действующих систем, которые могут использоваться в обоих режимах загрузки, что также может быть преимуществом.
Смотрите также следующие ссылки для более подробного объяснения и описания метода,
help.ubuntu.com/community/Installation/iso2usb
help.ubuntu.com/community/Installation/iso2usb/diy
источник
Использование
dd
работало для меня, по некоторым причинам, версия GUI не работала. Итак, во-первых, вы можете захотеть отслеживать прогрессирование dd , другой вариант - использовать опцию SIGUSR1, чтобыdd
периодически сообщать о прогрессе, но это сложнее, чемpv
.Затем:
(
/dev/device_you_want_to_use
как правило, будет/dev/sdb
, но посоветуйтесь сdf
!)источник