grub 2.04にはバグがあるため、以前またはそれ以降のバージョンを使用してください。
さて、ISOファイルをgrubに追加するための基本は、UEFIでもBIOSマシンでも同じです:ファイルの下部にアイテム(この例ではGPartedを使用)を編集/etc/grub.d/40_custom
して追加menuentry
します。
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 File System Hierarchyに従って、これらを保存するために使用しています。
loopback
変数を追加する前に、ファイルが保存されているハードディスクを確認する必要があります。そのため、a:を実行df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-amd64.iso | tail -1
し、マシン上の出力は次のようになり/dev/sdb2
ます。
ただし、 grubは(hdX,Y
)表記を使用し、これがUEFIマシンとBIOSマシンの違いの出番です!マシンを再起動し、grubメニューに移動してを押しますC。これにより、grubコマンドプロンプトが表示されます。これは、以前とは異なるコマンドですが、必要なコマンドは 1つだけです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
と、USBスティックを再び探す必要なくISOを簡単に起動できるようになりました!
:-)
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
}