ここで私がやろうとしているところです。
USB Stick Boots to -> GRUB Loader -> GRUB boots one of many ISO files on the USB into LIVE mode.
これが私のディレクトリ構造です。これは本当にシンプルです。
MULTIBOOT(USB stick) ->
- ubuntu-14.04.1-desktop-i386.iso (ISO File)
- Parrot-full-3.6_AMD64.iso (ISO File)
- kali-linux-2017.1-AMD64.iso (ISO File)
- boot (FOLDER)
- boot/grub (FOLDER)
unbutuisoは私のコンピューターと私のVMオウムとカリisoロードカーネルで正常に起動しますが、initramfsで停止し、「インストールメディアが見つかりません」と文句を言います
これが私のgrub.cfgファイルです
menuentry "ubuntu-14.04.1-desktop-i386 Desktop ISO" {
loopback loop /ubuntu-14.04.1-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-14.04.1-desktop-i386.iso noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
menuentry "Parrot-full-3.6_AMD64 ISO" {
loopback loop /Parrot-full-3.6_AMD64.iso
linux (loop)/live/vmlinuz boot=live iso-scan/filename=/Parrot-full-3.6_AMD64.iso noeject noprompt splash --
initrd (loop)/live/initrd.img
}
menuentry "kali3-AMD64 Live system" {
loopback loop /kali-linux-2017.1-AMD64.iso
linux (loop)/live/vmlinuz boot=live iso-scan/filename=/kali-linux-2017.1-AMD64.iso splash username=root hostname=kali
initrd (loop)/live/initrd.img
}
これらのISOを仮想マシンと作業で試しました。また、RUFUSを使用してUSBに接続し、直接起動して、PCと同じように試しました。彼らが働きます。 RUFUSの問題は、単一のISOを使用すると機能することです。しかし、ISOごとに1つのUSBを作りたくありません。すべてのISOを保持するUSBを1つだけ作成したいので、LIVEモードで起動できるはずです。そこで、GRUBに切り替えました。しかし、GRUBは大丈夫ですが、そのドキュメントは厳しく制限され、断片化されています。これが必要な場合は、他の多くの人もこれを必要としています。
問題を解決しました!!!!解決:
ルートファイルシステムをロードする途中でisoファイルを見つけるには、ブートプロセスにfindisoカーネルパラメータを使用する必要があります。以下の最新の動作中のgrub.configエントリを参照してください。
注:superGrubをテストするためだけに、ISOファイルを/ boot-isos /フォルダーに移動しました。しかし、どこにでも置くことができます。次のことを確認してください。
1. to give correct path name to the iso file
2. MUST USE findiso kernel parameter to let boot process find the iso file. Else it will NOT work.
uSBの現在のディレクトリ構造は次のとおりです。
USB STICK ->
/boot (folder that holds GRUB)
/boot-isos (folder that holds isos below)
- KALI iso file
- Parrot iso file
- Ubuntu iso file
menuentry "[loopback]Parrot-full-3.6_AMD64" {
set isofile='/boot-isos/Parrot-full-3.6_AMD64.iso'
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=Sudo username=root hostname=parrot
initrd (loop)/live/initrd.img
}
menuentry "[loopback]kali-linux-2017.1-AMD64" {
set isofile='/boot-isos/kali-linux-2017.1-AMD64.iso'
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=Sudo username=root hostname=kali
initrd (loop)/live/initrd.img
}
私はこれに多くの時間を費やしました。コマンドラインとgrub.cfgパラメーターの両方をループバックから起動するさまざまな方法でテストされています。カリやオウムを起動するためにそれを取得しませんでした。 Ubuntuは毎回正常に起動します。他のLinuxディストリビューションを予約することができました。私はSuperGrubでテストしましたが、同じ結果です。この問題はkali-linux-2017.1-AMD64.isoとParrot-full-3.6_AMD64.isoにあると思います。これら2つのブートプロセスは、マウントされたcd/dvdドライブからルートファイルシステムをロードすることを想定しているため、壊れています。 RUFUSのようなツールは、ISOの内容を/ cdファイルに展開することでこれを回避しています。このファイルは、おそらく別のramdisk/mnt/cdとしてロードおよびマウントされます。 KALIとPARROTはこれを修正する必要があります。