普通分区jffs2挂载

jffs2除了可以制作成根文件系统使用以外,我们也可以在系统成功启动后,将其他分区以jffs2文件系统类型挂载使用。上一篇中,我们以jffs2文件系统同Linux内核分别烧录到开发板中,当时分区时留下了mtdblock5 backup 40MB,这次我们将其他分区以jffs2文件系统类型挂载使用。
查看内核分区状况

~ >: dmesg | grep mtdblock 
Kernel command line: console=tty0 console=ttyS0,115200 root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc mem=64M rw noinitrd loglevel=7
0x000000000000-0x000000100000 : "mtdblock0 u-boot 1MB"
0x000000100000-0x000001000000 : "mtdblock1 kernel 15MB"
0x000001000000-0x000003800000 : "mtdblock2 rootfs 40MB"
0x000003800000-0x000008800000 : "mtdblock3 apps 80MB"
0x000008800000-0x00000d800000 : "mtdblock4 data 80MB"
0x00000d800000-0x000010000000 : "mtdblock5 backup 40MB"

查看Linux内核分区表

~ >: cat /proc/partitions 
major minor  #blocks  name

  31        0       1024 mtdblock0
  31        1      15360 mtdblock1
  31        2      40960 mtdblock2
  31        3      81920 mtdblock3
  31        4      81920 mtdblock4
  31        5      40960 mtdblock5

查看分区对应的块设备

~ >: ls -l /dev/mtdblock*
brw-rw----    1 root     root       31,   0 Nov  3 18:33 /dev/mtdblock0
brw-rw----    1 root     root       31,   1 Nov  3 18:33 /dev/mtdblock1
brw-rw----    1 root     root       31,   2 Nov  3 18:33 /dev/mtdblock2
brw-rw----    1 root     root       31,   3 Nov  3 18:33 /dev/mtdblock3
brw-rw----    1 root     root       31,   4 Nov  3 18:33 /dev/mtdblock4
brw-rw----    1 root     root       31,   5 Nov  3 18:33 /dev/mtdblock5

以 mtdblock5 为例将其以jffs2文件系统格式挂载到 /info 挂载点上:

~ >: flash_eraseall /dev/mtd5
Erasing 128 Kibyte @ 22c0000 - 86% complete.
Skipping bad block at 0x022e0000
Erasing 128 Kibyte @ 2800000 - 100% complete.
~ >: mount -t jffs2 /dev/mtdblock5 /info/
~ >: mount
rootfs on / type rootfs (rw)
/dev/root on / type jffs2 (rw,relatime)
proc on /proc type proc (rw,relatime)
usbfs on /proc/bus/usb type usbfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime)
ramfs on /tmp type ramfs (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
/dev/mtdblock5 on /info type jffs2 (rw,relatime)

可以看到/info挂载系统为jffs。
我们创建一个hello文件来实验一下,并重启系统,查看文件存在情况。

~ >: touch /info/hello
~ >: ls /in
info/  init
~ >: ls /info/
hello
~ >: reboot

系统重启后,发现并不会自动挂载/dev/mtdblock5到/info路径下需要我们手动命令挂载才能看到/info路径下的hello文件存在.

~ >: ls /info/
~ >: 
~ >:  mount -t jffs2 /dev/mtdblock5 /info/
~ >: ls /info/
hello
~ >: 

那么就会引申一个问题,如何让系统重启的时候就自动将/dev/mtdblock5以jffs2文件系统格式挂载到/info路径下?

我们知道,,Linux系统启动的最后启动init进程,而读init进程就是根据/etc/inittab这个文件来在不同的运行级别启动相应的进程或执行相应的操作,所以我们只需要将挂载操作写进inittab文件里面即可。
通过系统文件提供的信息,我们找到了fstab文件

~ >: cat /etc/fstab 
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
usbfs /proc/bus/usb usbfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
ramfs /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0

我们在fstab里面将/dev/mtdblock5添加挂载进去,重启挂载就可以了

~ >: cat etc/fstab 
/dev/root / ext2 rw,noauto 0 1
proc /proc proc defaults 0 0
usbfs /proc/bus/usb usbfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
ramfs /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/mtdblock5 /info jffs2 defaults 0 0
~ >: mount -a
~ >: mount -o remount /dev/mtdblock5
~ >:reboot

你可能感兴趣的:(liunx开发学习笔记)