Я только что получил свой новый System76’s Lemp11 pro, и хотя я люблю Pop!_OS, я предпочитаю использовать Arch (btw), но… У меня не было внешнего USB-накопителя, который я буду использовать как установочный носитель, поэтому…
Создание раздела
У меня два внутренних жестких диска, и я собираюсь уменьшить размер вторичного, чтобы выделить больше места для нового раздела, вы можете пропустить этот шаг, если у вас есть свободная память.
Откройте «Диски» и измените размер раздела.
Я решил оставить 32 ГБ для внутреннего раздела.
в свободном пространстве создайте новый ext4
и назовите его так, как вам хочется 🙂
Копирование файлов ISO
шаг первый, скопируйте файлы iso на новый диск, который вы только что создали.
шаг второй, None.
Подготовка данных
на следующем и последнем шаге нам нужно будет настроить grub, а для этого нам нужно будет собрать несколько данных:
- ваш .iso файл номер hdd:вы можете запустить
lsblk | grep disk
, чтобы получить список ваших жестких дисков:
/dev/hda
относится к первому жесткому диску IDE.Если вы используете SSD NMVe, он может быть назван
/dev/nvme0n1
,/dev/nvme1n1
и так далее.
Но в GRUB первый жесткий диск всегда обозначается как hd0, независимо от типа интерфейса
-
номер раздела вашего .iso файла:
Вы можете выполнить следующую командуsudo parted -l
и найти номер раздела файлов iso. -
файлы .efi вашей установки
просмотрите ваши .iso файлы (вы можете сделать это, смонтировав ваш iso или открыв его в менеджере архивов), и найдите нужный вам файл linuz .efi и файл образа
например:
Установка Ubuntu:
/casper/vmlinuz
и/casper/initrd
.
Установка Arch
Настройка GRUB
Используйте ваш любимый текстовый редактор, чтобы добавить следующую строку в
ваш пользовательский файл конфигурации:
(если файл не существует /etc/grub.d/40_custom
и
update-grub executable install, пожалуйста, установите grub-disk)
и добавьте следующие строки:
menuentry "{{menu entry name}}" {
insmod ext2
set isopartition=hd{{hdd number}},{{partition number}}
set isofile="{{iso file path (relative to hdd)}}"
loopback loop (hd{{hdd number}},{{partition number}})$isofile
linux (loop){{iso's vm linuz efi file path}} img_dev=/dev/disk/by-uuid/$isouuid img_loop=$isofile
initrd (loop){{iso's ram memory image file path}}
}
пример работы (Arch linux)
menuentry "archlinux-2022.07.01-x86_64.iso" {
insmod ext2
set isopartition=hd1,2
set isofile="/iso/archlinux-2022.07.01-x86_64.iso"
loopback loop (hd1,2)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz-linux img_dev=/dev/disk/by-uuid/$isouuid img_loop=$isofile
initrd (loop)/arch/boot/x86_64/initramfs-linux.img
}
Ubuntu:
menuentry "ubuntu-20.04.2.0-desktop-amd64.iso" {
insmod ext2
set isofile="/iso/ubuntu-20.04.2.0-desktop-amd64.iso"
loopback loop (hd1,2)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet noeject noprompt splash
initrd (loop)/casper/initrd
}
menuentry: ваш пункт меню GRUB2, назовите его так, как вам нравится.
insmod: вставляет модуль. Поскольку ISO-файл хранится в разделе ext4, необходим модуль ext2.
set isofile: Укажите путь к файлу образа ISO.
loopback: Монтирует ISO-файл. hd0 означает первый жесткий диск в компьютере, а 5 означает, что ISO-файл хранится на 5-м разделе диска.
Команда linux загружает ядро Linux из указанного пути. casper/vmlinuz.efi — это ядро linux внутри ISO-образа Ubuntu.
initrd: команда initrd загружает начальный ramdisk из указанного пути. Он может быть использован только после выполнения команды linux. Начальный ramdisk — это минимальная корневая файловая система, смонтированная в оперативной памяти. casper/initrd.lz — это файл initrd внутри ISO-образа Ubuntu.
Далее вам остается только выполнить следующую команду sudo update-grub
и перезагрузиться.
Все готово 🙂