Creating a bootable qemu image from a root filesystem and bootloader

  1. Create a hard disk image

    qemu-img create -f qcow <imagename.img> <size>G
    
  2. Use a live CD (better to have a lighter OS like system rescue CD to make the process faster) and the image created to boot.

    qemu -cdrom /dev/cdrom -hda <imagename.img> -boot d
    
  3. Once system is booted use a partition editing tool (like fdisk, cfdisk, parted, gparted, qtparted ...) to partition the image.

    cfdisk
    

    create the necessary partitions (root and swap partitions boot, home ... if required)

  4. Create a file syatem for the root partiotion

    mke2fs /dev/hda1
    
  5. Mount the partition

    mkdir disk
    mount /dev/hda1 disk
    
  6. Copy the file system from the host machine to the mounted directory (use a compressed file system to make the copying faster)

    Grab the GNU spapshot from ams' site http://www.update.uu.se/~ams/home/slask/GNU/

    scp <user>@<host>:<path to the compressed file system> disk
    
  7. Uncompress the files

    cd disk
    tar -jxvf <compressed filesystem>
    
  8. Unmount the mounted partition

    cd .. 
    umount disk
    
  9. power off the guest OS.

    poweroff
    
  10. To make the file syatem bootable download a grub floppy image

    <http://hurd.in/pub/Hurd/HurdOnVMware/grub.img>
    
  11. Run qemu to boot into your brand new system

    qemu -hda <hard disk image.img> -fda grub.img -boot a
    

Happy Hacking !!

Make your new system boot from the hard disk

  1. Mount your grub image

    mkdir floppy
    mount -t ext2 -o loop grub.img floppy
    
  2. Use previous steps 2 and 5 to boot from a liveCD and mount the partition

    cd disk/boot
    scp -r <user>@<host>:<path to mounted floppy image directory>/boot/grub
    
  3. Poweroff the guest

    poweroff
    
  4. Boot new system using floppy image previous step 11

    use install to hard disk option if you used the above grub image

    or go to grub command line and type

    root (hd0,0)
    setup (hd0)
    

    Now you have a bootable system image. Enjoy Maadi !!