您的位置:首页 > 其它

mke2fs 制作ext2文件系统image

2013-01-30 11:32 393 查看
方法1: 利用/dev/ram1:

linux下有很多ram,我们用ram1,首先把ram1格式化成ext2文件系统

[root@gucuiwen babylinux]# sudo mkfs.ext2 -m0 /dev/ram1

将ram1挂装到文件系统中:

先建立一个挂装点:

#mkdir /mnt/ram

挂上ram1:

# sudo mount /dev/ram1 /mnt/ram

将先前做好的rootfs根文件系统拷贝到ram1上.

# sudo cp -R dist/* /mnt/ram/

拷贝好根文件系统后卸载ram1:

# sudo umount /dev/ram1

再用dd把这个ram1以映象方式取出来:

[root@gucuiwen babylinux]# dd if=/dev/ram1 of=initrd.img

读入了 8192+0 个块输出了 8192+0 个块

把生成的initrd.img拷到一个地方备用

gzip -v9 initrd.img //压缩成initrd.img.gz

方法2 : loop device和ram disk.


loop device:

创建fs image:

dd if=/dev/zero of=image.file bs=1k count=100000

losetup /dev/loop0 image.file

mke2fs -c /dev/loop0 100000

加载:

mount -t ext2 /dev/loop0 /mnt

umount /mnt

losetup -d /dev/loop0

或者

mount -t ext2 -o loop image.file /mnt

umount /mnt

loop device将一个硬盘上的文件虚拟成块设备,大小取决于losetup

时那个文件的大小,断电后内容不丢失;

ram disk将一块内存虚拟成块设备,大小取决于ramdisk_size启动参数,

断电后内容丢失。

ramdisk: 根据grub启动参数ramdisk_size决定大小,默认4MB

可以格式化ram disk并往里面写文件,然后dd出来做一个fs image,

但这个image大小跟ramdisk一样大(疑问:好像可以比ramdisk的

容量小,因为mke2fs可以指定block数目)。

综上,做一个fs image的办法还是得losetup那个好些, 不用受内存

大小的限制.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: