Создайте U-диск для системы Ubuntu с чистой загрузкой UEFI

2019-01-23 11:28:41

Создайте U-диск для системы Ubuntu с чистой загрузкой UEFI

предисловие

Целью данной статьи является создание USB-накопителя Ubuntu To Go, который поддерживает загрузку UEFI через ISO-образ Ubuntu 16.04.
Я уже ссылался на другие статьи ранее и успешно создал U-дисковую систему, которая поддерживает как Bios, так и UEFI, но требует подключения к Интернету для установки EFI Grub2.
Лично чувствую, что сам файл ISO поддерживает UEFI, почему бы не извлечь файл загрузки непосредственно из файла образа.
Через поиск я извлек папку EFI в ISO, использовал строки EFI / grubx64.efi для просмотра его исходного кода и обнаружил, что он будет читать файл конфигурации /boot/grub/grub.cfg в корневом каталоге диска EFI, который был вдохновлен для подведения итогов. Следующие этапы производства.


Препараты

Ubuntu 16.04 LTS ISO

http://releases.ubuntu.com/xenial/ubuntu-16.04.5-desktop-amd64.iso

DiskGenius Free Edition

http://www.diskgenius.cn

Программное обеспечение для декомпрессии HaoZip

http://haozip.2345.cc/

USB3.0 64 ГБ или выше U диск, 2.0 не рекомендуется, скорость слишком низкая

Возьмите мой Chipfancier 256 ГБ в качестве примера, используйте DiskGenius для установки типа GPT, раздел выглядит следующим образом

размер формат замечание
200MB FAT32 EFI различие
100GB EXT4 Здесь установлена ​​Ubuntu, смонтируйте корневой каталог /
133GB EXFAT Для хранения файлов формат exFat является общим для Windows, MacOSX, Linux
2 Гб FAT32 Сохраните ISO установочного диска, iso файл загрузки Grub2 может быть только в Fat32

Кроме того, диск U объемом 64 ГБ использует тип MBR. Рекомендуемые разделы следующие: Третий раздел может быть объединен со вторым разделом после установки.

размер формат замечание
200MB FAT32 Основной раздел, активный, EFI различие
50GB EXT4 Основной раздел, на котором установлена ​​Ubuntu, монтирует корневой каталог /
2 Гб FAT32 Основной раздел, хранящий установочный диск ISO

** Используйте программное обеспечение для распаковки, чтобы скопировать всю папку EFI из ubuntu-16.04.5-desktop-amd64.iso в первый раздел **

# EFI 文件夹应该包含以下内容
# UEFI 系统会搜索所有FAT32 磁盘根目录下的EFI/BOOT/BOOTx64.efi(不分大小写)
|____EFI
    |____BOOT
      |____BOOTx64.EFI  <-- 由shimx64.efi 改名而来,针对主板开启了SecureBoot
      |____grubx64.efi  <-- 如果关闭了SecureBoot 可直接将grubx64.efi 改名为bootx64.efi

** Создайте /boot/grub/grub.cfg в первом разделе, который содержит команду для запуска Ubuntu, но ее можно использовать после модификации после установки системы **

set timeout=10

menuentry "Ubuntu 16.04 LTS" {
  set uuid=0dcc1a29-32ad-4c59-a14d-ab0d9b3c1c00
  search --no-floppy --fs-uuid --set=ubdisk $uuid
  #search.fs_uuid $uuid ubdisk  # same as above
  set root=($ubdisk)
  linux /boot/vmlinuz-4.15.0-29-generic root=UUID=$uuid
  initrd /boot/initrd.img-4.15.0-29-generic
}

submenu "Others" {

  menuentry "Reboot" {
    reboot
  }

  menuentry "Halt" {
    halt
  }
}

** Создайте папку ISO в последнем разделе, скопируйте ubuntu-16.04.5-desktop-amd64.iso в ISO и создайте /ISO/set-hdisk-source.txt, содержимое которого предназначено для загрузки ISO-файла на диске U. Команда **

set isofile=/ISO/ubuntu-16.04.5-desktop-amd64.iso
loopback loop $hdisk$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
initrd (loop)/casper/initrd
boot

** Полученная древовидная диаграмма файловой системы **

|____第一分区,即EFI 分区
| |____EFI
| | |____BOOT
| |   |____BOOTx64.EFI
| |   |____grubx64.efi
| |____boot
|   |____grub
|     |____grub.cfg
|____最后分区,即保存ISO 的分区
| |____ISO
|   |____ubuntu-16.04.5-desktop-amd64.iso
|   |____set-hdisk-source.txt

Шаги установки

