Ada bug di grub 2.04 jadi pastikan Anda memiliki versi sebelum atau sesudahnya.
Nah, dasar-dasar untuk menambahkan file ISO ke grub adalah sama untuk UEFI seperti untuk mesin BIOS: edit /etc/grub.d/40_custom
dan tambahkan menuentry
item (GParted digunakan dalam contoh ini) ke bagian bawah file:
menuentry "GParted Live ISO" {
}
Sekarang kita akan menambahkan variabel yang berisi direktori tempat kita menyimpan ISO (sejauh ini, sangat bagus: tidak ada perbedaan dengan mesin BIOS):
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
}
Saya menggunakan /opt
untuk menyimpan ini karena saya tidak suka membuat direktori di root mesin saya dan menurut Hierarki Sistem File Linux di situlah perangkat lunak opsional tetap berada.
Sebelum kita menambahkan loopback
variabel, kita perlu mencari tahu di mana hard disk file tersebut disimpan, sehingga kita melakukan: df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso | tail -1
dan output pada mesin saya adalah: /dev/sdb2
.
Namun grub menggunakan ( hdX,Y
) notasi dan ini adalah di mana perbedaan antara mesin UEFI BIOS dan datang dalam! Jadi sekarang reboot komputer Anda, masuk ke menu grub dan tekan C: ini akan membawa Anda ke perintah grub prompt dengan perintah yang berbeda dari yang Anda terbiasa tetapi satu-satunya yang Anda butuhkan adalah: ls
.
Pada mesin saya, hasilnya adalah:
(hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) ... (hd3) ...
Hah? 4 drive? Saya hanya punya 3! Dan itu bukan (hd1,4)
baris pada BIOS tetapi (hd1,gpt3)
di UEFI dan (hd0)
tidak memiliki partisi sama sekali!
Nah, tampaknya ketika bagian dari NVRAM digunakan sebagai penyimpanan dan muncul saat (hd0)
Anda perlu mulai memberi nomor pada drive Anda pada 1! Sedangkan semua informasi yang Anda temukan saat mem-boot file ISO mengatakan Anda harus memulai penomoran mulai dari 0 (pada mesin BIOS ini selalu benar , ini tidak selalu terjadi pada beberapa mesin UEFI !)
Jadi nilai untuk loopback
menjadi (hd2,gpt2)$GPartedISOFile
seperti file ISO pada mesin saya adalah /dev/sdb2
(drive hd2
kedua, partisi kedua gpt2
):
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
}
Perbedaan lainnya adalah bahwa pada linux
dan initrd
pada mesin BIOS dipanggil linuxefi
dan linuxefi
pada mesin UEFI, yang memberi kami hasil akhir kami:
#!/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
}
Jadi sekarang simpan file itu, dan perbarui grub dengan:
update-grub
Setelah semua hal di atas, reboot, masuk ke menu grub , pilih GParted Live ISO
dan sekarang Anda dapat dengan mudah mem-boot ISO Anda tanpa harus mencari USB stick lagi!
:-)
Contoh CloneZilla Live (untuk pertanyaan ini )
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
}