我們使用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分鐘之內的事情。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/flowingflying/archive/2009/06/30/4309792.aspx