Flash uefi boot: Создаем загрузочную флешку с Windows 10 для UEFI компьютера

NIXAID.COM

Здесь я хотел бы описать способ создания загрузочной флешки UEFI с несколькими дистрибутивами Linux

Все, что вам нужно, это Linux и флешка новый USB-накопитель, который будет отображаться как устройство /dev/sdb
Мы создадим необходимые разделы и временно смонтируем их в /target позже

Создание таблицы разделов GPT и системного раздела EFI

Для начала рекомендую почистить начало флешки, чтобы не заморачиваться с разными таблицами разделов

 дд, если=/dev/ноль из=/dev/sdb bs=2M count=2
синхронизировать ; эхо 1 | Тройник /proc/sys/vm/drop_caches
 

 

Затем создайте новую метку диска (таблицу разделов) типа GPT и следующие разделы.
Примечание. Вы можете начать мой первый раздел со смещением 2 МБ (вместо 0%), если вы обнаружите, что ваш USB-накопитель работает лучше всего в этом макете (вы можете использовать инструмент flashbench , чтобы найти лучший размер стираемого блока для вас). )

 parted -оптимальный /dev/sdb
mklabel gpt
единица МБ
mkpart bootefi fat32 0% 200M
установить 1 ботинок на
mkpart bootiso ext4 200M 20G
mkpart приватный ext4 20G 100%
единица МБ
Распечатать
распечатать бесплатно
выравнивание-проверка оптимальное 1
выравнивание-проверка оптимальное 2
выравнивание-проверка оптимальное 3
уволиться
 

Обратите внимание, что набор флагов загрузки parted НЕ совпадает с флагом загрузки в старой основной загрузочной записи. Сбивает с толку то, что parted решили использовать одно и то же имя, но они разные. Установка флага загрузки с помощью parted в разделе MBR помечает этот раздел как загрузочный, а в разделе GPT он помечается как системный раздел EFI (у него есть код EF00 , если вы проверите его с помощью gdisk -l /dev/sdb).

Системный раздел EFI должен быть явно смонтирован в /boot/efi для правильной загрузки через загрузчик GNU GRUB2.

  • /dev/sdb1 позже будет смонтирован как /target/boot/efi
  • /dev/sdb2 позже будет смонтирован как /target/boot, и мы создали его достаточно большим для хранения различных дистрибутивов Linux
  • /dev/sdb3 можете использовать как хотите 🙂

Создание необходимых файловых систем

Теперь создайте файловые системы

 mkfs.vfat -F32 -n EFIBOOT /dev/sdb1
mkfs.ext4 -L bootiso /dev/sdb2
 

Смонтируйте их в следующем порядке:

 mkdir -p /target/boot
смонтировать /dev/sdb2 /target/boot
mkdir/цель/загрузки/efi
смонтировать /dev/sdb1 /target/boot/efi
 

Самый важный момент — установка grub2

 grub-install --removable --no-uefi-secure-boot --target=x86_64-efi --efi-directory=/target/boot/efi --boot- directory=/target/boot --bootloader-id=grub --recheck /dev/sdb
 

Вот как должны выглядеть данные после выполнения описанных выше шагов

 # ls -latrh /target/boot/grub/
всего 48К
drwxr-xr-x 8 root root 4. 0K 9 июн 17:50 ..
-rw------- 1 root root 1.3K 9 июн 18:40 grub.cfg
drwxr-xr-x 2 root root 4.0K Июн 918:45 шрифты
-rw-r--r-- 1 root root 1.0K 9 июн 18:45 grubenv
drwx------ 5 root root 4.0K 9 июн 18:45 .
drwxr-xr-x 2 root root 12K 9 июн 19:18 x86_64-efi
drwxr-xr-x 2 root root 4.0K 9 июн 19:18 языковой стандарт
# найти /target/boot/efi/ -ls
         1 4 drwxr-xr-x 3 root root 4096 1 января 1970 г. /target/boot/efi/
         4 4 drwxr-xr-x 3 root root 4096 9 июня 18:45 /target/boot/efi/EFI
         6 4 drwxr-xr-x 2 корень корень 4096 9 июн 18:45 /target/boot/efi/EFI/BOOT
         9 120 -rwxr-xr-x 1 root root 119296 9 июня 19:18 /target/boot/efi/EFI/BOOT/BOOTX64.EFI
 

Структура диска

 # parted /dev/sdb print
