一、在一个已建好的文件系统上进行修改
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WWW_P※LCJS_CO※M-PLC-技-.术_网
设已建立好的文件系统压缩文件为ramdisk.gzWWW_P※LCJS_COM-PLC-)技.术_网
P.L.C.技.术.网——可编程控制器技术门户
1.解压WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
#cd ramdisk.gz所在目录WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
plcjs.技.术_网
#gunzip ramdisk.gzWWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
在解压后,得到文件系统镜象文件ramdisk, 覆盖了原来的压缩文件W1WW_P4LCJS_COM-PLC-技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
2.镜象文件挂载WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW.PLCJS.COM——可编程控制器技术门户
镜象文件必须经过挂载后才能看到文件系统中的各个目录和详细内容WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
#mkdir /mnt/loopWWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
/* /mnt/loop 是文件系统要挂载到的目录WWcW_PLCJS_COM-PLC-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
#mount –o loop ramdisk /mnt/loopP.L.C.技.术.网——可编程控制器技术门户
WWW_P※LCJS_CO※M-PLC-技-.术_网
在挂载目录/mnt/loop下对文件系统进行操作WWW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
#cd /mnt/loopWWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
#do_whatever_you_want_to_do /*根据需要增加、删减或是修改文件系统的内容WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
4.卸装文件系统WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PmLC-技.术_网
跳到/mnt/loop目录外,否则无法卸装,提示busyWW.W_PLC※JS_C,OM-PL,C-技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
#cd ramdisk所在目录WWW_PLCJS@_COM%-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
#umount /mnt/loopWW.W_PLCJS_COM-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
5.压缩文件系统WWcW_PLCJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
#gzip –v9 ramdiskWWW_PLCJS@_COM%-PLC-技.术_网
plcjs.技.术_网
/*生成ramdisk.gz压缩文件WWcW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
二、自己建立根文件系统——可——编——程——控-制-器-技——术——门——户
WWW_PLCJS@_COM%-PLC-技.术_网
1.建立loop设备的临时挂载点WWcW_PLCJS_COM-PLC-技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
#mkdir /mnt/loopWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
2.建立一个大小为15M的临时文件P.L.C.技.术.网——可编程控制器技术门户
P.L.C.技.术.网——可编程控制器技术门户
#dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360plcjs.技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
注意可根据自己的需要建立大小合适的文件系统,更改count大小即可。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
此处以dd命令建立一个了一个15360KB文件系统映象,存于/tmp/loop/tmp,并以.dev/zero对它进行初始 化。 用这种方式对文件系统进行初始化,稍后当我们使用 gzip命令压缩整个映象时,将让文件系统中未使用 的部分获得最大压缩比。WWW_P※LCJS_CO※M-PLC-技-.术_网
WWW_PL※CJS_COM-PLC-技.术_网
3.将设备文件与临时文件联系起来WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_P※LCJS_COM-PLC-)技.术_网
#losetup /dev/loop0 /tmp/loop_tmpWWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
把设备文件/dev/loop0与临时镜象文件/tmp/loop_tmp联系起来,/dev/loop0是个块设备P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
如果出现“ioctl:LOOP_SET_FD:设备或资源忙”,说明/dev/loop0设备还和一文件联系WWW_PL※CJS_COM-PLC-技.术_网
可用losetup /dev/loop0查看地,并可用-d 删除。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网
4.将/dev/loop0格式化为ext2文件系统WWW.PLCJS.COM——可编程控制器技术门户
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
#mke2fs –m 0 /dev/loop0WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
-m 0指出不必在文件系统上为“超级用户”保留任何区块。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
Linux内核识别两种可以直接考贝的到ramdisk的文件系统,它们是minix和ext2,WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
minix是linux早期版本所用的文件系统,从minix操作系统而来,ext2性能更好。WWW.PLCJS.COM——可编程控制器技术门户
WWW_PL※CJS_COM-PLC-技.术_网
5.把虚拟盘挂在节点/mnt/loop上WWW_P※LCJS_CO※M-PLC-技-.术_网
plcjs.技.术_网
#mount –t ext2 /dev/loop0 /mnt/loopWWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网
6.用cp –af命令将所需要文件拷贝到虚拟盘上plcjs.技.术_网
W1WW_P4LCJS_COM-PLC-技.术_网
cp –help查看cp 用法。cp –arf … -r表示拷贝目录W1WW_P4LCJS_COM-PLC-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
/bin, /dev, /etc, /lib, proc, /sbin, /usr都是不可或缺的目录,建议保留/tmp,/var,WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
不过可以为空。而为多用户提供可扩展环境的所有目录(例如/home、/mnt、/opt、/root)都应该省略。P.L.C.技.术.网——可编程控制器技术门户
用cp复制文件时,建议把已建立好的文件系统中的内容全部拷贝过来,这样比较简单,不需要再去编译安装 busybox等。WWW_PLCJS_COM-PLC-技.术_网
当然自己也可以那样去做。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
7.卸载文件系统,得到的/tmp/loop_tmp就是文件系统映象。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
#cd /mnt/loop以外的目录 (否则会提示无法卸载,设备busy)WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
#umount /mnt/loopWWW.PLCJS.COM——可编程控制器技术门户
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
8.压缩文件系统映象plcjs.技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
#gzip –v9 /tmp/loop_tmp >/tftpboot/ramdisk.gzWWW_PL※CJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PmLC-技.术_网
在/tftpboot下生成了ramdisk.gz,这样一个内存文件镜象生成了。WWW_PLCJS@_COM%-PLC-技.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
或只是#gzip –v9 /tmp/loop_tmp,则就是在/tmp下生成loop_tmp.gz文件,一样的。——可——编——程——控-制-器-技——术——门——户
WWW_P※LCJS_COM-PLC-)技.术_网
在上述的自己建立文件系统中,第3条用 losetup命令把块设备文件/dev/loop0与临时文件/tmp/loop_tmp联系 起来了, 我的理解是/tmp/loop_tmp必须是块 设备文件,所以用/dev/loop0与之相关联,WWW_PLC※JS_COM-PmLC-技.术_网
然后对/dev/loop0的操作和对其虚拟盘的操作,就间接作用在文件系统映象 /tmp/loop_tmp上。W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
三、自己建立根文件系统(与二中不同)WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWcW_PLCJS_COM-PLC-技.术_网
1.建立loop设备的临时挂载点W1WW_P4LCJS_COM-PLC-技.术_网
plcjs.技.术_网
#mkdir /mnt/loopW1WW_P4LCJS_COM-PLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
2.建立文件系统映象WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
#dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360——可——编——程——控-制-器-技——术——门——户
WWW_PLC※JS_COM-PmLC-技.术_网
以上2条同二中是一样WWW_PLC※JS_COM-PmLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
3.mke2fs –F –v –m 0 /tmp/loop_tmpWWW_PL※CJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
此处-F选项将可迫使mkefs2在文件上运行。否则mke2fs会抱怨/tmp/loop_tmp不是个块设备(在上面说了,P.L.C.技.术.网——可编程控制器技术门户
我的理解是 /tmp/loop_tmp文件映象必须是块设备文件,前面的做法是用块设备文件/dev/loop0与之相关 联)。plcjs.技.术_网
-v 选项指出mke2fs应该以verbose模式执行,-m 0指出不必在文件系统上为“超级用户”保留任何区块,WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
因为在嵌入式系统中通常是单用户系统,为“超级用户”保留区块没有意义。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
4.挂载映象文件WW.W_PLCJS_COM-PLC-技.术_网
WW.W_PLC※JS_C,OM-PL,C-技.术_网
#munt –o loop /tmp/loop_tmp /mnt/loopWWW_PLC※JS_COM-PmLC-技.术_网
WWW.PLCJS.COM——可编程控制器技术门户
挂载后,在/mnt/loop下就可以对文件系统的内容进行操作。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
P.L.C.技.术.网——可编程控制器技术门户
5.cp操作,同二中的第6条WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLCJS@_COM%-PLC-技.术_网
6.卸载映象文件WWW.PLCJS.COM——可编程控制器技术门户
WW.W_PLCJS_COM-PLC-技.术_网
#umount /mnt/loopWWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW.PLCJS.COM——可编程控制器技术门户
7.压缩映象文件WW.W_PLCJS_COM-PLC-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
#gzip –v9 /tmp/loop_tmpWWcW_PLCJS_COM-PLC-技.术_网
——可——编——程——控-制-器-技——术——门——户
第三中的做法与第二中的做法不同,在第二中,把块设备文件/dev/loop0与映象文件/tmp/loop_tmp相关 联, 然后对/dev/loop0及虚拟盘进行操作,就作用在/ltmp/loop_tmp上。WWW_PL※CJS_COM-PLC-技.术_网