次のようにloopback
でできることがわかりました
menuentry "Lucid ISO" {
loopback loop (hd0,1)/boot/iso/ubuntu-10.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/iso/ubuntu-10.04-desktop-i386.iso noprompt noeject
initrd (loop)/casper/initrd.lz
}
しかし、それはubuntuまたはその派生物でのみ動作します。 Fedora、cent、opensuseなどの他のライブイメージをブートする場合、どのように記述する必要がありますか?
編集:私はいくつかの他のエントリを見つけましたが、それらのすべてはおそらくDebianベースです。
menuentry "Linux Mint 10 Gnome ISO" {
loopback loop /linuxmint10.iso
linux (loop)/casper/vmlinuz file=/cdrom/preseed/mint.seed boot=casper initrd=/casper/initrd.lz iso-scan/filename=/linuxmint10.iso noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "DBAN ISO" {
loopback loop /dban.iso
linux (loop)/DBAN.BZI nuke="dwipe" iso-scan/filename=/dban.iso silent --
}
menuentry "Tinycore ISO" {
loopback loop /tinycore.iso
linux (loop)/boot/bzImage --
initrd (loop)/boot/tinycore.gz
}
menuentry "SystemRescueCd" {
loopback loop /systemrescuecd.iso
linux (loop)/isolinux/rescuecd isoloop=/systemrescuecd.iso setkmap=us docache dostartx
initrd (loop)/isolinux/initram.igz
}
Edit2:grub2
からgrub
とsyslinux
をチェーンロードする方法
Edit3:リムーバブルデバイスなしで他のライブイメージを起動し、grub2
を使用するため、grub2
に固有のメニューエントリが必要です。
Isoからの起動はディストリビューションでサポートする必要がある機能であり、iso-scan/filename=
オプションはFedoraなどでは機能しません。これらには、この機能の他のカーネルオプションがある場合や、この機能がまったくサポートされていない場合があります。
Fedora 16 DVDをブートする方法を見つけました。以下にあります。
menuentry "Fedora 15(DVD)" { insmod loopback insmod iso9660 set isofile = "/ Fedora-15-x86_64-DVD.iso" loopback loop(hd0,2)$ isofile linux(loop)/ isolinux/vmlinuz rootfstype = auto root = live:UUID =:$ isofile ro quiet initrd(loop)/ isolinux /initrd.img }
Isoファイルが内部ハードディスクの2番目のパーティションのルートにあると想定しています。
ディストリビューションに依存しない機能ではないため、Googleで他のディストリビューションを検索できます。
注1:Fedora 16でも動作しましたが、テストしたところです。
注2:isoファイルをfatまたはext4パーティションに配置すると、この方法が機能したようです。
Grml はgrub2から起動することもできます。 iso-scan/filename
オプションの代わりにfindiso
オプションを使用し、isoからの起動が異なるディストリビューションで異なるオプションとして実装されていることを示していることに注意してください。
(menuentry "Grml small 2009.10" { loopback loop /boot/iso/grml-small_2009.10.iso linux(loop)/ boot/grmlsmall/linux26 findiso =/boot/iso/grml-small_2009.10.iso apm = power-off lang = us vga = 791 boot = live nomce noeject noprompt- initrd(loop)/boot/grmlsmall/initrd.gz }
このページ には、Grub2から起動する他のディストリビューションの例がいくつかあります。
ここで働いた唯一の解決策があります(他のすべてが私にMBR識別子を見つけることができなかったを与えて停止しました)。この例では、isoはディレクトリ/home/username/
の最初のディスクの3番目のパーティションに配置されます。
menuentry "openSUSE_13.1_GNOME_Live" { load_video insmod gzio insmod part_msdos insmod ext2 set root = '(hd0 、msdos3) ' set isofrom_device ='/dev/sda3 ' set isofrom_system ='/home/username/openSUSE-13.1-GNOME-Live-i686.iso ' set loader = '/ boot/i386/loader' loopback loop $ isofrom_system linux(loop)$ loader/linux isofrom_device = $ isofrom_device isofrom_system = $ isofrom_system ramdisk_size = 512000 ramdisk_blocksize = 4096 ro quiet splash $ vt_handoff preloadlog =/dev/null showopts initrd(ループ)$ loader/initrd }
ソースは janeppoのコメント です。
Fedora 17のブートメニューgrub.cfgエントリを次に示します。isoは最初のディスクの3番目のパーティションに配置されます。また、ファイル名が変更されます。
menuentry "Fedora Live" { loopback loop(hd0,3)/Fedora.iso linux(loop)/ EFI/BOOT/vmlinuz0 root = live:/Fedora.iso rootfstype = auto ro liveimg quiet rhgb rd.luks = 0 rd.md = 0 initrd(hd0,3)/ initrd-fromiso }
最後の注意:この答えは一例だと思います。例でこれ以上詳しく説明しないでください。
grub2
を使用して起動することがわかったISOファイルを次に示します。
次のISOを正常に起動しました
HirenのブートCDなど、他のISOをブートする場合は、カーネルとしてMEMDISK
ユーティリティを使用できることがわかりました。
MEMDISKの入手先?
here からSyslinuxをダウンロードします。デスクトップに移動します。
それを機能させるには?
cd ~/Desktop/
tar xvif syslinux-4.05.tar.xz
cd syslinux-4.05/memdisk/
Sudo mkdir /customboot
Sudo mv memdisk /customboot/
cd /customboot/
Sudo mv memdisk memdisk4.05
gksudo gedit /etc/grub.d/40_custom
次に、geditの下のエントリを貼り付けます。 set isofile="/path/to/iso-file.iso"
を変更する必要があります。
次に、update-grub
を発行します。再起動して確認します。
40_custom
ファイルの私のエントリ。
menuentry "Ubuntu Natty Narwhal 11.04 ISO" {
set isofile="/OS/ubuntu-11.04-desktop-i386.iso"
loopback loop (hd0,6)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu Precise Pangolin 12.04 ISO" {
set isofile="/OS/ubuntu-12.04-desktop-i386.iso"
loopback loop (hd0,6)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject --
initrd (loop)/casper/initrd.lz
}
menuentry "SystemRescueCd" {
set isofile="/OS/systemrescuecd-x86-2.7.0.iso"
loopback loop (hd0,6)$isofile
linux (loop)/isolinux/rescuecd isoloop=$isofile setkmap=us docache dostartx
initrd (loop)/isolinux/initram.igz
}
menuentry "Boot Hardware Detection Tool from iso using memdisk 4.05" {
linux16 /customboot/memdisk4.05 iso
initrd16 /customboot/hdt.iso
}
menuentry "Free Dos from iso using memdisk 4.05" {
set isofile="/OS/fdbasecd.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
menuentry "Hiren's boot CD using memdisk 4.05" {
set isofile="/OS/Hiren's.BootCD.10.1.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
menuentry "Ultimate Boot CD iso using memdisk 4.05" {
set isofile="/OS/ubcd511.iso"
linux16 /customboot/memdisk4.05 iso
initrd16 (hd0,6)$isofile
}
すべてのISOはsda6/OS
に保持され、MEMDISK
はubuntuがインストールされているパーティション(ルート)に保持され、memdisk4.05
に名前が変更されます。したがって、/customboot/memdisk4.05
note:Fedoraは、指定された他の回答では動作しませんでした。まだFedoraを起動しようとしています:(。
UsbスティックやCDへの書き込みを必要とせずに、新しいisosをテストするためにgrub2のループバックを使用することは非常に貴重です。同様の機能を実現するために、Fedoraに対して提出されたバグがあります。現在のステータスを追跡するには少し時間がかかります。
13.04では、これを実現するために別の構文が必要と思われます。誰かが物理ディスクからubuntu-13.04-desktop-AMD64.isoを正常に起動し、grub構文を共有したいと思いますか?
編集:私自身の質問に答えました。 vmlinuzの名前をmvlinuz.efiに変更する必要があり、機能します。
menuentry "Ubuntu-13.04-desktop-AMD64.iso" --class ubuntu {
set isofile="/archives/ubuntu-13.04-desktop-AMD64.iso"
loopback loop (hd1,6)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noeject noprompt --
initrd (loop)/casper/initrd.lz
}
残念ながら、これらの推奨事項はどれも私を助けませんでした。だから私は道を見つけました、あなたと共有したいと思います。たとえば、centosを起動するには、次のものが必要です。isoイメージをディレクトリに配置します。ルートディレクトリが/ dev/sda1にマウントされている場合は、ディレクトリ/ isoを作成し、そこにisoを配置します。 GRUBコンソールに移動します(メニューGRUBが表示されたら、「c」を押します)。
適切なデバイスを選択します-hd0はsdaを意味します。 isoが配置されている場所を選択する必要があります。
loopback loop (hd0,msdos1)/iso/Redhat.iso
linux (loop)/isolinux/vmlinuz inst.repo=hd:sda1:/iso/Redhat.iso
initrd (loop)/isolinux/initrd.img
boot
そして起動してください!
ここでは、他のシステムの知識が必要であるため、grubエントリをセットアップしてそれらを正しく起動する必要があるため、ここでのトピックはオフです。はい、可能です。
ただし... Multi Systemは、1つの大きなUSBドライブで非常に多くの異なるISOを使用できる有能なツールです。私はそれが実際に非常にうまくいくと思いますが、PPAからインストールする必要があります:
http://www.pendrivelinux.com/multiboot-create-a-multiboot-usb-from-linux/
InstallFestsの1つのペンドライブにGparted LiveUSBと他のツール、およびUbuntuのツールをインストールできるようにするために使用します。ボーナスとして、メニューにカスタムスプラッシュスクリーンを使用できます。これは、オーストラリアのLoCoチームのロゴに設定しています。
クリス
前述のように、マルチシステムはGrub2を使用して、必要なことを行います。このオフトピックスレッドは許可されているか、少なくとも許容されているため、マルチシステムGrub2からのFedoraエントリは次のとおりです。
menuentry "Fedora-15-i686-Live-Desktop.iso" {
linux /Fedora1/isolinux/vmlinuz0 live_locale=en_AU.UTF-8 live_keytable=us live_dir=/Fedora1 root=UUID=493A-D2EF rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD noiswmd
initrd /Fedora1/isolinux/initrd0.img
}
Debianベースのディストリビューションではサポートされていないため、ISOから直接起動できないことに注意してください。次のように、ハードドライブで利用可能なISOから解凍されたファイルが必要になります。
chris@chris-office:/media/RED8/Fedora1$ ls -l
total 563972
drwx------ 2 chris chris 4096 Feb 11 2011 isolinux
-rw-r--r-- 1 chris chris 43503 May 14 2011 livecd-iso-to-disk
-r--r--r-- 1 chris chris 8192 May 14 2011 osmin.img
-r--r--r-- 1 chris chris 577449984 May 14 2011 squashfs.img
もちろん、Fedoraを起動するパーティションの/ Fedora /ディレクトリの場所とUUIDを変更する必要があります。マウントモードをroからrwに変更し、squashfsのアクセス許可など、他の適切なものも変更する必要があります。
仮想永続ディスクをセットアップすることもできますが、通常の/ homeパーティションをマウントできなかった理由はわかりませんが。繰り返しますが、マルチディスクをインストールし、自分で設定を行ってその方法を学ぶことをお勧めします。
クリス
マルチシステムを使用して、必要なliveCDをインストールしてから、ファイルを/にコピーし、grub.cfgsをマージしてみてください! (実際に動作するかどうかを知りたいです!)。