Как создать загрузочный USB-носитель UEFI?

84

Наличие живых носителей, которые могут загружаться в обоих направлениях, может быть проблемой при установке Ubuntu на доступные в настоящее время компьютеры под управлением Windows 8.

Другими словами, ключевым преимуществом создания UEFI-only загрузочного USB-носителя является: вы знаете, что он определенно загружен и установлен через UEFI.

Так как Valve уже делает UEFI-загрузку только USB-установщиков с их Debian-based Steam OS и UNetbootin - самой популярной альтернативой Ubuntu Startup Disk Creator - не совместим с UEFI и, следовательно, вводящий в заблуждение, я думаю, что у нас должна быть отдельная тема для создания загрузочных USB-носителей с поддержкой UEFI.

    
задан LiveWireBT 26.12.2013 в 11:03
источник

3 ответа

104

Обзор

Создание загрузочных USB-носителей с поддержкой UEFI довольно прямолинейно. Просто скопируйте файлы на USB-диск с FAT32-форматированным . Вот и все!

Помните, что для установки или загрузки носителя:

Содержание

  • Скопировать файлы из метода ISO
    1. Пример через терминал
    2. Пример с помощью графического интерфейса пользователя
    3. Пример для Windows
  • Метод loopback ISO (расширенный)
    1. Создание двоичного файла
    2. Создание файла конфигурации
    3. Добавление стойкости
    4. Проверка целостности
    5. Безопасная загрузка 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. Пример с помощью графического интерфейса пользователя

  1. Смонтируйте .iso-файл и скопируйте содержимое на свой USB-накопитель. Нажмите Ctrl + H в Наутилусе, чтобы отображать и копировать скрытые файлы.

  2. Добавьте флаг загрузки через GParted .

1.3. Пример в Windows

  1. То же, что и выше, просто скопируйте файлы.
  2. Нажмите Windows / Super + X , перейдите в Управление дисками и проверьте, отмечен ли раздел как активный. В версиях Windows до Windows 8 вы нажимаете Windows / Super + R , чтобы открыть меню прогона и откройте diskmgmt.msc , открыв управление дисками.

2. Метод обратной петли ISO (расширенный)

Вместо того, чтобы извлекать содержимое из образа ISO, GRUB и GRUB2 могли загружаться из образов ISO непосредственно через устройство loopback. Учитывая, что образ ISO является загрузочным для UEFI, мы можем настроить USB-накопитель, содержащий несколько ISO, с различными операционными системами без создания беспорядка на USB-накопителе.

Если вы хотите также загрузить Windows, вы можете посмотреть SARDU . Я помню, как я использовал его с Windows PE около 2005 года и, похоже, он был обновлен для поддержки USB-накопителей и UEFI, но помните, что этот инструмент также поддерживает устаревшую загрузку.

Что нам нужно?

  • Очень простое знание конфигурационных файлов GRUB.
  • Очень простые знания по загрузке UEFI и GRUB, так как мы собираемся создать собственный образ загрузчика GRUB с большим количеством модулей.
  • Загрузочный ISO-образ UEFI, USB-накопитель FAT и машина, работающая под управлением Linux.
    • Нет, нам не нужна установка UEFI Linux (это может быть ситуация с курицей и яйцом), традиционная Linux VM, как в VirtualBox, прекрасна.

2,1. Создание двоичного

На вашей машине Ubuntu или VM убедитесь, что пакет 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-ish, но легко различим при загрузке других конфигураций. Вы можете найти другие примеры для других дистрибутивов в 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-файл в loopback-устройство, из которого мы можем напрямую загрузить ядро ​​Linux. Это возможно, потому что наше изображение EFI GRUB включает в себя модуль loopback. (Немного проб и ошибок участвовали в определении того, какие модули разумно включать. Вы не должны видеть никаких сообщений об ошибках, но это все еще не идеально.) Говоря о ядре, вы можете добавить параметры ядра, такие как 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) является модификацией файловой системы overlay, даже удаление файлов.

2.4. Проверка целостности

Вы должны посмотреть ответы на следующие вопросы, чтобы убедиться, что содержимое Live ISO на USB-накопителе находится в первозданном состоянии:

2.5. Безопасная загрузка UEFI

Безопасная загрузка станет обязательной для машин с Windows 10, я предлагаю вам ознакомиться с PreLoader Linux Foundation, чтобы добавить функциональность Secure Boot к этой настройке. Вот некоторые ASCII-арт, иллюстрирующие меню сопровождающего HashTool .

Поздравляю, я бы сказал, что теперь вы освоили загрузку UEFI и больше не должны бояться.

    
ответ дан LiveWireBT 26.12.2013 в 11:03
источник
2

Извлечение из файла ISO в FAT32

Извлечение содержимого 64-разрядного ISO-файла Ubuntu на раздел с файловой системой FAT32, а флаг загрузки выполнит задание: создать живой диск, который загружается только в режиме UEFI. Он называется «Копировать файлы из метода ISO» здесь (в принятом ответе).

Проверьте, работает ли в режиме UEFI или BIOS

Но это легко проверить в запущенной системе Ubuntu (как в реальном времени, так и при установке), если она была загружена в режиме UEFI или BIOS. Запустите эту командную строку,

test -d /sys/firmware/efi && echo efi || echo bios

Это упрощает использование живых систем, которые могут использоваться в обоих режимах загрузки, что также может быть преимуществом.

См. также следующие ссылки для более подробного объяснения и описания метода,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

    
ответ дан sudodus 19.09.2017 в 22:21
1

Использование dd работало для меня, по какой-то причине версия GUI не работала. Итак, во-первых, вы можете отслеживать progess 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 !)

    
ответ дан sup 27.07.2014 в 14:43