且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux busybox mount -a fstab

更新时间:2022-08-12 20:46:07

/***********************************************************************
 *                     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