在LFS書中寫到的BOOT引導,時直接將宿主機的BOOT分區掛載當LFS的BOOT分區中,雖然這樣也是能夠實現BOOT引導的,可是我並不想這樣作,因此BOOT引導就變得有些棘手了。總結下來有以下一個難點:python
那麼我會逐一解決這些文件。linux
首先咱們須要知道,如今的LFS是掛載在/dev/sdb
或者/dev/hdb
上的,宿主機的磁盤佔用着第一個磁盤,若是須要在新的平臺環境也能引導使用,咱們能夠藉助DVD來完成MBR引導記錄的部署。首先建立一臺新的虛擬機,將虛擬磁盤導入到這臺虛擬機而後再使用如CentosDVD光盤中的緊急救援模式完成操做。
選擇打開電源時進入固件
而後在Boot中將CD-ROM Drive移動到第一位。保存重啓便可。
選擇Troubleshooting
而後再選擇Rescue a CentOS system
開啓緊急救援模式。等待系統加載完成。
跳過,直接進入shell界面。shell
mount /dev/sda2 /mnt/sysimage # 直接將光盤掛載到/mnt/sysimage 下 mount /dev/sda1 /mnt/sysimage/boot # 掛載虛擬文件系統到/mnt/sysimage下 mount -vt proc proc /mnt/sysimage/proc mount -vt sysfs sysfs /mnt/sysimage/sys mount -v -o bind /dev /mnt/sysimage/dev # 切換到LFS文件系統 chroot /mnt/sysimage # 若是配置了profile 可使用以下命令 source /etc/profile
這樣咱們就使用CDROM中的系統進入到了LFS而後再執行操做bash
grub-install /dev/sda # 安裝MBR引導記錄和grub啓動所須要的模塊
這裏我就直接使用dracut
軟件生成initramfs文件,固然initramfs也是能夠手動生成的。可是這個實在是太麻煩了。因此我就不用了。
首先是下載:下載連接
而後是安裝:
一樣的是安裝3步曲:測試
./configure --prefix=/opt && make && make install # 這裏會應爲一系列依賴關係報錯。因此個人安裝步驟並非如此的。
dracut -> asciidoc -> python2
dracut ->libxslt -> libxml2
以上2個就是我在編譯的時候碰上的所需軟件。而後再編譯安裝的時候都碰到了問題。可是我發現,再make 報錯以後,dracut-install 和skipcpio 這2個軟件都已經編輯好了。ascii和libxslt 這2個軟件都是用於建立doc幫助文檔的,然而我並不須要,因此我就索性手動安裝一下。code
mkdir /usr/lib/dracut/ cp -r dracut.conf.d /usr/lib/dracut/ # 複製配置文件 cp -r modules.d /usr/lib/dracut/ # 複製dracut模塊 cp install/dracut-install /usr/lib/dracut/ # 複製dracut-install cp skipcpio/skipcpio /usr/lib/dracut/ # 複製skipcpio cp *.sh /usr/lib/dracut/ # 複製全部的腳本到指定路徑 chmod +x /usr/lib/dracut/*.sh # 給全部的腳本執行權限
而後開始建立initramfs.imgxml
cd /usr/lib/dracut # 首先切換到dracut的安裝目錄 ./dracut.sh initramfs.img 4.18.1 # 第一個參數是建立的文件,第二個是指定內核版本,注意必定要對上,否者會出錯。 # 而後再將建立號的initramfs.img移動到/boot目錄下便可。 # 固然仍是楊測試一下看看文件是否都是全的 /usr/lib/dracut/lsinitrd.sh initramfs.img # 查看initramfs.img cp initramfs.img /boot/ # 將initramfs.img 複製到/boot目錄下
lsinitrd.sh 執行命令結果
blog
grub-mkconfig -o /boot/grub/grub.cfg # 導出配置文件 # 那麼這樣就完成了,grub-mkconfig會自動識別文件系統和內核,後面就但是直接重啓了。