建立最小根檔案系統:
(1)/dev/console /dev/null
(2)/init=>busybox (/sbin/init 是到busybox的鏈結)
(3)/etc/inittab 配置檔案
(4)配置檔案指定的應用程式
(5)c庫
編譯busybox(命令工具集ls、cp……):
make menuconfig
配置完後 make
mkdir /work/nfs_root/second_fs
make config_prefix=/work/nfs_root/second_fs install
/work/nfs_root/second_fs資料夾裡將生成:bin sbin linuxrc usr 目錄,bin linuxrc 都是指向busybox的鏈結
(直接make install 會安裝到宿主機上,把原來的覆蓋掉)
建立裝置檔案 :
先檢視pc(sever)機上這兩個裝置檔案 ls /dev/console /dev/null -l
mkdir dev
cd dev/
sudo mknod console c(字元裝置) 5(主裝置號) 1(次裝置號)
sudo mknod null c(字元裝置) 1(主裝置號) 3(次裝置號)
設定配置項檔案etc/inittab:
建立etc/inittab
mkdir etc
vi etc/inittab
新增 :console::askfirst:-/bin/sh
inittab格式:
:::=> /dev/id(加乙個/dev字首),用作終端:stdin,stdout,stderr
可以完全忽略
指示何時執行
應用程式或指令碼
建立c庫:
mkdir lib
cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib
cp *.so* /work/nfs_root/second_fs/lib -d(如果原來是鏈結檔案,則還保持鏈結檔案)
完善:(當執行根檔案系統時,執行ps 顯示:ps:can't open 'proc':no such file or directory)
cd /work/nfs_root
mkdir proc
核心提供乙個虛擬檔案系統/proc
手工掛載:mount -t proc none /proc 即可執行ps 命令
不想手工掛載,則需要增加乙個配置項::sysinit:/etc/init.d/rcs(配置項檔案etc/inittab)
建立指令碼程式:(etc/init.d/rcs是乙個指令碼程式,可以在裡面新增想自動執行的命令)
mkdir etc/init.d
vi etc/init.d/rcs 新增掛載命令mount -t proc none /proc
然後增加可執行屬性:chmod +x etc/init.d/rcs
另一種方法:
etc/init.d/rcs裡新增mount -a
使用mount -a (也就是讀/etc/fstab 配置檔案,建立該檔案,根據裡面的內容來掛載跟檔案系統)
device mount-point type operation dump fask oder
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
重新製作檔案系統映像:mkyaffs2image filesystem filesystem.yaffs2
udev機制=> 自動建立/dev/目錄下的裝置節點
mdev 是udev的簡化版本
使用mdev的命令如下:(在etc/init.d/rcs裡加入這幾行)
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s(將現有的裝置驅動都建立出來)
nfs掛接nfs:(1)伺服器「允許」那個目錄可被掛接,nfs服務,它的配置檔案/etc/exports,在這個配置檔案裡面定義這個目錄就可以了
(2)單板去掛接
sudo vi /etc/exports 新增
/work/nfs_root/filesystem *(rw,sync,no_root_squash)
然後重啟nfs服務:sudo /etc/init.d/nfs-kernel-server restart
試驗掛載,sudo mount -t nfs serverip:/work/nfs_root/first_fs(檔案系統所在目錄) /mnt
單板掛載:
mkdir /mnt
sudo mount -t nfs -o nolock serverip:/work/nfs_root/first_fs /mnt
直接從nfs啟動:set bootargs root=dev/nfs nfsroot=serverip:/...(檔案系統所在目錄)/ init=/linuxrc console=ttysac0
建立最小根檔案系統
最小的根檔案系統至少得包括以下內容 a dev console b dev null c init 由busybox編譯安裝產生 d etc inittab e 配置檔案制定的應用程式 f libc庫檔案 1 busybox配置安裝配置安裝之後,得到如下目錄 bin linuxrc sbin usr...
製作最小根檔案系統
1.dev console dev null 2.init程序 一般 於busybox 3.etc inittab 4.配置檔案指定的程式 5.c庫 1.解壓busybox tar xjf busybox 1.20.0.tar.bz2 2.配置 make menuconfig 設定交叉編譯選項cro...
根檔案系統(一)最小根檔案系統的構成
應用程式位於根檔案系統,核心為了使用應用程式,需要掛接根檔案系統,本節分析乙個最小根檔案系統的組成,在下節講解如果建立乙個最小根檔案系統 核心分析時,有如下呼叫過程 rest init kernel init 通過建立執行緒呼叫 prepare namespace mount root 掛接根檔案系...