改进根文件系统

前面已经制作好了最小根文件系统,但是并不完善,下面来完善

一、增加 proc 虚拟文件系统,proc 是内核提供一个虚拟的文件系统,收集内核的信息

  在串口中启动文件系统后可测试 用命令 ps 提示没有这个目录,那么我们创建一个 mkdir proc 再 ps 同样没有信息,手工挂载 mount -t proc none /proc 再次ps 可以看到有很多进程信息。

  所以我们在制作根文件系统时就可以先做好,上面是手工挂载,我们做成自动挂载 进入根文件系统目录

  mkdir proc 

  修改配置文件 在原来的基础上增加一项

  vi etc/inittab

  原来的内容是

    console::askfirst:-/bin/sh

  增加后的内容是

    console::askfirst:-/bin/sh

    ::sysinit:/etc/init.d/rcS

  到这里我们增加了,但实际我们还没有,所以要他建

    mkdir etc/init.d

    vi etc/init.d/rcS

      在这里可以把手工挂接的命令加进来,但我们采用另一种方法用 mount -a(这条命令就是去读etc/fstab这个配置文件的内容,去挂载) 所以我们这里写 mount -a 然后后面创建 etc/fstab

      mount -a

    vi etc/fstab

      # device      mount-point      type     options    dump     fsck     order      //这一行是注释

      proc          /proc            proc      defaults   0       0

  这里我们可以再测试一下,看烧进板子后是否会自动挂载 proc 

二、增加mdev机制

  查看 busybox 内的mdev 文档有说明下面列出改进内容

  vi etc/init.d/rcS

    mount -a

    mkdir /dev/pts
    mount -t devpts devpts /dev/pts
    echo /sbin/mdev > /proc/sys/kernel/hotplug
    mdev -s

  vi etc/fstab

    proc /proc proc defaults 0 0
    tmpfs /tmp tmpfs defaults 0 0
    sysfs /sys sysfs defaults 0 0
    tmpfs /dev tmpfs defaults 0 0

  到此就完成了根文件系统的改进

三、NFS

  为了方便后续的驱动开发,不用每次重烧文件系统,可采用NFS挂载或启动方式。

  1.从FLASH上启动根文件系统,再用命令挂接 

  NFS挂接需要满足两个要件

  服务器允许 那个目录可被挂接 (即NFS服务 配置文件目录是 /etc/exports  在这个文件里定义可被挂接的目录即可)

    sudo /etc/exports 增加可被挂接的目录

  重启NFS服务 sudo /etc/init.d/nfs-kernel-server restart

  测试 sudo mount -t nfs 192.168.0.104:/work/filesys/fs_mini_mdev /mnt 成功表示完成设置

  单板去挂接 

    mount -t nfs -o nolock 192.168.0.104:/work/filesys/fs_mini_mdev /mnt

  成功后,在单板上mnt目录里的内容和服务器上的根文件系统目录的内容是一样的,服务器内容更改,单板马上可以看到相同变化

  2:直接从NFS启动

    需要修改命令行参数 格式可在 内核 Documentation/nfsroot 有说明

    set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.0.104:/work/filesys/fs_mini_mdev ip=192.168.0.105:192.168.0.104:192.168.0.1:255.255.255.0::eth0:off

    这里就可以从NFS启动了。

  根文件系统相关到此结束。

  

钻木取火!拼的是体力?耐心?智慧?
原文地址:https://www.cnblogs.com/x2i0e19linux/p/11674214.html