Как создать загрузочный носитель 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. Это оно!

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

Оглавление

  • Копировать файлы из метода ISO
    1. Пример через терминал
    2. Пример через GUI
    3. Пример на Windows
  • Метод обратной петли 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. Пример через GUI

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

    nautilus, показывающий установщик образа диска в контекстном меню, когда выбран.iso-файл

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

    GParted показывает, как управлять флагами разделов

1.3. Пример на Windows

  1. То же, что и выше, просто скопируйте файлы.
  2. Нажмите 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. Запустите эту командную строку,

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

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

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

https://help.ubuntu.com/community/Installation/iso2usb

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

С помощью 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!)

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