嵌入式 mount -t用法和ramdisk命令

原创 2013年12月02日 14:49:37

 

 

mkdirramdisk

cd ramdisk/

dd if=/dev/zeroof=123 bs=1k count=15360

cdrootfs_uclibc/

dd if=/dev/zero of=123 bs=1k count=100000

dd if=/dev/zeroof=123 bs=1k count=10000
mkdir ramdisk_test

mount -t ext2 123ramdisk_test

losetup /dev/loop0 123
df
mke2fs -m 0 /dev/loop0
umount /dev/loop0
mount
mount -t ext2 123 ramdisk_test

cp -rf./rootfs_uclibc/* ./ramdisk/ramdisk_test/
cd ./ramdisk/ramdisk_test/

umount ramdisk_test/

mount -t ext2 123 ramdisk_test

cdramdisk_test/

 

 

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

  设已建立好的文件系统压缩文件为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 /*根据需要增加、删减或是修改文件系统的内容

  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/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模式执行,-m0指出不必在文件系统上为“超级用户”保留任何区块,因为在嵌入式系统中通常是单用户系统,为“超级用户”保留区块没有意义。

  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 …将其当作块设备文件进行操作。

LINUXmount -t用法

 

 

 

挂接命令(mount) 

  首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。 

  命令格式: 

  mount [-t vfstype] [-o options] device dir 

  其中: 

  1.-t vfstype 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。常用类型有: 

  光盘或光盘镜像:iso9660 

  DOS fat16文件系统:msdos 

  Windows 9x fat32文件系统:vfat 

  Windows NT ntfs文件系统:ntfs 

  Mount Windows文件网络共享:smbfs 

  UNIX(LINUX) 文件网络共享:nfs 

  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有: 

  loop:用来把一个文件当成硬盘分区挂接上系统 

  ro:采用只读方式挂接设备 

  rw:采用读写方式挂接设备 

  iocharset:指定访问文件系统所用字符集 

  3.device 要挂接(mount)的设备。 

  4.dir设备在系统上的挂接点(mount point)。

更加详细具体的用法,可以参看man mount

busybox制作ramdisk动态库版本

1 Linux kernel配置 1.1  dts 修改dts以支持ramdisk bootargs和ramdisk分区: 在memory项后通过chosen方式添加bootargs,添加内容如...
  • fanyl2006
  • fanyl2006
  • 2016年05月09日 14:43
  • 947

Linux mount命令详解

挂接命令(mount)  首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的。  命令格式:mount [-t vfstype] [-...
  • ylyuanlu
  • ylyuanlu
  • 2014年04月26日 21:36
  • 2729

创建嵌入式linux混合文件系统(ramdisk+jffs2)

1、 Ramdisk文件系统 Ramdisk就是将内存中的一块区域作为物理磁盘来使用的一种技术,内存盘的存取速度要远快于目前的物理硬盘,所以它具有读写速度高的优势。在嵌入式设备中,我们可以把Ramdi...
  • u013305541
  • u013305541
  • 2014年01月01日 14:33
  • 2375

Ramdisk简介以及嵌入式Linux上实现

作者: Sam (甄峰)  sam_code@hotmail.com   Sam多年前在刚接触Linux时第一个项目是个DVR项目,此项目当时谁作谁辞职。在Sam加入之前,几乎已经换了3拨...
  • wangjidong198612
  • wangjidong198612
  • 2015年08月19日 17:05
  • 271

Ubuntu mount命令用法详解

格式:mount [-参数] [设备名称] [挂载点]  其中常用的参数有:  -a 安装在/etc/fstab文件中类出的所有文件系统。  -f 伪装mount,作出检查设备和目录...
  • u013583708
  • u013583708
  • 2014年02月01日 00:02
  • 3689

ramdisk文件系统的介绍与制作

一、文件系统与根文件系统     1、文件系统         文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)分区上的文件的存储方法和数据结构,即在存储设备...
  • silent123go
  • silent123go
  • 2016年09月23日 20:21
  • 2766

mount系统调用的实现

mount系统调用在内核中对应的服务函数为do_mount函数.下面就简单总结一下该函数的实现. long do_mount(char *dev_name, char *dir_name, char...
  • CQ062364
  • CQ062364
  • 2014年08月24日 22:26
  • 787

Linux下创建和使用RamDisk的技巧

本文以RedHat6.0为例,讲述Linux下使用RamDisk的方法和技巧。其它Linux发行套件的使用方法与之类似。     先介绍一下什么是RamDisk。RamDisk实际是从内存中划出...
  • awkwardgirl
  • awkwardgirl
  • 2014年04月11日 14:31
  • 1688

ceph集群 ceph集群mkfs以及mount使用示例

mount ,mkfs 工具详细说明(ext4,xfs) mount-o options device directory Option:Description async:允许文件系统异步的输入与输...
  • skdkjxy
  • skdkjxy
  • 2014年12月01日 16:10
  • 1403

yaffs2 启动挂载流程

1.概述 yaffs2是yaffs的改进,主要是为了支持2KB pagesize的Nand Flash。本文主要探究yaffs2在linux中的初始化以及挂载过程。 2.初始化过程 linux要使...
  • DKH63671763
  • DKH63671763
  • 2016年08月27日 08:03
  • 844
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式 mount -t用法和ramdisk命令
举报原因:
原因补充:

(最多只允许输入30个字)