建立跟檔案系統

2021-09-24 18:00:49 字數 4568 閱讀 5110

2.  建立最小跟檔案系統

2.1 inti busybox

cd /work/busybox

tar -xjf busybox-1.7.0-patch.tar.bz2

vi makefile

cross_compile ?=arm-linux-

mkdir -p /work/nfs_root/first_fs //-p的作用是遞迴建立目錄

make config_prefix=/work/nfs_root/first_fs install

cd /work/nfs_root/first_fs/

lsbin linuxrc sbin usr

2.2 跟檔案系統

建立dev目錄

[email protected]:/work/nfs_root/first_fs$ mkdir dev

[email protected]:/work/nfs_root/first_fs$ ls

bin dev linuxrc sbin usr

[email protected]:/work/nfs_root/first_fs$ cd dev

[email protected]:/work/nfs_root/first_fs/dev$ ls

[email protected]:/work/nfs_root/first_fs/dev$ ls /dev/null /dev/console -l

crw------- 1 root root 5, 1 6月 25 14:54 /dev/console

crw-rw-rw- 1 root root 1, 3 6月 25 14:54 /dev/null

[email protected]:/work/nfs_root/first_fs/dev$ sudo mknod console c 5 1

[sudo] password for book:

[email protected]:/work/nfs_root/first_fs/dev$ sudo mknod null c 1 3

[email protected]:/work/nfs_root/first_fs/dev$ ls null console -l

crw-r--r-- 1 root root 5, 1 6月 25 15:28 console

crw-r--r-- 1 root root 1, 3 6月 25 15:28 null

建立etc目錄

cd /work/nfs_root/first_fs

mkdir etc

vi /work/busybox/busybox-1.7.0/examples/inittab

::askfirst:-/bin/sh //複製這一句話

vi etc/inittab

console::askfirst:-/bin/sh //標準輸出,標準輸入,標註錯誤就定位到console中去

建立c庫

cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib

mkdir /work/nfs_root/first_fs/lib

cp *.so* /work/nfs_root/first_fs/lib -d //-d是將鏈結一起拷貝過來,要不然就太大了

建立proc目錄

proc的作用是檢視當前有哪些應用程式在跑,是核心提供的乙個虛擬檔案系統

mkdir proc

即使建立了proc,此時ps仍舊看不見有哪些應用程式在執行,除非:

mount -t proc none /proc

ps cd /proc

ls 這個時候就可以看見程序了

上面是手動掛載,要是不願意手動掛載可以新增乙個配置檔案(指令碼):

vi /work/busybox/busybox-1.7.0/examples/inittab

vi etc/inittab

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

:wqchmod +x etc/init.d/rcs //給其加上可執行屬性

第二種方法:

mount -a //作用是讀出/etc/fstab,根據配置檔案裡面的內容來掛載跟檔案系統

vi etc/init.d/rcs

##mount -t proc none /proc

mount -a

vi etc/fstab

#device mount-point type options dump fsck order

proc /proc proc defaults 0 0 //自動掛載proc

tmpfs /tmp tmpfs defaults 0 0

sysfs /sys sysfs defaults 0 0

tmpfs /dev tmpfs defaults 0 0

完善dev

在linux中有一種機制,自動建立dev目錄下的節點,在busybox中有乙個mdev,是udev的簡化版本

vi /work/busybox/busybox-1.7.0/docs/mdev.txt

17 here's a typical code snippet from the init script:

18 [1] mount -t sysfs sysfs /sys

19 [2] echo /bin/mdev > /proc/sys/kernel/hotplug

20 [3] mdev -s

21 22 of course, a more "full" setup would entail executing this before the previous

23 code snippet:

24 [4] mount -t tmpfs mdev /dev

25 [5] mkdir /dev/pts

26 [6] mount -t devpts devpts /dev/pts

[1][2]前面 已經做了,然後將[2][3][5][6]加入rcs中去:

vi etc/init.d/rcs

cat etc/init.d/rcs

[email protected]:/work/nfs_root/first_fs$ vi etc/init.d/rcs

[email protected]:/work/nfs_root/first_fs$ cat etc/init.d/rcs

#mount -t proc none /proc

mount -a

mkdir /dev/pts

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug //注意一下, 這個是sbin,bin目錄下沒有mdev

mdev -s

解釋一下下面兩句話:

echo /sbin/mdev > /proc/sys/kernel/hotplug //自動載入驅動或插入u盤,核心就呼叫hotplug指向/sbin/mdev,自動建立節點

mdev -s的作用是將核心那些現有的驅動都建立出來

自動掛載跟檔案系統:

條件: 伺服器允許被掛接;

單板去掛接

伺服器允許被掛接:

sudo vi /etc/exports //注意是/etc,不是etc

/work/nfs_root/first_fs *(rw,nohide,insecure,no_subtree_check,async,no_root_squash) //加上這句話伺服器就可以被掛接了

[email protected]:/work/nfs_root/first_fs$ sudo /etc/init.d/nfs-kernel-server restart //重啟nfs服務

[ ok ] restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.

[email protected]:/work/nfs_root/first_fs$ sudo mount -t nfs 192.168.1.100:/work/nfs_root/first_fs /mnt //嘗試掛載自己,

[email protected]:/work/nfs_root/first_fs$ //掛載到/mnt上。輸出結果說明已經成功掛載

單板去掛載:

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.100:/work/nfs_root/first_fs ip=

192.168.1.103:192.168.1.100:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttysac0

建立檔案系統

作業系統通過檔案系統管理資料 磁碟建立分割槽後並不能直接被作業系統使用,還需要建立檔案系統 格式化 建立檔案系統的過程又稱為格式化 裸裝置 raw 沒有檔案系統的裝置 常見的檔案系統有 fat32 ntfs ext2 ext3 ext4 xfs hfs等 檔案系統之間的區別 日誌 支援的分割槽大小 ...

Unix Linux 檔案系統 檔案建立流程

i.儲存屬性 找到空的i節點,記錄檔案資訊 ii.儲存資料 核心從自由塊列表中選擇合適數量的自由塊,按一定順序 向塊中寫入資料 iii.記錄分配情況 在i節點的磁碟分布區中記錄寫入資料的塊的編號 iv.寫目錄 把i節點號和檔案名字的組合新增到目錄檔案 下面是幾個相關概念 i節點 磁碟和作業系統之間互...

建立最小根檔案系統

建立最小根檔案系統 1 dev console dev null 2 init busybox sbin init 是到busybox的鏈結 3 etc inittab 配置檔案 4 配置檔案指定的應用程式 5 c庫 編譯busybox 命令工具集ls cp make menuconfig 配置完後...