Gentoo/x86 安裝提示與技巧
1.
介紹
序言
這份文件包含了許多給 Gentoo/x86 安裝用的提示與技巧,它們大部分都常常被討論到 -
這些提示與技巧算是個附錄,並非用來取得安裝說明。
內容
進階安裝
簡易安裝
修正錯誤/問題
2.
進階安裝
軟體磁碟陣列
注意:
如果您不知道什麼是軟體磁碟陣列,請參閱 Software-RAID-HOWTO
。
|
當您使用 LiveCD 開機後,請載入適當的磁碟陣列模組。舉個例子來說,如果您計
畫使用 RAID-1:
原始碼 2.1: 載入 RAID-1 模組 |
# modprobe raid1
|
當您在分割您的磁碟時,記得將您的分割區格式設為 fd
(Linux raid autodetect) 而非 83 (Linux native)。在 fdisk 下,
您可以使用 t 指令來變更分割區格式。
在建立 RAID 陣列之前,我們需要先建立裝置結點:
原始碼 2.2: 建立裝置結點 |
# mknod /dev/md0 b 9 0
# mknod /dev/md1 b 9 1
# mknod /dev/md2 b 9 2
|
分割完之後,使用 mdadm 建立 /etc/raidtab 檔案,這是一個先進
的RAID
管理 工具。例如說,要讓你的開機,置換,根目錄分割區做鏡像 (RAID-1) 到
/dev/sda 及 /dev/sda,你可以:
原始碼 2.3: mdadm 指令範例 |
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
# mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
|
Linux 軟體磁碟陣列驅動程式將會開始建立 metadevices。您可以從
/proc/mdstat 看到它目前的進度。等它完成後我們再繼續接下來的動作。
從現在開始,/dev/md0 便是您的 boot 分割區、/dev/md1
是您的 swap 分割區、而 /dev/md2 便是您的 root 分割區了。
載入 /dev/md2 到 /mnt/gentoo 之後,別忘了將
/etc/mdadm.conf 複製到 /mnt/gentoo/etc。
當您在設定您的核心時,記得將適當的磁碟陣列支援編進您的核心的一部分,
別將它編成模組。
當您在安裝額外的工具時,順便 emerge mdadm。要注意的是,這並不是所有
的 LiveCD 都有這個工具,所以您可能無法在沒有存取網路的環境下,為您的 Gentoo
安裝軟體磁碟陣列!
當您在設定您的 bootloader 時,如果您使用映像 (mirroring) 時,別忘了將它安裝
至兩個磁碟機的 MBR 裡。
在 2.4 核心下使用 ATA 磁碟陣列
先確定您用 LiveCD 開機並使用 doataraid 參數。當開機完後,檢查一下
/dev/ataraid 的內容,它應該會有些像是 disc* 之類的
的資料夾給每一個 ATA 磁碟陣列的磁碟機。整個磁碟將會以 disc 顯示,
而分割區則以 part* 顯示。
從 /dev/ataraid/disc*/* 抄下幾個您要用來安裝 Gentoo 的裝置檔案,
您將需要用它們來取代安裝說明中範例用的 /dev/hda 路徑。
在 chrooting 之前,先 bind-mount /dev 結構至新的環境下:
原始碼 2.4: Bind-mounting /dev |
# mount -o bind /dev /mnt/gentoo/dev
|
在設定您的核心時,別忘了編入支援您的 ATA 磁碟陣列的晶片以及選項。舉例來說,
有一個蠻普遍的 ATA 磁碟陣列系統叫做 Promise FastTrack built-in RAID
,在這樣的情形下您當然要將 Promise FastTrack 選項 編進您的核心。
當您在設定 GRUB 時,您要先建立一個 GRUB 開機片,這並不像您想像中的那麼難。
首先,您先安裝 GRUB,當到了將 GRUB 安裝至 MBR 的步驟時,請依照下面的說明:
原始碼 2.5: 建立一片 GRUB 開機片 |
# cd /boot/grub
# dd if=stage1 of=/dev/fd0 bs=512 count=1
# dd if=stage2 of=/dev/fd0 bs=512 seek=1
|
您仍然需要編寫一個您自已的 grub.conf 檔案。這部分跟安裝說明沒有什
麼不同,但要記得把您的 root= 指到您的 ATA 磁碟陣列裝置。
完成整個安裝後,使用您剛剛建立的 GRUB 開機片開機。您將會看到一個 GRUB 提示畫面
。接下來便是設定 GRUB 由您的 ATA 磁碟陣列裝置開機。
原始碼 2.6: 安裝 GRUB 至 ATA 磁碟陣列裝置 |
grub> root (hd0,x)
grub> setup (hd0)
grub> quit
|
重新開機 (拿掉磁碟片)。
LILO 的使用者可以安全的依照安裝說明的指示。
使用 LiveCD 的核心
如果你不想自己編譯核心,你可以複製 LiveCD 的核心然後使用他。當你到要求你編譯核
心時,開啟另一個終端機 (按下 Alt-F2) 然後用開始安裝時你輸入的 root 密碼登入。
將核心及模組複製到你的 Gentoo 中:
原始碼 2.7: 複製 LiveCD 核心 |
cdimage ~# cp /mnt/cdrom/isolinux/${KN} /mnt/cdrom/isolinux/${KN}.igz /mnt/gentoo/boot
cdimage ~# mkdir -p /mnt/gentoo/lib/modules
cdiamge ~# cp -Rp /lib/modules/`uname -r` /mnt/gentoo/lib/modules
|
確定你有 emerge hotplug 並且把他加到 boot runlevel 中。為了要讓所有你目
前正在執行的模組(LiveCD 上的)在開機時自動載入,在 chroot 後的環境執行底下的指令:
原始碼 2.8: 在 modules.conf 檔案中加入所有正在執行的模組 |
# cat /proc/modules | cut -d ' ' -f 1 >> \
/etc/modules.autoload.d/kernel-`uname -r | cut -d . -f -2`
# modules-update
|
3.
簡易安裝
離開您的終端機
許多人想在它編譯時離開他們的系統。但假如您在公開的場合下,這是一件非常困難
的事,因為您沒辦法相信所有的人。這在情況下,您可以將所有的編譯動作放至背景
執行,然後登出所有的終端機。
當然,解決這個問題的方法很多,第一個方法便是使用 screen。由 LiveCD
開機後,設定您的 root 密碼然後再開始一個 screen session:
注意:
並不是所有的 LiveCD 提供 screen。在這情況下,您將需要考慮使用其它的方法,我
們會在下面另外說明。
|
原始碼 3.1: 開始一個 screen session |
# screen -S gentoo
|
當進入 screen session 後,您便可以開始您的安裝。當您想離開您的終端機時,按
Ctrl-a, c (同時按下 ctrl 和 a,接著按 c) 來 分離 您的
screen session。這樣您便可以安裝的登出您的系統。
若是您想再次使用您的終端機,再次登入成 root 然後 載入 目前還在執行中
的 screen session:
原始碼 3.2: 載入一個正在執行中的 screen session |
# screen -x gentoo
|
如果您無法使用 screen,這裡仍然還有一個辦法可以讓您可以暫時離開您的終端機。
先依照安裝說明,當要開始長時間的編譯時 (例如 ./scripts/bootstrap.sh
步驟),使用 nohup 的話,既使您登出來,它還是可以讓這個程序繼續下去。
別忘了加入 "&",不然該程序是不會被放到背景運行的喔!請順便記下目前您所
在的資料夾 (使用 pwd 指令查看),您等等會需要用到它。
原始碼 3.3: 使用 nohup |
# pwd
/usr/portage
# nohup ./scripts/bootstrap.sh &
|
接下來離開 chrooted 的環境 (exit) 以及 LiveCD 的 session。您的編輯
程序仍然會在背景運行。
當您要查看該編譯程序時,登入成 root (從 LiveCD) 然後 chroot 回您的環境下,
然後切換至您剛剛在的資料夾:
原始碼 3.4: Chrooting 回去 |
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
# cd /usr/portage
|
接下來使用 less 指令查閱存於目前資料夾下的 nohup.out 檔
案,編譯時出現的訊息將會存至該檔,所以如果您想要接著編譯進度的話,執行
less nohup.out 然後按 F 來看目前的進度。當編譯進度完成後,
您便可以按照剩下的安裝說明繼續安裝您的機器。
如果您懶得看進度,按 Ctrl-C 然後再按 q,這樣便會離開 less
程序,這並不會中止您的編譯。
4.
修正錯誤/問題
大規模的測試您的磁碟
如果您認為您的磁碟需要做完整的測試 (如壞的區段等等),在您建立 ext2 或是 ext3
檔案系統 (用 mke2fs) 時,您可以加入 -c 參數。這將會執行
讀取測試,然後會把所有的壞的區段標記起來。如果您硬要的話,您也可以使用
-c -c 參數來執行大規模的讀取/寫入測試。
原始碼 4.1: 檢查磁碟狀態 |
# mke2fs -j -c /dev/hda3
|
從安裝失敗中復原
如果因為一些原因你的 Gentoo 安裝失敗了,你並不需要重新做全部的安裝過程。相反地,
你可以安全的 "到" 你發生錯誤的地方 (或是你認為操作錯誤的地方) 然後試試另一種作
法。
你首先要做的就是 chroot 到你的 Gentoo Linux 環境下。再依照那些操作一次,但是忽
略和磁碟分割相關的那幾步,因為你已經建立並且在使用了。因此你可以直接掛載分割區
到 /mnt/gentoo。你也要忽略關於解壓縮 stage 檔以及修改
make.conf 的操作 - 你並不會想要覆蓋掉你的檔案吧?
在你 chroot 到你的 Gentoo Linux 環境後,可以馬上做你認為要試試別的方法的步驟。
除非是你認為有錯誤的地方,不要重做所有的步驟,如 bootstrap 等等。
例如,如果你認為 grub.conf 設錯了,你可以立即啟動編輯器來更新
/boot/grub/grub.conf。
在你使用另一種方法時,你要考慮你還需要去執行哪些相關的步驟。如果這些步驟和你的
改變有關,你需要去再執行這些步驟。
舉幾個例子,
-
假如你改變 make.conf 中的變數,你需要去做相關的編譯,因為那些都依
賴 make.conf 的設定。
-
如果你改變 /boot/grub/grub.conf,你可以立即離開 chroot 環境然後重
開機,因為沒有任何步驟和 grub.conf 有關
-
或者是你重新編譯核心,你只需要確定開機管理程式的設定檔有指向正確的核心(再三確認
你有掛載 /boot!),然後你可以離開 chroot 環境並且重開機。
-
架如是改變了 /etc/fstab 你可以離開 chroot 環境並且重開機。
如同你看到的,大部分的操作都可以馬上重開機。只有某些情況你需要做相關的步驟。
這份文件是以
Creative Commons - 姓名標示-相同方式分享 授權條款發布
|