Модель: SanDisk Extreme (scsi)
Диск /dev/sdb: 62,7 ГБ
Размер сектора (логический/физический): 512Б/512Б
Таблица разделов: gpt
Номер Начальный Конечный Размер Файловая система Имя Флаги
 1 1049 КБ 200 МБ 199 МБ загрузочный файл FAT32
 2 200 МБ 20,0 ГБ 19,8 ГБ ext4 bootiso
 3 20,0 ГБ 62,7 ГБ 42,7 ГБ ntfs частный
# parted /dev/sdb unit s печать бесплатно
Модель: SanDisk Extreme (scsi)
Диск /dev/sdb: 122544516s
Размер сектора (логический/физический): 512Б/512Б
Таблица разделов: gpt
Номер Начальный Конечный Размер Файловая система Имя Флаги
        34s 2047s 2014s Свободное пространство
 1 2048с 391167s 389120s загрузочный bootefi fat32
 2 391168s 39061503s 38670336s ext4 bootiso
 3 39061504s 122544127s 83482624s ntfs частный
        122544128s 122544482s 355s Свободное пространство
 

Вы можете создать любую файловую систему на разделе /dev/sdb3, например

FAT32

 mkfs. vfat -F32 -n общий -v /dev/sdb3
 

NTFS

 mkfs.ntfs -Q -L общий -I -v /dev/sdb3
 

EXT4

 mkfs.ext4 -L общий /dev/sdb3
 

ПРИМЕЧАНИЕ : если ваш общий раздел (sdb3) будет использоваться для NTFS, то не забудьте установить на нем флаг «msftdata», иначе Windows его не смонтирует

 (parted) установите 3 msftdata на
 

Создание файла конфигурации GRUB

Не забудьте создать файл /target/boot/grub/grub.cfg

Вы всегда можете автоматически сгенерировать его, чтобы посмотреть, что он обнаружил и какие модули он использует по умолчанию

 grub-mkconfig -o /target/boot/grub/grub.cfg
 

Но мы здесь не для этого, наша цель — загрузить несколько дистрибутивов Linux на нашу флешку, чтобы мы могли использовать любой из них 🙂

Моя конфигурация следующая

 # cat /target/boot /grub/grub.cfg
установить время ожидания = 15
установить по умолчанию = 0
# Графический протокол (U)EFI
insmod efi_gop
insmod efi_uga
insmod шрифт
если загрузить шрифт ${prefix}/fonts/unicode. pf2
тогда
       insmod gfxterm
       установить gfxmode=авто
       установить gfxpayload = сохранить
       terminal_output gfxterm
фи
пункт меню "Linux Mint 17 MATE DVD" {
               петля /isos/linuxmint-17-mate-dvd-64bit.iso
               linux (loop)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=/isos/linuxmint-17-mate-dvd-64bit.iso тихий всплеск --
               initrd (цикл)/casper/initrd.lz
}
пункт меню "SystemRescueCd 4.2.0" {
               петля /isos/systemrescuecd-x86-4.2.0.iso
               linux (цикл)/isolinux/rescue32 setkmap=us isoloop=/isos/systemrescuecd-x86-4.2.0.iso
               initrd (цикл)/isolinux/initram.igz
}
пункт меню "Tails 1.0" {
               петля /isos/tails-i386-1.0.iso
               linux (цикл)/live/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/tails-i386-1.0.iso boot=live config live-media=removable nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 splash noautologin module=Tails truecrypt тихий
               initrd (цикл)/live/initrd. img
}
пункт меню "Kali Linux 1.0.6" {
               петля /isos/kali-linux-1.0.6-i386.iso
               linux (цикл)/live/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/kali-linux-1.0.6-i386.iso boot=live noconfig=sudo username= корневое имя хоста = кали
               initrd (цикл)/live/initrd.img
}
пункт меню "Debian Live (amd64)" {
               цикл обратной связи /isos/debian-live-7.5.0-amd64-gnome-desktop.iso
               linux (цикл)/live/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/debian-live-7.5.0-amd64-gnome-desktop.iso boot=live config тихая заставка
               initrd (цикл)/live/initrd.img
}
menuentry "Меню загрузки установщика Debian GNU/Linux" {
       insmod part_gpt
       insmod ext2
               петля /isos/debian-7.5.0-amd64-netinst.iso
               linux (цикл)/install.amd/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/debian-7.5.0-amd64-netinst.iso boot=live vga=788 -- тихо
## linux (цикл)/install. amd/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/debian-7.5.0-amd64-netinst.iso vga=788 -- тихо
## linux (цикл)/install.amd/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/debian-7.5.0-amd64-netinst.iso boot=live config live-media=removable nopersistent vga=788 -- тихий
               initrd (цикл)/install.amd/initrd.gz
}
#menuentry "Меню загрузки установщика Debian GNU/Linux (графическое)" {
# цикл обратной связи /isos/debian-7.5.0-amd64-netinst.iso
# linux (цикл)/install.amd/vmlinuz fromiso=/dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5/isos/debian-7.5.0-amd64-netinst.iso video=vesa:ywrap,mtrr vga=788 -- тихо
# initrd (цикл)/install.amd/gtk/initrd.gz
#}
 

