隨身版 Gnetoo(一)。

呃,這篇是舊的,不過先放上來湊數,新版的在 Gentoo Portage Wiki,不過還沒寫完。

一、簡介

寫這個文章的想法,來自於洪朝貴老師的『百毒不侵救命碟』和比利潘把完整的 Ubuntu 放到隨身碟上的想法

因為這個定位是『個人的隨身作業系統』,所以製作完成後,比較像是比利潘的 Ubuntu 隨身作業系統,也就是你所有的設定都會在,不像 LiveCD 一樣重開機就還原。

如果你需要的是把 Gentoo LiveCD 放到隨身碟上,目前網路上已經有相當多的討論和文件,照著作應該沒什麼大問題,所以這裡就不提這一段了。

會選擇 Gentoo 沒有其他的理由,只是因為個人習慣,畢竟如果是自己的隨身作業系統,那用自己熟悉的版本當然是最好的。

二、注意事項

  1. 這篇文件假設你曾經照著 Gentoo Handbook 手動安裝過,而且真的知道每一步每一個指令到底在做什麼。
  2. 因為 Gentoo Portage 的特性,不建議使用隨身碟,速度可能會讓你受不了,還是建議使用 2.5 吋的隨身硬碟。
  3. 這篇文章只討論到開機進到文字模式,要怎麼像 LiveCD 一樣會自動偵測顯示卡和設定 Xorg ,請自行研究,因為我自己也還沒研究。XD
  4. 這篇文章選用 i686 的架構,如果你要讓很舊的電腦也可以跑,請使用 i386/i586 之類的。
  5. 由於是在隨身硬碟上用,我們只切出一個根目錄的磁區,其他像是 SWAP 或 BOOT 都是放在這個磁區裡。

三、背景知識

要讓 Gentoo 放在隨身碟上面,到每一台電腦上都可以開機使用,有幾個要克服的地方,基本上只要這幾件事克服後,你的 Gentoo 就可以帶著跑了。

  1. 每一台電腦都能跑的核心。
  2. 與 SWAP 相關的設定。
  3. 與根目錄相關的設定。
  4. GRUB 的設定檔。

四、SWAP 的設定

由於我們是使用隨身硬碟,磁區能不要切就不要切,因此在第四章分割硬碟的時候,可以只把 ROOT 磁區切出來就好。

接著請繼續依著安裝手冊做到第六章結束,在進入第七章之前,我們先來設定 SWAP 。

請依照下列指令建立 SWAP。

dd if=/dev/zero of=/mnt/SWAP bs=1024 count=1048576

mkswap /mnt/SWAP

swapon /mnt/SWAP

以上三行指令,第一行建立一個 1 GB 的 SWAP 檔,第二行初格式化這個檔案,第三行把 SWAP 啟動。

這時請用 free -m 這個指令檢查一下,SWAP 是不是有被啟動。

五、核心的設定

隨身作業系統第一個要解決的問題,就是要能夠隨著硬體的不同,自動載入需要的核心模組和設定,幸好這件事 Gentoo 本身就能夠作到了。

首先,請先依照 Gentoo 安裝手冊,做到第七章開始,這時,請選擇用 genkernel 的方式,這樣一來,你的核心就會像 LiveCD 一樣,在開機的時候自己偵測硬體,並做適當的設定。

六、與根目錄相關的設定

接著要解決的問題,是在 Gentoo 原本的安裝手冊中,硬碟磁區是以傳統的 /dev/XXX 的方式來表示,可是這個路徑隨著你電腦上碟碟的增減而改變,所以不適合用在隨身作業系統上。

解決的方法有兩個:LABEL 與 UUID ,LABEL 比較簡單,不過很可惜我的實驗失敗,因此這裡介紹 UUID 的作法,目前試過,不管硬碟怎麼接,都可以正常使用。

安裝好核心後,請在編輯 /etc/fstab 前等一等,我們要來找出你根目錄磁區的 UUID 。

首先,請先依照下列指令,列出所有磁區的 UUID 。

cd /dev/disk/by-uuid/

ls -l

你應該會看到如下的訊息:

10c212ae-9545-49a4-b2ca-2f19e8025266 -> ../../hda2 9cd4ad95-4df5-4a5a-a049-96e743f38535 -> ../../hda3 c3504704-cc70-45eb-95bc-f0055ba889de -> ../../hda1

請在黃色部份找出你的根磁區路徑(你在第二章時做格式化的那個路徑),並把它之前那一串藍色的編碼記下來。

在第八章設定 /etc/fstab 的時後,請注意三件事:

  1. 不需要有 /boot 磁區的設定。
  2. 根目錄磁區原本的 /dev/xxx 改成 UUID=你剛剛抄下的編碼
  3. SWAP 磁區原本的 /dev/xxx 改成 /mnt/SWAP

到這邊為止,fstab 的設定就沒什麼問題的。

七、GRUB 設定

接著請繼續依照安裝手冊的說明,進行到第十章,準備安裝 GRUB 開機程式。

這裡要注意的是,在 GRUB 設定檔中有一個參數長得像是 real_root=/dev/sda3 這個樣子。

請把 /dev/sda3 換成 UUID=你剛剛抄下的 ROOT 磁區編碼。

基本上這裡請自求多福,最好可以了解 GRUB 怎麼安裝,(hd0,0) 是怎麼回事,安裝起來才會比較沒問題。

不然,安裝這個隨身碟 Gentoo 版之前,把所有硬碟全部拔掉,比較不會出問題。

這件事做完之後,就請依照安裝手冊繼續到手冊結束吧!

八、完工

到這裡,基本上你的 Gentoo 已經可以隨身攜帶了,要注意開機的時候,initrd ... 那一行可能會跑一陣子,不要以為他當掉了,耐心的等一陣子看看。

回響