Как загрузиться с iso файла с помощью GRUB и внутреннего HDD (без внешнего USB/CD)

Я только что получил свой новый System76’s Lemp11 pro, и хотя я люблю Pop!_OS, я предпочитаю использовать Arch (btw), но… У меня не было внешнего USB-накопителя, который я буду использовать как установочный носитель, поэтому…

Создание раздела

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

Откройте «Диски» и измените размер раздела.

Я решил оставить 32 ГБ для внутреннего раздела.

в свободном пространстве создайте новый ext4 и назовите его так, как вам хочется 🙂

Копирование файлов ISO

шаг первый, скопируйте файлы iso на новый диск, который вы только что создали. 
шаг второй, None.

Подготовка данных

на следующем и последнем шаге нам нужно будет настроить grub, а для этого нам нужно будет собрать несколько данных:

  1. ваш .iso файл номер hdd:вы можете запустить lsblk | grep disk, чтобы получить список ваших жестких дисков:

/dev/hda относится к первому жесткому диску IDE.

 Если вы используете SSD NMVe, он может быть назван /dev/nvme0n1, /dev/nvme1n1 и так далее.
Но в GRUB первый жесткий диск всегда обозначается как hd0, независимо от типа интерфейса

  1. номер раздела вашего .iso файла:
    Вы можете выполнить следующую команду sudo parted -l и найти номер раздела файлов iso.

  2. файлы .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 и перезагрузиться. 

Все готово 🙂

Оцените статью
devanswers.ru
Добавить комментарий