转载时请注明出处和作者联系方式文章出处:http://blog.csdn.net/jack0106 作者联系方式:冯牮 fengjian0106@yahoo.com.cn
最近看内核驱动,想在chroot环境下自己编译meego的内核玩玩,结果碰到个问题,chroot使用的img镜像文件太小了,编译内核的时候img中的空间不够用。上网google了一番,找到解决方法。好记性不如烂笔头,在此记录一下。
原贴请看 http://www.manyco.com/02/001.htm
说明:加入add.img就是我们要增加的空间大小50Mold.img就是我需要增加空间的img文件,原先为100M 准备工作:原先old.img有个文件manyco.txt,内容为"hello,manyco.com"[root@manyco ~]# losetup /dev/loop0 /old.img[root@manyco ~]# mount /dev/loop0 /tmp[root@manyco ~]# cd /tmp[root@manyco tmp]# lslost+found [root@manyco tmp]# echo "hello,manyco.com" > manyco.txt[root@manyco tmp]# cat manyco.txthello,manyco.com 正式开始:1.创建一个50M大小的文件[root@manyco tmp]#dd if=/dev/zero of=/add.img bs=1M count=502. 把这个文件关联成一个块设备,losetup就是干这件事情的因为把它关联成块设备,我们好格式化个[root@manyco tmp]#losetup /dev/loop0 /add.img3. 查看关联是否成功[root@manyco tmp]# losetup -a/dev/loop0: [fd00]:173960 (/add.img)4. 把它格式化成ext3文件系统[root@manyco tmp]#mkfs.ext3 /dev/loop05,卸载关联关系,再查看[root@manyco tmp]#losetup -d /dev/loop0[root@manyco tmp]#losetup -a6.给原img文件增加空间注意:这里是>>符号来追加,不是>,>是新写入!![root@manyco tmp]#cat /add.img >> /old.img7. 扫描检查[root@manyco tmp]#e2fsck -f /old.img8. 重新设置其大小属性,到这一步为止我们的工作的可以结束了但是作为一名有经验的高级研发人员,我们还得进行[root@manyco tmp]#resize2fs /old.img9,开始检查正确性[root@manyco ~]# losetup /dev/loop0 /old.img#要把这个虚拟的块设备mount到一个文件系统/tmp[root@manyco ~]# mount /dev/loop0 /tmp[root@manyco]cd /tmp10,创建一个比原old.img空间大的文件,看看能否成功,如果能表明我们的做法OK了如果不能,你还得继续排查 [root@manyco tmp]# dd if=/dev/zero of=11.img bs=1M count=130130+0 records in130+0 records out136314880 bytes (136 MB) copied, 12.2855 seconds, 11.1 MB/s[root@manyco tmp]# [root@manyco tmp]# du -lh12K ./lost+found131M .OK,we are success!!!