Moblin:KVM的使用(二)

来源:互联网 发布:克洛普 知乎 编辑:程序博客网 时间:2024/05/20 20:58

  我们使用KVM作为moblin的开发环境的时候,碰到来一个问题:即kvm模拟环境的大小,即虚拟大小是有效的,可能不满足我们的需求,同时我们在上面的很多开发的代码,并不希望纳入制作usbimg中,我们也不可能为了制作小容量的img而每次都将开发代码移走,下面记录我的处理过程。

  已有的raw文件:
    -rw-r--r--  1 root root 2621440001 06-30 14:13 moblin-netbook-ux-beta-last-200906300923-sda.raw
    $ qemu-img info moblin-netbook-ux-beta-last-200906300923-sda.raw 查看信息
    image: moblin-netbook-ux-beta-last-200906300923-sda.raw
    file format: raw
    virtual size: 2.4G (2621440000 bytes)
    disk size: 2.4G

  这个文件大小决定了用qemu-kvm展开的虚拟文件系统的大小,实际打开发现,约留下1G左右的空闲空间,看去来不少,但是我在build kernel的的过程中发现磁盘空间不够。我曾想过修改MIC2中的脚本来解决这个问题,但是当我阅读这些py后,就放弃了。这个文件的大小是由kickstart文件中设定的参数决定的。


一、制作一个空的raw文件,作为我们用户数据的存放,包括开发代码等等。

  有两种方式可以实现,例如我们希望额外有5G的空间大小。
  方法一:qemu-img create,可以通过man qemu-img得到详细说明,例子:qemu-img create wei.raw 5G
  方法二:dd,这个伟大的dd,我一直不特别清楚,现自管用:dd if=/dev/zero of=zero.raw bs=1024k count=5000,其中1024k*5000=5G。


二、开启kvm

  将两个raw同时加载进去,如下:
    sudo qemu-kvm -m 512 -boot c -hda  moblin-netbook-ux-beta-last-200906300923-sda.raw -hdb wei.raw -std-vga
  第一个raw作为-hda,第二个作为-hdb,我们还可以继续加载,打开后,hda作为/dev/sda,hdb作为/dev/sdb
  在kvm环境中的root下面,使用/sbin/fdisk -l,可以看到有一个未分区的磁盘/dev/sdb。
  使用/sbin/fdisk /dev/sdb,为这个虚拟磁盘增加一个分区,之后/dev/sdb1。通过/sbin/mkfs -t ext3 /dev/sdb1将分区根式化为ext3。剩下的就是mount一个分区的问题。创建加挂点:mkdir /home/wei,编辑/etc/fstab,增加相关信息,然后使用mount -t ext3 /dev/sdb1 /home/wei将分区加挂上去。

  我们使用/usr/sbin/useradd的命令,增加用户wei,自动将用户目录设置为/home/wei,使用passwd wei来设置密码,即可。这是所有都已经设置好,可以使用,我们也可以通过/sbin/init 0,进行安全退出,重新进入kvm,检查发现新用户,新分区都能正常生效。这个加挂的分区,作为我们开发的空间。

 

三、制作img

制作img,只需要针对根目录部分的raw文件进行转换,不需要将我们的开发用户文件raw加入。这样在调测过程中省却很多麻烦,最后生成正式img,我们也只需要将userdel,修改/etc/fstab文件就可以了。如果需要重新加载,也就是1分钟之内的事情。

 

相关链接:Moblin:KVM的使用(一)