Огляд
Створення живих носіїв USB лише для UEFI є досить прямим. Просто скопіюйте файли на USB-накопичувач у форматі FAT32 . Це воно!
Пам'ятайте, що для встановлення або завантаження носія:
Зміст
- Скопіюйте файли методом 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 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 на пристрій циклу, з якого ми можемо безпосередньо завантажувати ядро Linux. Це можливо, оскільки наше зображення EFI GRUB включає модуль зворотного зв'язку. (Трохи проб і помилок було залучено до з'ясування, які модулі доцільно включати. Ви не повинні бачити жодних повідомлень про помилки, хоча все ще не ідеально.) Якщо говорити про ядро, ви можете додати параметри ядра, наприклад toram
, параметри для різних мов (приклад locale=de_DE bootkbd=de
) і як у прикладі:persistent
2.3. Додавання стійкості
Ви можете додати розділ, як описано в: Як отримати живий 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. Перевірка цілісності
Слід переглянути відповіді на наступні запитання, щоб переконатися, що вміст ISO Live на USB-накопичувачі знаходиться в незайманому стані:
2.5. Захищене завантаження UEFI
Безпечна завантаження стане обов'язковою на машинах Windows 10, я пропоную вам ознайомитись з PreLoader Linux Foundation, щоб додати в цю програму функціональність Secure Boot. Ось мистецтво ASCII, що ілюструє меню супровідного HashTool .
Вітаю, я б сказав, що ви зараз освоїли завантаження UEFI і більше не повинні боятися.