ルートファイルシステムをテストするには、作成したディスクイメージをルートファイルシステムとしてQEMUを実行する必要があります。QEMUは、カーネルをルートファイルシステム内にデプロイせずに直接指定するために使用できる-kernelを受け入れますが、ルートに同様の機能が必要ですディスクイメージを作成する代わりに抽出されたルートファイルシステムのパスを指定し、それを-hdaまたは-usbdiskオプションとともに使用するファイルシステム。
qEMUだけでまったく可能ですか?またはサードパーティのツール(仮想ディスクイメージエミュレーターなど)
私の目標は、ディスクイメージを作成せずにルートファイルシステムのtarアーカイブをテストすることです
Rootfsが大きすぎない場合は、initdを使用できます。 qemuに-initrd
オプションを使用して、rootfsを含む(圧縮された)cpioファイルを提供します。したがって、tarファイルがある場合は、それを解凍して、代わりにcpioを作成する必要があります。 cpioには-H newc
形式を使用する必要があります。例;
mkdir /tmp/rootfs
cd /tmp/rootfs
tar xf /path/to/rootfs.tar
find | cpio --quiet -o -H newc | bzip2 -c > /tmp/rootfs.cpio
いいことに、これにはrootやSudoは必要ありません。
ファイルシステムをUSBドライブに書き込んでから、QEMU仮想マシンに接続できます。
それをGRUBのカーネルオプションでルートファイルシステムとしてマウントするより
あなたのペンドライブは/dev/sdB
(ハードディスクイメージも添付していることを考慮してください。これは/dev/sdA
、とにかく見つけることができます)grubコマンドは次のようになります
kernel (hd1,gpt0)/location_of-kernel root=/dev/sdB
initramfs mention_if_you_have
boot
置換gpt0
適切なパーティションと/dev/sdB
適切な文字でライブ/dev/sdb1
または/dev/sdb
(USBにパーティションがない場合)