Вставьте диск U с развернутыми выше файлами в компьютер и выберите загрузку с диска U. Когда появится меню Grub2, нажмите c, чтобы войти в командную строку grub>

ls # Проверьте, какие буквы дисков доступны в данный момент, например, iso is на диске (hd0, gpt4)

ls (hd0, # В это время вам будет предложено нажать клавишу Tab, какие разделы находятся на жестком диске, а также UUID и тип формата раздела

Направьте iso-файл на диск U следующей командой: FAT32 изменит все буквы на строчные, источник эквивалентен чтению командного файла

set hdisk=(hd0,gpt4)
source $hdisk/iso/set-hdisk-source.txt

После входа в Ubuntu LiveCD, нажмите на логотип в верхнем левом углу, чтобы войти в терминал, чтобы открыть терминал

sudo -s  # 切换到root 用户
umount -l /isodevice  # 卸载iso 挂载的盘符,否则无法对U 盘进行写入操作
ubiquity --no-bootloader  # 千万不要用桌面的安装图标直接安装,否则UEFI 引导文件会被修改

Установка Ubuntu такая же, как и при использовании других носителей, единственное, что нужно отметить, это выбрать точку монтирования корневого каталога /

  1. Выберите язык, мне нравится выбирать китайский, а затем установить каталог на английский
  2. Отказаться от
  3. Выберите для установки дополнительного стороннего программного обеспечения
  4. Раздел жесткого диска
  • Подсказка «Размонтировать установленный раздел» выберите «Да»
  • Выберите второй раздел диска U, введите Ext4, основной раздел, отметьте «format», точку монтирования «/».
  • Подсказка не устанавливает своп на игнорирование, нажимаем «Продолжить»
  1. Выберите часовой пояс
  2. Выберите клавиатуру, английский, американский
  3. Установите имя пользователя, имя хоста, пароль

Не «перезагружать» после установки, выберите «продолжить пробную версию»

fdisk -l  # 查找U 盘的设备名,通过分区类型及数量判断,例如/dev/sdb
blkid | grep sdb # 查看各个磁盘的UUID,主要关注U 盘的第一、第二个分区的UUID

mount /dev/sdb2 /mnt
mount /dev/sdb1 /mnt/boot/efi

vi /mnt/etc/fstab  # 将最后一行的UUID 改成U 盘第一个盘即EFI 分区的UUID
# /etc/fstab 最后一行影响的是新系统/boot/efi 目录的挂载
# Ubuntu 在安装的时候会将Windows 的ESP 分区挂载到/boot/efi
# 在MacBook 上启动报错就是因为/boot/efi 挂载的设备不存在
# 所以,将/boot/efi 挂载点设置为U 盘就不会找不到设备了

vi /mnt/boot/efi/boot/grub/grub.cfg  # 将set uuid=U盘第二个盘即Ext4 分区的UUID
# 这里设置的是告诉Grub2,Ubuntu 的安装位置,UUID 是磁盘的唯一标识,除非格式化才会改变

# 以上vi 都修改完文件后卸载挂载的磁盘并重启系统
umount /mnt/boot/efi
umount /mnt
init 6  # 重启系统

Начните снова с диска U, выберите «Ubuntu 16.04 LTS», чтобы войти во вновь установленную систему


уборка

После выключения компьютера отключите диск U. В процессе установки Ubuntu все еще что-то писал в UEFI, взяв в качестве примера мою исходную систему X270 Windows 8.1.
Войдите в Windows и используйте DiskGenius, чтобы просмотреть раздел ESP и удалить папку Ubuntu в папке EFI.


Справочная статья

Сделать Legacy BIOS / EFI с двойной загрузкой Ubuntu To Go с загрузочного диска

https://www.littleqiu.net/archives/771
https://zhuanlan.zhihu.com/p/27871019

Установка Ubuntu на USB-накопитель с чистой загрузкой EFI (Mac-совместимый)

https://medium.com/@mmiglier/ubuntu-installation-on-usb-stick-with-pure-efi-boot-mac-compatible-469ad33645c9

Загрузка Ubuntu ISO-файла из меню Grub

https://askubuntu.com/questions/500295/booting-ubuntu-iso-file-from-grub-menu

Как загрузчик GRUB2 UEFI знает, где искать файлы конфигурации

https://stackoverrun.com/cn/q/9723219

Установите Ubuntu на USB-накопитель и загрузите его в систему Uefi и Bios

https://askubuntu.com/questions/784928/install-ubuntu-to-usb-drive-and-boot-it-to-uefi-and-bios-system


发布了27 篇原创文章 · 获赞 4 · 访问量 9697

рекомендация

отblog.csdn.net/yoshubom/article/details/86615667