最小根文件系统

最小根文件系统

1./dev/console /dev/null
2.init
3./etc/inittab
4.配置文件中指定的程序
5.c库

1.mkdir dev
  cd dev
  sudo mknod console c 5 1
  sudo mknod null    c 1 3

3.mkdir etc
  vim etc/inittab
  console::askfirst:-/bin/sh
 
  mkdir ~/workspace/linux/nfs_root/first_fs/lib
  cp *.so* ~/workspace/linux/nfs_root/first_fs/lib/ -d
 
4.制作文件系统
  tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2
  cd Development_util_ok/yaffs2/utils
  make
  sudo cp mkyaffs2image /usr/local/bin
  sudo chmod +x /usr/local/bin/mkyaffs2image
  cd ~/workspace/linux/nfs_root
  mkyaffs2image first_fs first_fs.yaffs2
 
5.
  mkdir proc
  //手动挂载
  sudo mount -t proc none /proc
  //自动挂载
  vim etc/inittab
  ::sysinit:/etc/init.d/rcS
  mkdir /etc/init.d
  vim rcS
 
  1>
  添加:mount -t proc none /proc
  chmod +x /etc/init.d/rcS
 
 
  mount -a
  意思是:读取/etc/fstab文件,然后挂载文件系统
 
  /etc/fstab文件格式:
  device  mount-point  type   options   dum   fsck   order
  proc        /proc        proc    defaults 0      0
  tmpfs        /tmp        tmpfs    defaults 0      0
  2>
  rcS中添加:
  mount -a
  修改/etc/fstab文件
  添加
  #device  mount-point  type   options   dum   fsck   order
   proc        /proc        proc    defaults 0      0
  内容
 
  查看挂接了哪些根文件系统
  cat /proc/mounts
 
6.udev机制:自动创建dev/设备节点
  mdev是udev的简化版本
    
  根目录:mkdir /sys
  vim /etc/fstab
  1>fstab文件内容:
  #device  mount-point  type   options   dum   fsck   order
  proc        /proc        proc    defaults 0      0
  sysfs        /sys        sysfs    defaults 0         0
  tmpfs        /dev        tmpfs    defaults 0        0
 
  2>/etc/init.d/rcS文件内容:
  mkdir /dev/pts
  mount -t devpts devpts /dev/pts
  echo /sbin/mdev > /proc/sys/kernel/hotplug
  mdev -s
 
 
 
  jffs2
 
  tar zxf zlib-1.2.3.tar.gz
  cd zlib-1.2.3
  ./configure --shared --prefix=/usr/
  make
  sudo make install
 
 
  mkfs.jffs2工具
  tar xjf mtd-utils-05.07.23.tar.bz2
  cd mtd-utils-05.07.23/util
  make
  //制作jffs2
  mkfs.jffs2 -n -s 2048 -e 128KiB -d first_fs -o first_fs.jffs2
 
  强制指定文件系统的类型
  set bootargs noinitrd root=/dev/mtdblock3 rootfstype=jffs2 init=/linuxrc console=ttySAC0
  save
 
  网络文件系统
  nfs
  配置ip
  ifconfig eth0 192.168.1.115
  a.从flash上启动根文件系统,再用命令挂接NFS
 
  挂接NFS
  1.服务器允许那个目录可被挂接(NFS服务)
      //安装
    sudo apt-get install nfs-kernel-server
    sudo vim /etc/exports
    //添加
    /home/workspace/linux/nfs_root/first_fs  *(rw,sync,no_root_squash)
    //重启nfs-kernel-server
    sudo /etc/init.d/nfs-kernel-server restart
    //本地测试
    sudo mount -t nfs 192.168.1.94:/home/liulipeng/workspace/linux/nfs_root/first_fs /mnt
    
  2.单板去挂接
    mkdir /mnt
    mount -t nfs  -o nolock 192.168.1.94:/home/liulipeng/workspace/linux/nfs_root/first_fs   /mnt
 
   b.直接从NFS启动
     NFS启动参数:
     1.服务器ip,目录
     2.设置自己的IP
     set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.19:/home/workspace/nfs_root/first_fs ip=192.168.1.94:192.168.1.19:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
     
     
 

原文地址:https://www.cnblogs.com/liulipeng/p/3386323.html