Для создания строк linux и initrd я использовал содержимое файла isolinux/menu.cfg (в некоторых случаях он отличается, но его легко найти с помощью grep ), доступ к которому можно получить, если просто смонтировать/открыть файл . iso файл

Путь к /dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5 используется в отношении UUID раздела /dev/sdb2, в вашем случае он будет другим, поэтому вы должен заменить его на ваш

 # ls -la /dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5
lrwxrwxrwx 1 root root 10 9 июня 10:36 /dev/disk/by-uuid/5e5ca198-7e43-a0dc-91eb-98ebec1274b5 -> ../../sdb2
# blkid |grep sdb2
/dev/sdb2: LABEL="загрузка" UUID="5e5ca198-7e43-a0dc-91eb-98ebec1274b5" TYPE="ext4"
 

Копирование дистрибутивов Linux на флэш-накопитель USB

Теперь вам просто нужно создать каталог (куда вы будете помещать дистрибутивы Linux) на устройстве /dev/sdb2, смонтированном как /target/boot и скопируйте туда свои дистрибутивы Linux следующим образом:

 mkdir /target/boot/isos
cp ~/Загрузки/linuxmint-17-mate-dvd-64bit.iso /target/boot/isos/
cp ~/Загрузки/systemrescuecd-x86-4.2.0.iso /target/boot/isos/
cp ~/Загрузки/tails-i386-1.0.iso /target/boot/isos/
cp ~/Загрузки/kali-linux-1. 0.6-i386.iso /target/boot/isos/
 

 

После завершения копирования безопасно отключите флэш-накопитель USB

 umount /dev/sdb1
размонтировать /dev/sdb2
размонтировать /dev/sdb3
синхронизировать ; эхо 1 | Тройник /proc/sys/vm/drop_caches
udisks --detach /dev/sdb
 

 

Теперь вы можете загрузить любой дистрибутив Linux на ваш выбор с флешки!

GParted Live на USB

Редактор разделов GNOME

Загрузочный образ GParted Live также можно
устанавливается на флешку.

Ниже приведены инструкции по настройке GParted Live на USB-накопителе.
флешка с помощью MS Windows
или GNU/Linux.

ПРИМЕЧАНИЕ. Эти способы установки работают, только если флэш-накопитель USB
отформатирован в файловой системе FAT. Некоторые пользователи сообщили, что
у них работала только файловая система FAT16. Для других файловых систем
вы можете попробовать использовать grub или какой-либо другой загрузчик.


Настройка USB с Windows

Выберите один из следующих способов для настройки GParted Live на вашем
USB-флешка с использованием MS Windows:

  • Метод Windows A: Unetbootin
  • Метод Windows B: вручную
  • Метод Windows C: LinuxLive USB Creator
  • Метод Windows D: Tuxboot

Метод Windows A: Unetbootin

  1. Если на вашем компьютере уже установлен Unetbootin, то
    перейти к следующему шагу (2).
    В противном случае загрузить и
    установите Unetbootin на свой компьютер с MS Windows.
  2. Загрузите GParted
    Живой файл iso .
  3. В Windows запустите программу Unetbootin и следуйте
    инструкции в графическом интерфейсе по установке GParted Live на флэш-память USB
    водить машину.

Метод Windows B: Вручную

