Grub2 ISOブートガイドに従います
https://help.ubuntu.com/community/Grub2/ISOBoot
ここにisoブート用の私のメニューがあります
menuentry "Ubuntu 14.04 Live" {
set isofile="/lilw/os/ubuntu.iso"
loopback loop (hd0,10)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
しかし、ISOファイルからの起動に失敗したため、システムが常に再起動します。
GRUBメニューに入ってからコマンドを使用する場合
grub >
以下のコマンドを入力してください:
grub > loopback loop (hd0,10)/lilw/os/ubuntu.iso
grub > linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject
grub > initrd (loop)/casper/initrd.lz
その後
grub > boot
通常はisoで起動します。
この方法で起動したくありません。しかし、grubのmenuentryは機能しません。
参考までに、システムで実行しているubuntuのバージョンは10.04から最新まで複数あります。現在のubuntu grubの/ homeであるsda10のisoファイルストア。
編集1:isoファイルの内容を抽出しましたが、それでもubuntuで起動できません。ただし、Fedora 20をフォルダに展開すると、Fedora 20で起動できます。
Edit 2:最後に、新しいgrub2コマンド構文に役立つサイトを見つけました。失敗したブートはすべて、grub2の構文が間違っているためです。
これを試してください:私の問題を解決しました
http://git.marmotte.net/git/glim/tree/grub2
したがって、私のgrubメニューエントリは次のようになります。
menuentry "Ubuntu 14.04 (LTS) Live Desktop AMD64" --class ubuntu {
set isoname="ubuntu-14.04-desktop-AMD64.iso"
set isofile="/lilw/os/${isoname}"
loopback loop (hd0,10)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=${isofile} quiet splash
initrd (loop)/casper/initrd.lz
}
isofileの2つの '{}'がないと、起動しません。とても奇妙
Ubuntu 18.10(Cosmic Cuttlefish)のような多くのバージョンのubuntu isoでは、ファイルinitrd.lz
はinitrd
にすぎません。 initrdおよびvmlinuzファイルについては、isoファイルにアクセスして検査することをお勧めします。
Ubuntu 18.10の起動中に、私もその間違いを犯していました。
/live
に配置します。Sudo mkdir /live
Sudo cp somelinux.iso /live
grub.cfg
に新しいメニューエントリを追加しますSudo gedit /etc/grub.d/40_custom
menuentry 'ISO Ubuntu 14.04 2014 Live' --class os --class gnu-linux --class gnu --class os --group group_main {
set isofile="/live/ubuntu-14.04-desktop-AMD64.iso"
insmod ext2
insmod loopback
insmod iso9660
loopback loop (hd0,msdos5)$isofile
linux (loop)/casper/vmlinuz.efi file=(loop)/cdrom/preseed/ubuntu.seed noprompt boot=casper persistent iso-scan/filename=/$isofile quiet splash --
initrd (loop)/casper/initrd.lz
}
やること:
/live/somelinux.iso
を保持しているパーティションのコード名の上にあるメニューエントリを変更します。私の場合はhd0,msdos5
であるため、/dev/sda5
です。
ファイル名をsomelinux.isoから自分の名前に変更します。私の場合、ubuntu-14.04-desktop-AMD64.iso
Sudo update-grub
これを試して
menuentry "Ubuntu 14.04 Live" {
loopback loop (hd0,10)/lilw/os/ubuntu.iso
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=/lilw/os/ubuntu.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}