Linux系统下Ramdisk的制作过程

2016-02-20 13:22 12 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是Linux系统下Ramdisk的制作过程,一起来学习了解下吧!

【 tulaoshi.com - Linux教程 】

一、在一个已建好的文件系统上进行修改

  设已建立好的文件系统压缩文件为ramdisk.gz

  1.解压

  #cd ramdisk.gz所在目录

  #gunzip ramdisk.gz

  在解压后,得到文件系统镜象文件ramdisk, 覆盖了原来的压缩文件

  2.镜象文件挂载

  镜象文件必须经过挂载后才能看到文件系统中的各个目录和详细内容

  #mkdir /mnt/loop

  /* /mnt/loop 是文件系统要挂载到的目录

  #mount –o loop ramdisk /mnt/loop

  在挂载目录/mnt/loop下对文件系统进行操作

  #cd /mnt/loop

  #do_whatever_you_want_to_do /*根据需要增加、删减或是修改文件系统的内容

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  4.卸装文件系统

  跳到/mnt/loop目录外,否则无法卸装,提示busy

  #cd ramdisk所在目录

  #umount /mnt/loop

  5.压缩文件系统

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  #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/zero对它进行初始化。用这种方式对文件系统进行初始化,稍后当我们使用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命令将所需要文件拷贝到虚拟盘上

  cp –help查看cp 用法。cp –arf … -r表示拷贝目录

  /bin, /dev, /etc, /lib, proc, /sbin, /usr都是不可或缺的目录,建议保留/tmp,/var,不过可以为空。而为多用户提供可扩展环境的所有目录(例如/home、/mnt、/opt、/root)都应该省略。

  用cp复制文件时,建议把已建立好的文件系统中的内容全部拷贝过来,这样比较简单,不需要再去编译安装busybox等。当然自己也可以那样去做。

  7.卸载文件系统,得到的/tmp/loop_tmp就是文件系统映象。

  #cd /mnt/loop以外的目录 (否则会提示无法卸载,设备busy)

  #umount /mnt/loop

  8.压缩文件系统映象

  #gzip –v9 /tmp/loop_tmp /tftpboot/ramdisk.gz

  在/tftpboot下生成了ramdisk.gz,这样一个内存文件镜象生成了。

  或只是#gzip –v9 /tmp/loop_tmp,则就是在/tmp下生成loop_tmp.gz文件,一样的。

  在上述的自己建立文件系统中,第3条用 losetup命令把块设备文件/dev/loop0与临时文件/tmp/loop_tmp联系起来了,我的理解是/tmp/loop_tmp必须是块设备文件,所以用/dev/loop0与之相关联,然后对/dev/loop0的操作和对其虚拟盘的操作,就间接作用在文件系统映象 /tmp/loop_tmp上。

  三、自己建立根文件系统(与二中不同)

  1.建立loop设备的临时挂载点

  #mkdir /mnt/loop

  2.建立文件系统映象

  #dd if=/dev/zero of=/tmp/loop_tmp bs=1k count=15360

  以上2条同二中是一样

  3.mke2fs –F –v –m 0 /tmp/loop_tmp

  此处-F选项将可迫使mkefs2在文件上运行。否则mke2fs会抱怨/tmp/loop_tmp不是个块设备(在上面说了,我的理解是/tmp/loop_tmp文件映象必须是块设备文件,前面的做法是用块设备文件/dev/loop0与之相关联)。-v 选项指出mke2fs应该以verbose模式执行,-m 0指出不必在文件系统上为“超级用户”保留任何区块,因为在嵌入式系统中通常是单用户系统,为“超级用户”保留区块没有意义。

  4.挂载映象文件

  #munt –o loop /tmp/loop_tmp /mnt/loop

  挂载后,在/mnt/loop下就可以对文件系统的内容进行操作。

  5.cp操作,同二中的第6条

  6.卸载映象文件

  #umount /mnt/loop

  7.压缩映象文件

  #gzip –v9 /tmp/loop_tmp

  第三中的做法与第二中的做法不同,在第二中,把块设备文件/dev/loop0与映象文件/tmp/loop_tmp相关联,然后对/dev/loop0及虚拟盘进行操作,就作用在/ltmp/loop_tmp上。

  而第三中,是直接对映象文件/tmp/loop_tmp进行操作,用mke2fs –F …将其当作块设备文件进行操作。

来源:http://www.tulaoshi.com/n/20160220/1647753.html

延伸阅读
选材  中国风筝的骨架制作以各种竹材为主,辅以苇子,高粱杆等。现代开始用木材、玻璃纤维、碳纤维复合材料或轻金属。竹材的特点是:质轻,纤维直而密(皮部),因此有一定的强度,韧性和弹性,可以劈成各种规格的条,加工方便。可以热弯曲,定型后不易变形。缺点是刚性不如木材。竹属禾本科竹亚科植物,我国竹种很多,有22属200余种,...
《2012》剧情介绍: 2012年12月21日黑暗降临后,12月22日的黎明永远不会到来。 历史上从来没有一个日期,能如2012年12月21日这样对人类产生巨大影响。玛雅文明预言它是世界末日,而各个文化、种族,全球的科学家、政府,都无法预知这一天到底会发生什么。《2012》是一部关于全球毁灭的灾难电影,它讲述在2012年世界末日到来...
标签: 创意手工 年画
步骤一: 起稿和定稿后,用白描法画在毛边或薄绵纸上。 步骤二: 将定稿用粉糊反粘在刨平的梨木或杜木板上,留画稿墨线剔去空白处,完成墨线版。 步骤三: 将墨线印出的画样,再在画样上点出颜色,刻工再按点出的不同颜色,刻制出彩色套印版,一般不超过五张。 ...
第一步:先把所需要的材料整理下。   第二步:把准备好的玻璃瓶全均匀地涂上一层胶水。 第三步:把涂好胶水的玻璃瓶拿到闪光片处(也就是亮片)。   第四步:把那么闪光片均匀地粘在玻璃瓶上。   第八步:我们来看看...
标签: 手工
第一步:准备好:鸟笼、丝带、各式各样的饰物、信邮票和墨水、珍珠、缎带或鲜花、胶水和剪刀。   第二步:如图,用纽扣、蝴蝶等饰物来做装饰,不要怕浪费哦!   第三步:制作标签,这样对每一个标签打上个洞。   第四步:把每个标记制成表,如图。 ...

经验教程

180

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部