У грі 2.04 є помилка, тому переконайтеся, що у вас є попередня або пізніша версія.
Ну а основи додавання ISO-файлу до grub такі ж, як для UEFI, як і для машини BIOS: редагуйте /etc/grub.d/40_custom
та додайте menuentry
елемент (GParted використовується в цьому прикладі) в нижній частині файлу:
menuentry "GParted Live ISO" {
}
Тепер ми додамо змінну, що містить каталог, де ми зберігали ISO (поки що, так добре: немає різниць із BIOS-машинами):
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
}
Я використовую їх /opt
для зберігання, оскільки мені не подобається створювати каталоги в корені моєї машини, і відповідно до ієрархії файлової системи Linux , в якій в будь-якому разі повинно знаходитися додаткове програмне забезпечення.
Перед тим , як додати loopback
змінну, нам необхідно з'ясувати , на який жорсткий диск файл зберігається, тому ми робимо: df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso | tail -1
і вихід на моїй машині: /dev/sdb2
.
Однак викорчовувати використання ( hdX,Y
) позначення і це де різниця між машинами UEFI і BIOS приходить! Так що тепер перезавантаження комп'ютера перейдіть в меню потайного і натисніть C: Це приведе вас до команди потайний рядки з різними командами , ніж ви звикли , але тільки один , що вам потрібно: ls
.
На моїй машині вихід:
(hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) ... (hd3) ...
Так? 4 приводи? У мене всього 3! І справа не (hd1,4)
в BIOS, а (hd1,gpt3)
в UEFI і (hd0)
не має розділів взагалі!
Ну, мабуть, коли частина NVRAM використовується як сховище і з'являється, як (hd0)
вам потрібно почати нумерацію ваших накопичувачів з 1! В той час як вся інформація, яку ви знайдете при завантаженні ISO-файлів, говорить про те, що потрібно починати нумерацію з 0 (на машинах BIOS це завжди правда , це не обов'язково має місце на деяких машинах UEFI !)
Тож значення для loopback
стає (hd2,gpt2)$GPartedISOFile
як файл ISO на моїй машині /dev/sdb2
(другий диск hd2
, другий розділ gpt2
):
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
}
Інша відмінність полягає в тому , що linux
і initrd
на машинах BIOS називається linuxefi
і linuxefi
на машинах UEFI, що дає нам остаточний результат:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$GPartedISOFile ip=frommedia toram=filesystem.squashfs union=overlay username=user
initrdefi (loop)/live/initrd.img
}
Тож тепер збережіть цей файл та оновіть grub за допомогою:
update-grub
Після всього вищесказаного перезавантажте, перейдіть у меню grub , виберіть, GParted Live ISO
і тепер ви можете легко завантажувати свій ISO, не потребуючи полювання на USB-накопичувач!
:-)
Приклад CloneZilla Live (для цього питання )
menuentry "CloneZilla ISO" {
set ISOFile="/opt/Live-ISOs/clonezilla-live-20170905-zesty-amd64.iso"
loopback loop (hd2,gpt2)$ISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$ISOFile ip=frommedia toram=filesystem.squashfs union=overlay
initrdefi (loop)/live/initrd.img
}