本文主要是为了验证mount -a命令涉及的fstab文件中提到的设备节点不存在的情况下,是否还能正常的挂载(设备已经被内核识别了,只是没有经过mdev那一步),没有找到有文章提到这一点,于是自己验证一下想法。
/***********************************************************************
* Linux busybox mount -a fstab
* 声明:
* 本文主要是为了验证mount -a命令涉及的fstab文件中提到的设备节点不存
* 在的情况下,是否还能正常的挂载(设备已经被内核识别了,只是没有经过mdev
* 那一步),没有找到有文章提到这一点,于是自己验证一下想法。
*
* 2016-1-15 深圳 南山平山村 曾剑锋
**********************************************************************/
一、参考文档:
1. linux下/etc/fstab文件详解
http://linux.chinaunix.net/techdoc/system/2007/12/25/975119.shtml
2. BusyBox - The Swiss Army Knife of Embedded Linux
https://busybox.net/downloads/BusyBox.html
3. Busybox init进程启动过程分析
http://tanatseng.blog.163.com/blog/static/17499162920101125102013932/
4. Linux / Unix Command: mount
http://linux.about.com/od/commands/l/blcmdl8_mount.htm
二、cat /etc/fstab
#device mount-point type option dump fsck order
proc /proc proc defaults 0 0
temps /tmp rpoc defaults 0 0
none /tmp ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev /dev ramfs defaults 0 0
# 本文主要是为了验证该设备节点能够挂载的时机,必须等到设备节点生成之后。
/dev/mmcblk0p1 /mnt ext3 defaults 0 0
三、cat /etc/init.d/rcS
......
# 运行完以下这一行的时候,是无法挂载fstab里的如下类型的设备节点。
# 因为设备节点并没有生成。
# 这里必须先执行一下mount -a,因为后面mdev需要用到fstab中挂载的文件系统
# /dev/mmcblk0p1 /mnt ext3 defaults 0 0
mount -a
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
/sbin/mdev -s # 根据/etc/mdev.conf中的配置进行生成设备节点
# 运行完以下这一行的时候,是能够挂载fstab里的如下类型的设备节点。
# 因为设备节点有生成。
# /dev/mmcblk0p1 /mnt ext3 defaults 0 0
mount -a