讓LFS LiveCD從U盤啓動

接觸Linux有一個月,以前雖然也斷斷續續的玩過,不過都很膚淺。這次是徹底被Linux感動了,所以下決心好好研究一下Linux。
在網上google一大堆資料,在其中發現了LFS(Linux From Scratch),我發覺這是一項可以徹底認識Linux的工程,雖然聽說它很艱鉅,雖然我還是Linux新手,但我覺得我非做它不可。
最佳的LFS宿主環境是LFS的LiveCD,但第一我不想用虛擬機,那樣效率太低,第二我不想用我的光驅,所以考慮用U盤啓動LiveCD。
我的思路是:先安裝grub,再用grub引導LiveCD的鏡像。
首先將U盤設爲啓動可啓動的。
1:fdisk /dev/xxx (/dev/xxx爲U盤的設備名,通常爲“/dev/sdb”不知道的可以用“fdisk -l”查看)
2:用a命令將第一個分區設爲啓動分區。

一:安裝grub

1:mount /dev/sdb1 /media/disk (將U盤掛載到/media/disk下,也可以掛載到其他目錄。這裏“/dev/sdb1”我是我的情況,具體以“fdisk -l”中看到的爲準。)
2:grub-install --root-directory=/media/disk /dev/sdb1 (將grub安裝到U盤上)
3:umount /media/disk (卸載掉U盤)
4:grub (進入grub命令符)
5:root (hd1,0) (意思是第2個設備的第1個分區,不確定的可以在輸入到“hd”時按下Tab鍵查看)
6:setup (hd1) (將grub寫入MBR)
7:quit (退出grub命令符)

二:用grub引導LiveCD鏡像

1:先將鏡像裏的linux和initramfs_data.cpio.gz這兩個文件提取出來,位於boot/isolinux下。
2:將上面提取出來的兩個文件和整個鏡像放到U盤,我將他們分別放到了boot目錄下的isolinux和lfs兩個文件夾中。
3:在U盤的/boot/grub下創建grub.conf,內容如下:

    default=0
    timeout=5
    hiddenmenu
    title LFS LiveCD
            kernel /boot/isolinux/linux rw root=iso:/boot/lfs/lfslivecd-x86-6.3-r2160.iso rootfstype=vfat
            initrd /boot/isolinux/initramfs_data.cpio.gz

(timeout 爲等待時間,rootfstype是U盤的文件系統,我的是FAT的,所以是vfat。)

4:然後重啓,從U盤啓動,應該就搞定了。

重啓後選擇從U盤啓動,gurb正常啓動了,很興奮。可是在加載電腦設備時到了“NET:Registered protocol family 2”這句話是就停住了,我去google了一下,據說應該在kernel的參數上加上了“maxcpus=0”,我也不知道爲什麼改加上這個參數,查了一下這個參數的意思是指定一個SMP內核能夠使用的最大CPU數量。使用"maxcpus=0"來禁用SMP功能。
加上“maxcpus=0”後果然有效,順利通過了“NET:Registered protocol family 2”。但有卡在“ACPI:AC Adapter [AC0] (on-line)”上了,於是去BIOS上關掉ACPI,卻找不到這個選項,還好可以用kernel參數“acpi=off”強制關掉ACPI。
設備檢測完成後就該是引導LiveCD的ISO文件了。這是提示ISO文件找不到,同時提示我從可移動設備啓動時應該加入“rootdelay=20 load=ide-generic”這兩個參數。我按照提示的做,可是依然提示ISO文件不存在。無奈我又去google了好久,終於找到一點線索,把原本的“root=iso:/boot/lfs/lfslivecd-x86-6.3-r2160.iso”改成了“root=iso:/dev/sdb1:/boot/lfs/lfslivecd-x86-6.3-r2160.iso”我也不知道爲什麼加上“/dev/sdb1”。反正加上後就LiveCD就順利啓動了,很興奮!

在我的機器上完整的grub.conf配置應該是:

    default=0
    timeout=5
    hiddenmenu
    title LFS LiveCD
            kernel /boot/isolinux/linux rw root=iso:/dev/sdb1:/boot/lfs/lfslivecd-x86-6.3-r2160.iso rootfstype=vfat maxcpus=0 acpi=off rootdelay=10 load=ide-generic
            initrd /boot/isolinux/initramfs_data.cpio.gz

在別的機器上可能並不需要這麼多參數。

(注:有些機器上設置了rootdelay=20會卡在boot後的那個畫面長時間沒沒反應,可以把值設小一點,比如rootdelay=10)

我筆記本的顯卡是ATI X2300,輸入“startx”提出“unable to connect to X Server”,只能停留在文本模式,要裝驅動才能進入圖形界面。我都已經沒有力氣再去折騰了,反正我的計劃是元旦在家裏的臺式機上進行LFS。
LFS的第一步就是這麼折騰人,期待~~因爲過程越痛苦結果越興奮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章