構建根檔案系統

2021-07-25 05:28:25 字數 2649 閱讀 6359

wget  

make defconfig

make cross_compile=arm-linux-gnueabi-

make install

編譯完install後會預設安裝在busybox原始碼目錄下_install目錄內,但是此檔案系統並不完整,只有四個目錄

root-># ls

bin linuxrc sbin usr

雖然可以直接用這個簡易的檔案系統啟動核心,但是功能在以後的使用過程中會很受限制。

/etc/inittab檔案

::sysinit:/etc/init.d/rcs 

ttysac0::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

格式::::例如上邊

id:表示輸出的終端,省略的話表示輸出到init終端 

runlevels:執行等級,busybox中沒有意義,省略

action:如下

process:要執行的程式,「-」開頭表示這個程式是互動的。

action名稱

執行條件

說明sysinit

系統啟動後最先執行

只執行一次,init程序等待它執行結束後才執行其他程序

wait

系統執行完sysinit程序後

同上once

系統執行完wait程序後

只執行一次,但不等待它結束

respawn

系統執行完once程序後

init程序檢測,發現子程序退出後,重新啟用它

askfirst

系統執行完respawn程序後

與respawn類似,但是先輸出「please press enter to active this console」,等使用者鍵入回車後才啟動

shutdown

系統關機時

重啟,關機命令執行時

restart

busybox中配置config_feature_use_inittab,並且init程序接收到sighup訊號時

先重新讀取、解析/etc/inittab檔案再執行restart

ctrlaltdel

按下ctrl+alt+del組合鍵時

建立/etc/ini.d/rcs檔案

#!/bin/sh 

ifconfig eth0 192.168.1.222

mount -a

#這個命令會自動讀取/etc/fstab檔案並按要求掛載制定的檔案系統

mkdir /dev/pts

mount -t devpts devpts /dev/pts //用來支援外部網連線(telnet)

echo /sbin/mdev > /proc/sys/kernel/hotplug #最後的兩行是為了mdev能夠以守護程序的形式執行,當驅動程式插入核心的時候能夠自動建立裝置檔案節點。

mdev -s

此外還要修改此檔案的許可權,使它能夠執行。

建立/etc/fstab檔案

#device mount-point

type options dump fsck order

proc /proc proc defaults 0

0 tmpfs /tmp tmpfs defaults 0

0 sysfs /sys sysfs defaults 0

0//mdev需要

tmpfs /dev tmpfs defaults 0

0//mdev需要

這裡把/dev目錄掛載上tmpfs檔案系統,是為了mdev(pc機上是udev)程式能夠動態的建立刪除裝置檔案。

oprions的引數如下,當同時滿足多個時,用逗號分隔

引數名說明

預設值auto\noauto

執行」mount -a」時是否自動掛載

auto

user\nouser

允許普通使用者掛載還是只能root掛載

nouser

exec\noexec

是否允許執行所掛載裝置上的程式

execc

ro以唯讀方式掛載檔案系統

rw以讀寫方式掛載檔案系統

sync\async

sync:修改檔案時會同步寫入裝置

sync

defaults

rw,suid,,dev,exec,auto,nouser,async的組合

dump是乙個用來備份檔案的程式,fsck是乙個用來檢查磁碟的程式

dump根據dump欄位的值決定是否需要備份此檔案系統,如果沒有這個字段或者這個欄位為0,則dump忽略此檔案系統

fsck程式根據fsck order欄位決定檢查磁碟的順序,一般將根檔案系統設定為1,其他檔案系統設定為2,如果為0,則fsck程式忽略這個檔案系統。

總結

先解析/etc/inittab檔案,然後執行/etc/init.d/rcs指令碼,並根據/etc/fatab檔案掛載其他檔案系統。
mkdir -p lib lib/modules dev proc tmp sys

構建根檔案系統

wget make defconfig make cross compile arm linux gnueabi make install編譯完install後會預設安裝在busybox原始碼目錄下 install目錄內,但是此檔案系統並不完整,只有四個目錄 root ls bin linuxrc ...

構建根檔案系統

tar xjf busybox 1.7.0.tar.bz2 cd busybox 1.7.0 make menuconfig 編譯busybox 1.7.0出現如下錯誤 busybox 1.7.0 make menuconfig makefile 405 mixed implicit and nor...

構建根檔案系統2

構建最小根檔案系統 下面將繼續介紹根檔案系統的其他內容 1.proc目錄 關於linux根檔案系統 proc目錄的介紹,可以參考這個文章 下面將講解如何在最小根檔案系統的基礎上掛載proc檔案系統 workdir fstest mkdir proc workdir fstest cd etc wor...