ВНИМАНИЕ!
НЕ ЗАПУСКАЙТЕ makeboot.bat с локального жесткого диска!
Это может привести к тому, что ваша MS Windows не загрузится!!!

  1. Загрузите GParted
    Live zip файл.
  2. Если у вас уже есть раздел размером не менее 300 МБ на вашем
    Флэш-накопитель USB, отформатированный в файловой системе FAT, затем перейдите к
    следующий шаг (3).

    В противном случае создайте раздел размером не менее 300 МБ на USB-накопителе.
    диск и отформатируйте его в файловой системе FAT16 или FAT32.
    Раздел должен быть достаточно большим, чтобы вместить извлеченный
    содержимое zip-файла GParted Live.

  3. Извлеките все содержимое zip-файла в FAT16/FAT32.
    раздел на USB-накопителе. Сохранить каталог
    архитектуре, например, файл «GPL» должен находиться на USB-накопителе.
    верхний каталог флешки (например, G:\GPL).
  4. Перейдите на флэш-накопитель USB и в качестве администратора
    (На флешке создайте ярлык на файл makeboot.bat.
    Затем щелкните правой кнопкой мыши ярлык, Свойства, Дополнительно и проверьте
    «Запуск от имени администратора».), щелкните makeboot.bat в каталоге
    утилиты\win32\. ВНИМАНИЕ!
    Makeboot.bat необходимо запускать с флешки.
  5. Следуйте инструкциям на экране.
    (PS: приведенное выше описание изменено с:
    http://www.pendrivelinux.com/2007/01/02/все-в-одном-usb-dsl.
    Благодаря PDLA с http://pendrivelinux.com)

Метод Windows C: LinuxLive USB Creator

  1. Если на вашем компьютере уже установлен LinuxLive USB Creator,
    перейти к следующему шагу (2).
    В противном случае загрузите и
    установите LinuxLive USB Creator на свой компьютер с MS Windows.
  2. Загрузите GParted
    Живой файл iso .
  3. В Windows установите, затем запустите программу LinuxLive USB Creator и следуйте
    инструкции в графическом интерфейсе по установке GParted Live на флэш-память USB
    водить машину.

Метод Windows D: Tuxboot

  1. Загрузите Tuxboot на свой компьютер с MS Windows.
  2. Следовать
    настройка USB с инструкциями MS Windows для
    установите GParted Live на USB-накопитель.


Настройка USB с GNU/Linux

Выберите один из следующих способов для настройки GParted Live на вашем
USB-накопитель с использованием GNU/Linux:

  • GNU/Linux Метод A: Unetbootin
  • GNU/Linux Метод B: Вручную
  • Метод GNU/Linux C: Вручную — Перезаписать
  • Метод GNU/Linux D: Tuxboot

GNU/Linux Метод A: Unetbootin

  1. Если на вашем компьютере уже установлен Unetbootin, то
    перейти к шагу 2.
    В противном случае установите Unetbootin на свой компьютер с GNU/Linux.
  2. Загрузите GParted
    Живой файл iso .
  3. Из GNU/Linux запустите программу Unetbootin и следуйте
    инструкции в графическом интерфейсе по установке GParted Live на флэш-память USB
    водить машину.

Метод GNU/Linux B: Руководство

ВНИМАНИЕ!
Перед выполнением команд убедитесь, что у вас правильный путь!
Невыполнение этого требования может привести к потере данных или к тому, что ваш GNU/Linux не загрузится!!!
/dev/sde — путь к устройству
/dev/sde1 — путь к разделу

  1. Загрузите GParted
    Live zip файл.
  2. Если у вас уже есть раздел FAT16 или FAT32 на USB-накопителе
    диск, затем перейдите к следующему шагу (3).

    В противном случае подготовьте раздел размером не менее 300 МБ, отформатированный с помощью
    файловая система FAT16 или FAT32.
    Раздел должен быть достаточно большим, чтобы вместить извлеченный
    содержимое zip-файла GParted Live.

    Если на USB-накопителе или жестком диске USB нет
    любой раздел, вы можете использовать инструмент для создания разделов (например, gparted, parted, fdisk,
    cfdisk или sfdisk) для создания раздела размером 300 МБ или
    более.
    Здесь мы предполагаем, что ваш USB-накопитель или жесткий диск USB — это /dev/sdd
    (Вы должны подтвердить имя своего устройства, так как
    это _НЕ всегда_ /dev/sdd) на вашем GNU/Linux, поэтому
    таблица разделов выглядит так:

          # fdisk -l /dev/sdd
          Диск /dev/sdd: 12,8 ГБ, 12884

    8 байт 15 головок, 63 сектора на дорожку, 26630 цилиндров Единицы = цилиндры 945 * 512 = 483840 байт Идентификатор диска: 0x000c2aa7 Система идентификаторов блоков начала загрузки устройства /dev/sdd1 * 1 26630 12582643+ б W95 FAT32

    Затем отформатируйте раздел как FAT с помощью такой команды, как «mkfs. vfat
    -F 32 /dev/sdd1″
    ВНИМАНИЕ! Выполнение команды mkfs.vfat
    на неправильном разделе или устройстве может привести к тому, что ваш GNU/Linux не
    ботинок. Обязательно подтвердите команду перед ее запуском.

          # mkfs.vfat -F 32 /dev/sdd1
          mkfs.vfat 2.11 (12 марта 2005 г.)
         
  3. Вставьте флэш-накопитель USB или жесткий диск USB в порт USB на
    ваш Linux-компьютер и подождите несколько секунд. Далее выполните команду
    «dmesg» для запроса имени устройства USB-накопителя или USB-накопителя.
    жесткий диск. Скажем, например, что вы обнаружите, что это
    /dev/sdd1. В этом примере мы предполагаем, что /dev/sdd1 имеет FAT.
    файловая система, и он автоматически монтируется в каталог /media/usb/. Если
    он не монтируется автоматически, монтируйте его вручную с помощью команд
    например, «mkdir -p /media/usb; смонтировать /dev/sdd1 /media/usb/».
  4. Разархивируйте все файлы и скопируйте их на флешку или USB
    жесткий диск. Вы можете сделать это с помощью такой команды, как: «распаковать
    gparted-live-0.4.5-2.zip -d /media/usb/»). Сохраните каталог
    архитектуре, например, файл «GPL» должен находиться на USB-накопителе.
    флэш-накопитель или верхний каталог жесткого диска USB
    (например, /media/usb/GPL).
  5. Чтобы сделать флешку загрузочной, сначала измените рабочий
    дир, напр. «cd /media/usb/utils/linux», затем запустите «bash makeboot.sh
    /dev/sdd1» (замените /dev/sdd1 на свой USB-накопитель).
    имя устройства флэш-накопителя) и следуйте инструкциям.
    ВНИМАНИЕ! Выполнение makeboot.sh с
    неправильное имя устройства может привести к тому, что ваш GNU/Linux не загрузится. Быть уверенным
    для подтверждения команды перед ее запуском.

    ПРИМЕЧАНИЕ. При запуске makeboot.sh в Debian возникает известная проблема.
    Вытравить, так как программа utils/linux/syslinux не работает
    правильно. Убедитесь, что вы запускаете его на более новой версии GNU/Linux, такой как Debian.
    Ленни, Ubuntu 8.04 или Fedora 9.

