web-dev-qa-db-ja.com

GRUBメニューからのubuntu isoファイルの起動

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つの '{}'がないと、起動しません。とても奇妙

1
lilw

Ubuntu 18.10(Cosmic Cuttlefish)のような多くのバージョンのubuntu isoでは、ファイルinitrd.lzinitrdにすぎません。 initrdおよびvmlinuzファイルについては、isoファイルにアクセスして検査することをお勧めします。

Ubuntu 18.10の起動中に、私もその間違いを犯していました。

1
  • ISOファイルを/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


}

やること:

  1. /live/somelinux.isoを保持しているパーティションのコード名の上にあるメニューエントリを変更します。私の場合はhd0,msdos5であるため、/dev/sda5です。

  2. ファイル名をsomelinux.isoから自分の名前に変更します。私の場合、ubuntu-14.04-desktop-AMD64.iso

    • gRUBを更新する

Sudo update-grub

  • リブート
0

これを試して

 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
 }
0
kenn