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