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_customdan tambahkan menuentryitem (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 /optuntuk 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 loopbackvariabel, 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 -1dan 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 loopbackmenjadi (hd2,gpt2)$GPartedISOFileseperti file ISO pada mesin saya adalah /dev/sdb2(drive hd2kedua, 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 linuxdan initrdpada mesin BIOS dipanggil linuxefidan linuxefipada 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 ISOdan 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
}