СОВЕТ :
Если ваш USB-накопитель или жесткий диск USB не загружается, проверьте
последующий:

  • Убедитесь, что на USB-накопителе есть хотя бы один раздел FAT.
  • Убедитесь, что раздел помечен как «загрузочный» в таблице разделов.
  • Убедитесь, что раздел начинается на границе цилиндра.
    Для первого раздела обычно это сектор 63.

Метод GNU/Linux C: Вручную — перезапись

ПРЕДУПРЕЖДЕНИЕ :  Перед выполнением команд убедитесь, что у вас правильный путь к устройству!

Этот метод перезапишет целевое устройство. Следовательно, это
важно выбрать правильное USB-устройство флэш-памяти.

Так как GParted Live основан на Debian Live и это изображение является
изогибрид, т.
GParted Live CD
образ можно записать прямо на флешку.

ПРИМЕЧАНИЕ. Этот метод можно загрузить только с BIOS/MBR (устаревшей версии), но не с uEFI/GPT.

  1. Загрузите GParted
    Живой файл iso .
  2. Вставьте флэш-накопитель USB в компьютер с Linux и подождите несколько секунд.
    секунды. Далее из окна терминала выполните команду:


    дмесг


    Эта команда запрашивает имя устройства флэш-накопителя USB. За
    например, вы можете найти имя устройства /dev/sde .

  3. В окне терминала введите следующую команду с помощью
    имя файла gparted .iso и путь к USB-устройству, которые вы обнаружили в
    предыдущие шаги.
    Например:


    sudo dd if= /path-to-gparted-live.xyz-w.iso of= /dev/sde bs=4M; синхронизировать

Метод GNU/Linux D: Tuxboot

ПРИМЕЧАНИЕ . Для Tuxboot требуются более старые библиотеки libqt4.

Используйте для Ubuntu 18.

Читайте также: