Прямо сейчас я создал диск с помощью программы Yumi UEFI для создания мультиначальной загрузки USB для UEFI, но с последнего, мне нужен BIOS один также. Существует ли способ объединить те два в один диск? В основном поддерживая UEFI И BIOS? Или мне будут нужны два других USB?Спасибо!
(Модификация того, Как я загружаю файл ISO от своего диска с помощью grub2 на машинах UEFI?)
GParted
Создайте gpt таблицу разделов на карте с интерфейсом USB.
Создайте разделы как показано выше, выберите восстановленный после форматирования для раздела 2.
Создайте casper-rw файл:
sudo dd if=/dev/zero of=casper-rw bs=1M count=512
sudo mkfs.ext3 -L casper-rw -F casper-rw
(где count=512
размер персистентности в мегабайтах, с макс. из 4 ГБ).
Раздел персистентности
Создайте исключительно папка имени для каждой ОС, (который требует персистентности), на разделе USB-PRST.
Добавьте casper-rw файл, (и дополнительный домашний-rw файл), к каждой папке персистентности. Домашний-rw файл может быть сделан путем переименования casper-rw файла. Домашний-rw файл похож на отдельный домашний раздел на Полной установке, он может быть снова использован после обновлений версии.
Раздел данных
Создайте папку для файлов ISO на разделе ДАННЫХ USB NTFS.
Добавьте некоторый ISO к isos папке.
Раздел начальной загрузки
Откройте последние пред19.10 файлов ISO и скопируйте начальную загрузку и папки EFI к РАЗДЕЛУ НАЧАЛЬНОЙ ЗАГРУЗКИ USB. (Обратите внимание, что Ubuntu 19.10 и более позднее использование копаются 2.04, который предотвращает начальную загрузку файлов ISO).
Личинка установки
sudo монтируют/dev/sdx3/mnt
установка личинки sudo - каталог начальной загрузки/dev/sdx =/mnt/boot
Отредактируйте grub.cfg к loopmount файлы ISO. Включайте: persistent persistent-path=/<persistent-folder-name>/
если Вы хотите несколько персистентность.
if loadfont /boot/grub/font.pf2 ; then
set gfxmode=auto
insmod efi_gop
insmod efi_uga
insmod gfxterm
terminal_output gfxterm
fi
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
set timeout=5
menuentry "ubuntu-19.10-desktop-amd64.iso" {
set root=(hd0,1)
set isofile="/isos/ubuntu-19.10-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile persistent persistent-path=/persist-1/ splash --
initrd (loop)/casper/initrd
}
menuentry "lubuntu-16.04.3-desktop-amd64.iso" {
set root=(hd0,1)
set isofile="/isos/lubuntu-16.04.3-desktop-amd64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile persistent persistent-path=/persist-2/ splash --
initrd (loop)/casper/initrd.lz
}
Пример Grub.cfg
sudo разделенный-ls/dev/sdx
sudo lsblk-f/dev/sdx
Если вышеупомянутое используется в качестве карты с интерфейсом USB, оно может использоваться для начальной загрузки, ISO сохранил в Windows только компьютер. Личинка не требуется на внутреннем диске.
Чтобы быть безопасным ¹, используйте два usbs, один для выполнения установки и другого, чтобы быть установленными.
Отформатируйте USB в FAT.
Установите пакеты grub-efi-amd64
и grub-pc-bin
.
Включите USB и примите во внимание устройство, скажите /dev/sdb
, и точка монтирования, говорят /media/user/USB
.
Создайте a chroot
:
dirs=(dev bin sbin etc sys usr proc lib lib64)
for dir in ${dirs[@]}; do
mkdir /media/user/USB/$dir && sudo mount --bind /$dir /media/user/USB/$dir
done
sudo chroot /media/user/USB/
Однажды в chroot, выполненном эти команды:
grub-install --force --removable --target=x86_64-efi --efi-directory=/ /dev/sdb1
grub-install --force --removable --target=i386-pc --boot-directory=/ /dev/sdb
exit
Теперь размонтируйте и удалите каталоги:
for dir in ${dirs[@]}; do
sudo umount /media/user/USB/$dir && rm /media/user/USB/$dir
done
Скопируйте isos в свой USB.
В Вашем USB создайте файл /grub/grub.cfg
и добавьте содержание:
set root='(hd0,1)'
configfile /boot/grub/grub.cfg
Для начальной загрузки Debian и Kali, в этом примере (необходимо изменить имя isos согласно тому, что Вы загрузили), добавьте к /boot/grub/grub.cfg
:
set root='(hd0,1)'
menuentry "Kali Live system" {
set iso_path=/kali-linux-2020.1b-live-i386.iso
loopback loop $iso_path
linux (loop)/live/vmlinuz-5.4.0-kali2-686-pae boot=live components quiet splash noeject findiso=${iso_path}
initrd (loop)/live/initrd.img-5.4.0-kali2-686-pae
}
menuentry "Debian GNU/Linux Live (kernel 4.19.0-8-686)" {
set iso_path=/debian-live-10.3.0-i386-xfce.iso
loopback loop $iso_path
linux (loop)/live/vmlinuz-4.19.0-8-686 boot=live findiso=$iso_path components splash quiet "${loopback}"
initrd (loop)/live/initrd.img-4.19.0-8-686
}
¹ можно сделать это в машине ОС, но существует несколько команд, что по ошибке, может вредить системе.