Linux 下 Ramdisk 根文件系统制作过程解析
一、在一个已建好的文件系统上进行修改
设已建立好的文件系统压缩文件为 ramdisk.gz
1、解压
#cd ramdisk.gz 所在目录
#gunzip ramdisk.gz
在解压后,得到文件系统镜象文件 ramdisk, 覆盖了原来的压缩文件
2、镜象文件挂载
镜象文件必须经过挂载后才能看到文件系统中的各个目录和详细内容
#mkdir /mnt/loop /* /mnt/loop 是文件系统要挂载到的目录
#mount –o loop ramdisk /mnt/loop
3、在挂载目录/mnt/loop 下对文件系统进行操作
#cd /mnt/loop
#do_whatever_you_want_to_do /*根据需要增加、删减或是修改文件系统的内容
4、卸装文件系统
跳到/mnt/loop 目录外,否则无法卸装,提示 busy
#cd ramdisk 所在目录
#umount /mnt/loop
5、压缩文件系统
#gzip –v9 ramdisk /*生成 ramdisk.gz 压缩文件
二、自己建立根文件系统
1、建立 loop 设备的临时挂载点
#mkdir /mnt/loop
2、建立一个大小为 15M 的临时文件
#dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360
注意可根据自己的需要建立大小合适的文件系统,更改 count 大小即可。
此处以 dd 命令建立一个了一个 15360KB 文件系统映象,存于/tmp/loop/tmp,并以.dev/ze
ro 对它进行初始化。用这种方式对文件系统进行初始化,稍后当我们使用 gzip 命令压缩整
个映象时,将让文件系统中未使用的部分获得最大压缩比。
3、将设备文件与临时文件联系起来
#losetup /dev/loop0 /tmp/loop_tmp
把设备文件/dev/loop0 与临时镜象文件/tmp/loop_tmp 联系起来,/dev/loop0 是个块设备
如果出现“ioctl:LOOP_SET_FD:设备或资源忙”,说明/dev/loop0 设备还和一文件联系,可
用 losetup /dev/loop0 查看地,并可用-d 删除。
4、将/dev/loop0 格式化为 ext2 文件系统
#mke2fs –m 0 /dev/loop0
-m 0 指出不必在文件系统上为“超级用户”保留任何区块。
Linux 内核识别两种可以直接考贝的到 ramdisk 的文件系统,它们是 minix 和 ext2,minix
是 linux 早期版本所用的文件系统,从 minix 操作系统而来,ext2 性能更好。
5、把虚拟盘挂在节点/mnt/loop 上
#mount –t ext2 /dev/loop0 /mnt/loop
6、用 cp –af 命令将所需要文件拷贝到虚拟盘上
评论8