在本章里,我們會進(jìn)入構(gòu)建環(huán)境然后開始認(rèn)真地構(gòu)建 LFS 系統(tǒng)了。
就是說,我們會 chroot 進(jìn)入之前準(zhǔn)備好的臨時迷你 Linux 系統(tǒng),做一些最后的準(zhǔn)備工作,然后就開始安裝軟件包。
內(nèi)核會掛載幾個文件系統(tǒng)用于自己和用戶空間程序交換信息。這些文件系統(tǒng)是虛擬的,并不占用實(shí)際磁盤空間,它們的內(nèi)容會放在內(nèi)存里。
開始先創(chuàng)建將用來掛載文件系統(tǒng)的目錄:
mkdir -pv $LFS/{dev,proc,sys,run}
創(chuàng)建初始設(shè)備節(jié)點(diǎn)
在內(nèi)核引導(dǎo)系統(tǒng)的時候,它依賴于幾個設(shè)備節(jié)點(diǎn),特別是 console 和 null 兩個設(shè)備。這些設(shè)備節(jié)點(diǎn)需要創(chuàng)建在硬盤上,這樣在 udevd 啟動之前它們也仍然有效,特別是在 Linux 使用init=/bin/bash 參數(shù)啟動的時候。
運(yùn)行下面的命令創(chuàng)建這幾個設(shè)備節(jié)點(diǎn):
mknod -m 600 $LFS/dev/console c 5 1
mknod -m 666 $LFS/dev/null c 1 3
掛載和激活 /dev
通常激活 /dev 目錄下設(shè)備的方式是在 /dev目錄掛載一個虛擬文件系統(tǒng)(比如 tmpfs),然后允許在檢測到設(shè)備或打開設(shè)備時在這個虛擬文件系統(tǒng)里動態(tài)創(chuàng)建設(shè)備節(jié)點(diǎn)。
這個通常是在啟動過程中由 Udev 完成。由于我們的新系統(tǒng)還沒有 Udev 而且也沒有被引導(dǎo)啟動,有必要手動掛載和激活 /dev 目錄。
這可以通過綁定掛載宿主機(jī)系統(tǒng)的 /dev 目錄實(shí)現(xiàn)。綁定掛載是一種特殊的掛載模式,它允許在另外的位置創(chuàng)建某個目錄或掛載點(diǎn)的鏡像。
運(yùn)行下面的命令來實(shí)現(xiàn):
mount -v --bind /dev $LFS/dev
掛載虛擬文件系統(tǒng)
現(xiàn)在掛載剩下的虛擬內(nèi)核文件系統(tǒng):
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
在某些宿主機(jī)系統(tǒng)里,/dev/shm 是一個指向 /run/shm 的軟鏈接。這個 /run 下的 tmpfs 文件系統(tǒng)已經(jīng)在之前掛載了,所以在這里只需要創(chuàng)建一個目錄。
if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
fi
本次分享到此結(jié)束啦~
如果覺得文章對你有幫助,點(diǎn)贊、收藏、關(guān)注、評論,一鍵四連支持,你的支持就是我創(chuàng)作最大的動力。
?? 技術(shù)交流可以 關(guān)注公眾號:Lucifer三思而后行 ??
本文摘自 :https://blog.51cto.com/l