Hi, I want to build a trusted integrity measurement OS, so that a remote party can check the system's integrity. But I don't have a hardware TPM, so I run the TPM emulator (http://tpm-emulator.berlios.de/) and patched my Qemu and SeaBIOS with the TPM related Patches (provided by Mr. Stefan Berger) to test the integrity measurement in virtual machine based Linux. To launch a Linux through Qemu, at first I compiled Linux from the source with Kernel-IMA functionality. Now I have the following files-
The compiled kernel-IMA image at /home/rrsuj/linux-2.6.32.59/arch/x86/boot/bzImage And the new initrd at /boot/initrd.img-2.6.32.59 The patched bios.bin at /home/rrsuj/seabios-0.6.2/out/bios.bin I first check that the TPM emulator is running, so that Qemu and SeaBIOS find a TPM (although virtual). Then I execute the following command - #qemu-system-i386 -kernel /home/rrsuj/linux-2.6.32.59/arch/x86/boot/bzImage -initrd /boot/initrd.img-2.6.32.59 -bios /home/rrsuj/Downloads/seabios/seabios-0.6.2/out/bios.bin It tries to boot Linux, but gives error- "VFS: cannot open root device "<NULL>" or unknown-block (8,1)" "Please append a correct "root=" boot option;" So I did- #qemu-system-i386 -kernel /home/rrsuj/Downloads/linux-2.6.32.59/arch/x86/boot/bzImage -initrd /boot/initrd.img-2.6.32.59 -append "root=/dev/sda1" -bios /home/rrsuj/Downloads/seabios/seabios-0.6.2/out/bios.bin but the error changes slightly- "VFS: cannot open root device "sda1" or unknown-block (0,0)" "Please append a correct "root=" boot option;" The output of "sudo fdisk -l" is- Device Boot Start End Blocks Id System /dev/sda1 * 1 2686 21569536 83 Linux /dev/sda2 2686 2808 979969 5 Extended /dev/sda5 2686 2808 979968 82 Linux swap / Solaris So please tell me, what should I do? I had a plan to install TrustedGrub inside the virtual machine (the guest Linux), so that I can measure the total system from SeaBIOS to TrustedGrub to Linux-IMA. But it is not booting as I mentioned. Thank you for your help. Best regards