LFS8.3BOOT引導疑點解決

LFS系統 的BOOT引導

在LFS書中寫到的BOOT引導,時直接將宿主機的BOOT分區掛載當LFS的BOOT分區中,雖然這樣也是能夠實現BOOT引導的,可是我並不想這樣作,因此BOOT引導就變得有些棘手了。總結下來有以下一個難點:python

  1. MBR引導寫入。
  2. initramfs的rootfs文件製做。
  3. grub.cfg文件配置。
    注意
    這裏我只是說起了這幾個問題,可是我並無說到操做順序須要注意。

那麼我會逐一解決這些文件。linux

1. MBR引導寫入

首先咱們須要知道,如今的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啓動所須要的模塊

2. initramfs文件的製做

這裏我就直接使用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

3. grub.cfg 文件配置

grub-mkconfig -o /boot/grub/grub.cfg        # 導出配置文件
# 那麼這樣就完成了,grub-mkconfig會自動識別文件系統和內核,後面就但是直接重啓了。
相關文章
相關標籤/搜索