當前位置:首頁 > IT技術 > 系統服務 > 正文

【LFS 系列】從零開始 DIY Linux 系統:(六)構建 LFS 系統 - 準備虛擬內核文件系統
2021-10-08 17:43:07

在本章里,我們會進入構建環(huán)境然后開始認真地構建 LFS 系統了。

就是說,我們會 chroot 進入之前準備好的臨時迷你 Linux 系統,做一些最后的準備工作,然后就開始安裝軟件包。

內核會掛載幾個文件系統用于自己和用戶空間程序交換信息。這些文件系統是虛擬的,并不占用實際磁盤空間,它們的內容會放在內存里。

開始先創(chuàng)建將用來掛載文件系統的目錄:

mkdir -pv $LFS/{dev,proc,sys,run}

創(chuàng)建初始設備節(jié)點

在內核引導系統的時候,它依賴于幾個設備節(jié)點,特別是 console 和 null 兩個設備。這些設備節(jié)點需要創(chuàng)建在硬盤上,這樣在 udevd 啟動之前它們也仍然有效,特別是在 Linux 使用init=/bin/bash 參數啟動的時候。

運行下面的命令創(chuàng)建這幾個設備節(jié)點:

mknod -m 600 $LFS/dev/console c 5 1
mknod -m 666 $LFS/dev/null c 1 3

掛載和激活 /dev

通常激活 /dev 目錄下設備的方式是在 /dev目錄掛載一個虛擬文件系統(比如 tmpfs),然后允許在檢測到設備或打開設備時在這個虛擬文件系統里動態(tài)創(chuàng)建設備節(jié)點。

這個通常是在啟動過程中由 Udev 完成。由于我們的新系統還沒有 Udev 而且也沒有被引導啟動,有必要手動掛載和激活 /dev 目錄。

這可以通過綁定掛載宿主機系統的 /dev 目錄實現。綁定掛載是一種特殊的掛載模式,它允許在另外的位置創(chuàng)建某個目錄或掛載點的鏡像。

運行下面的命令來實現:

mount -v --bind /dev $LFS/dev

掛載虛擬文件系統

現在掛載剩下的虛擬內核文件系統:

mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

在某些宿主機系統里,/dev/shm 是一個指向 /run/shm 的軟鏈接。這個 /run 下的 tmpfs 文件系統已經在之前掛載了,所以在這里只需要創(chuàng)建一個目錄。

if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
fi



本次分享到此結束啦~

如果覺得文章對你有幫助,點贊、收藏、關注、評論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動力。

?? 技術交流可以 關注公眾號:Lucifer三思而后行 ??

本文摘自 :https://blog.51cto.com/l

開通會員,享受整站包年服務立即開通 >