Gentoo Linux 替代的安裝指南
1.
關於這份文件
如果您無法使用標準的光碟開機安裝方式(或著是您根本就不喜歡),這份文件提供了許多的
其他安裝 Gentoo Linux 的技巧給那些需要的人。這裡也是給您提供您古怪的安裝方式的地
方,如果您有一個您自已覺得不錯的安裝方式,或著是您發明了其他有趣的安裝 Gentoo 的
方法,歡迎您將它寫下並回報到 Bugzilla。
2.
利用 Smart BootManager 開機至安裝光碟
下載 Smart BootManager http://btmgr.sourceforge.net/download.html
。這裡提供 Linux 源始碼或是已編譯完成的格式、和 windows 的 .exe 版本的下載,並包
括數種不同語言的版本。可是,目前為止,我們還是建議您下載已編譯完成的版本,因為源
始碼無法在比較新的版本的 NASM 下編譯。
您可以自行下載源始碼編譯或是直接下載已編譯好的套件。在您建立開機碟片時,您可以利
用下面的參數。
原始碼 2.1: Smart BootManager 參數 |
sbminst [-t theme] [-d drv] [-b backup_file] [-u backup_file]
-t theme 選擇要使用的佈景主題, 提供的主題有:
us = 英語佈景主題 de = 德語佈景主題
hu = 匈牙利語佈景主題 zh = 中文佈景主題
ru = 俄語佈景主題 cz = 捷克語佈景主題
es = 西班牙語佈景主題 fr = 法語佈景主題
pt = 葡萄牙語佈景主題
-d drv 設定您要安裝 SmartBootManager 的磁碟;
Linux:
/dev/fd0 是第一個磁碟機,
/dev/hda 是第一顆 IDE 硬碟。
/dev/sda 是第一顆 SCSI 硬碟。
DOS:
0 是第一個磁碟機
128 是第一顆硬碟;
-c 關閉 CD-ROM 開機功能;
-b backup_file 備份將來反安裝時需要用到的資料;
-u backup_file 反安裝 Smart BootManager, 應該單獨使用;
-y 不詢問任何的問題或警告。
|
原始碼 2.2: 使用 sbminst 建立開機碟片 |
# sbminst -t us -d /dev/fd0
|
注意:
如果您的磁碟機裝置名稱不同,將 fd0 改成您的裝置名稱。
|
現在將該磁片放入您想要用安裝光碟開機的電腦,也請將安裝光碟放至該電腦的光碟機。
您將會看到 Smart BootManager 的對話框。請選擇您的 CD-ROM 再按下 ENTER 鍵由
LiveCD 開機。當開機完成後,您便可以依照標準的安裝程序安裝。
您可以至 http://btmgr.sourceforge.net/ 查看更多有關 Smart BootManager
的資訊
3.
Knoppix 安裝
利用 Knoppix安裝光碟環境可以在您編譯
Gentoo 時有一個完整功能的 Linux 系統。Tux Racer 可以幫您打發等待 bootstrap 的時
間。
警告:
在你等待 Gentoo 系統安裝時小心你存在 Knoppix 家目錄下的東西,當你重開機到 Gentoo
後這些東西不會存在。確認你把重要的檔案存在硬碟或別的電腦上!
|
用 knoppix 光碟開機後,如果你使用 Knoppix 3.6-3.8.2,你要在開機選項指定
knoppix26 載入 2.6 板核心。如果你忘了這一步,在你 chroot 時,你會
收到核心太舊的訊息。但如果你用 Knoppix 3.9+,這一步並不需要,因為預設就是 2.6
核心。
Knoppix 開機後預設載入 KDE 3.0 桌面環境,我做的第一件事便是打開 knosole 並輸入
su -,這樣可以設定您在 Knoppix 下的 root 的密碼。如果你想的話,可以現在
設定 sshd 做遠端登入。
原始碼 3.1: 建立 /mnt/gentoo 載入點 |
# mkdir /mnt/gentoo
|
在這裡,您可以從 part 4 繼續接著
標準的安裝文件。然而,當您被要求載入 proc 系統時,改使用下列的指令:
原始碼 3.2: 以 Bind 掛載 proc 虛擬檔案系統 |
# mount -o bind /proc /mnt/gentoo/proc
|
另外,portage 內的某些功能將無法使用於 knoppix 上。請特別注意 userpric
和 usersandbox。如果您遇到類似問題,我們建議您關閉全部或是部份的選項功能。
4.
在沒有網路的情況下由 Stage 1 開始安裝
燒錄安裝光碟的 iso.
先由
http://distro.ibiblio.org/pub/linux/distributions/gentoo/snapshots/
(或是您喜愛的 映象站) 下載最新的
portage 快照。將這個 tarball 放至安裝電腦上的一個已存在的分割區,或是將它燒至一
片光碟。
您將也需要為 stage 套件準備套件清單。將下面的 dl-list.sh 腳本放至與 portage 快照
同樣的媒介 (分割區裡或是光碟片中),您等等會用到它。
照著 Gentoo 安裝文件的所有順序直到 chroot /mnt/gentoo 部分。如果您只有一
部光碟機,記得在開機時使用 cdcache 選項,以便卸下安裝光碟再載入您的
portage 快照光碟。
打開一個新的控制台(Alt-F2),我們將會繼續依著安裝文件的步驟直到執行 bootstrap.sh
腳本。
警告:
在您手動登入之前,舊版本的安裝光碟需要您使用 passwd 先更改密碼。
|
回到第一個控制台 (Alt-F1,不需要 chroot) 並載入位於
/mnt/gentoo/mnt/cdrom2 的第二片光碟。由第二片光碟裡複製 portage 壓
縮檔並解開至 /mnt/gentoo/usr。此外,也請將 dl-list.sh 腳本
放至 /usr/sbin 並將它改成可執行檔。
原始碼 4.1: 載入 snapshot 光碟 |
# umount /mnt/cdrom
# mkdir /mnt/gentoo/mnt/cdrom2
# mount /dev/cdroms/cdrom0 /mnt/gentoo/mnt/cdrom2
# cp /mnt/gentoo/mnt/cdrom2/portage-$date.tar.bz2 /mnt/gentoo/usr
# cd /mnt/gentoo/usr
# tar -xvjpf portage-$date.tar.bz2
|
切回至 F2 控制台。如果您現在試著執行 bootstrap.sh,它會因為沒辦法下載任何檔案而
無法作用。我們將需要從別的地方下載這些檔案並放到 /usr/portage/distfiles 裡 (從
F2 控制台)。
您需要 Stage 1 的套件清單:glibc、baselayout、texinfo、gettext、zlib、binutils、
gcc、ncurses 依及它們的相依套件。
注意:
注意,您需要使用與您 portage tree 下相同版本的套件。
|
現在您可以使用 dl-list.sh 腳本產生您需要的套件清單,然後將這份清單複製到一個磁片
裡。
原始碼 4.2: 取得下載列表 |
# emerge -fp glibc baselayout texinfo gettext zlib binutils gcc ncurses 2> stage1.list
# mount -t vfat /dev/fd0 /mnt/floppy
# cp /mnt/gentoo/stage1.list /mnt/floppy
# umount /mnt/floppy
|
把這片磁碟拿到一個有網路的電腦。如果您檢查檔案 stage1.list 的內容,您會看到它提供您數個下載點的 URL。可是它是針對每個套件都提供了幾個 URLs,這也許不是您想要的,您可以將這些刪掉,只保留第一個。
原始碼 4.3: 刪改 URLs |
# cut -f 1 -d ' ' stage1.list > stage1.download
|
現在,請用 wget 抓取所有表列中的原始碼:
原始碼 4.4: 使用 wget 來取得套件的源始檔 |
# wget -N -i stage1.list
|
一旦您取得了所有的檔案,將它們複製到電腦裡的
/mnt/gentoo/usr/portage/distfiles,您便將可以執行
bootstrap.sh。一直重複使用相同的 wget 下載並複製的步驟來完成 stage2 和 3
。
5.
無磁碟 (Diskless) 電腦安裝:使用 PXE 開機
需求
您需要安裝一張支援 PXE 傳輸協定的網路卡於無磁碟電腦來執行開機動作,例如 3Com 的
網路卡。您的 BIOS 也需要能夠支援由 PXE 開機。
伺服器端設定
建立目錄:第一件要做的事便是建立用來儲存您無磁碟系統檔案的目錄。建立一個叫
/diskless 目錄用來存放每一個無碟機客戶端私有的目錄。剩下的指南我們
以設定一個叫作 'eta' 的客戶端為例。
原始碼 5.1: 目錄設定 |
# mkdir /diskless
# mkdir /diskless/eta
# mkdir /diskless/eta/boot
|
DHCP 以及 TFTP 設定:客戶端會以 DHCP 取得開機資訊並以 TFTP 下載需要的檔案。先
emerge DHCP 並設定好它來完成您的基本需求,然後加入下面的設定至您的
/etc/dhcp/dhcpd.conf。
注意:
這會提供固定的 IP 以及 PXE 開機映象檔 (這裡叫作 pxegrub)給那個客戶端。您必需將
MAC 位置替換成客戶端的網路卡的 MAC 位置, 以及您存放該客戶端檔案的目錄位置。
|
要安裝 DHCPd,首先執行 emerge dhcp(或其他你選擇的 DHCP 伺服器)。確定在
/etc/conf.d/dhcp 中設定正確的網路介面。
原始碼 5.2: dhcp.conf |
option option-150 code 150 = text ;
ddns-update-style none ;
host eta {
hardware ethernet 00:00:00:00:00:00;
fixed-address ip.add.re.ss;
option option-150 "/eta/boot/grub.lst";
filename "/eta/boot/pxegrub";
}
|
關於 TFTP 的部分,請 emerge app-admin/tftp-hpa。然後在
/etc/conf.d/in.tftpd 裡放入以下設定:
原始碼 5.3: in.tftpd |
INTFTPD_PATH="/diskless"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
|
設定 GRUB:為了提供 PXE 開機,我使用 GRUB。您必需自行編譯它來啟動 PXE 映像檔編譯
功能 (PXE image compilation),它沒有想像中那麼難,首先,下載 GRUB 最新版本的源始
碼 (emerge -f grub 會把壓縮檔放到 /usr/portage/distfiles),
然後把壓縮檔複製到 /diskless 然後將它編譯成支援 pxe 的執行檔。當執
行檔建立完成後,將它複製到無磁碟客戶端的開機目錄,然後編輯它的 grub.lst 設定檔。
原始碼 5.4: grub 設定 |
# tar zxvf grub-0.92.tar.gz
# cd grub-0.92
# ./configure --help
# ./configure --enable-diskless --enable-$nic
# make
# cd stage2
# cp pxegrub /diskless/eta/boot/pxegrub
# nano -w /diskless/eta/boot/grub.lst
|
原始碼 5.5: grub.lst |
default 0
timeout 30
title=Diskless Gentoo
root (nd)
kernel /eta/bzImage ip=dhcp root=/dev/nfs nfsroot=ip.add.re.ss:/diskless/eta
|
設定 NFS:NFS 很簡單就能設定好了,您唯一要做的事便是加入一行設定至
/etc/exports 設定檔:
原始碼 5.6: /etc/exports |
# nano -w /etc/exports
# /etc/exports: NFS file systems being exported. See exports(5).
/diskless/eta eta(rw,sync,no_root_squash)
|
更新您的主機:一個非常重要的部分,您必需修改您的 /etc/hosts 來符合
您的需求。
原始碼 5.7: /etc/hosts |
127.0.0.1 localhost
192.168.1.10 eta.example.com eta
192.168.1.20 sigma.example.com sigma
|
於伺服器上建立系統
在您的伺服器上使用 Gentoo安裝光碟開機,照著 Gentoo 標準的安裝步驟,但這裡有部分
不同的地方,當您載入檔案系統時,用下面的指令 (hdaX 是指您存放 /diskless 目錄的分
割區)。您不需要載入任何其它的分割區,因為其它的檔案將會存在
/diskless/eta 目錄裡。
原始碼 5.8: 載入檔案系統 |
# mount /dev/hda3 /mnt/gentoo
|
Stage tarballs 和 chroot:這裡的範例使用 stage3 tarball,載入
/proc 至您的無磁碟目錄然後 chroot 進去再繼續執行安裝動作。然後再依
著標準的安裝方式直到核心設定部分。
警告:
這裡請要小心,當您在解壓縮 stage tarball 時,千萬別將它解至您目前的系統根目錄 (
/ )下。
|
原始碼 5.9: 解壓縮 stage tarball |
# cd /mnt/gentoo/diskless/eta/
# tar -xvjpf /mnt/cdrom/gentoo/stage3-*.tar.bz2
# mount -t proc /proc /mnt/gentoo/diskless/eta/proc
# cp /etc/resolv.conf /mnt/gentoo/diskless/eta/etc/resolv.conf
# chroot /mnt/gentoo/diskless/eta/ /bin/bash
# env-update
# source /etc/profile
|
核心設定: 當您使用 make menuconfig 設定您的系統核心時, 別忘了啟動下列的選
項以及標準安裝方式裡提及的選項。
原始碼 5.10: menuconfig 選項 |
- 您的網路卡裝置的支援
- 在 "Networking options" 下:
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
- 在 "File systems --> Network File Systems" 下:
<*> NFS file system support
[*] Provide NFSv3 client support
[*] Root file system on NFS
|
根據你之前定義的 pxegrub 設定,把核心存到 chroot 後的 /(不是在
/boot)。接著設定 diskless 客戶端的 /etc/fstab。
原始碼 5.11: /etc/fstab |
# nano -w /etc/fstab
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
|
您也需要避免客戶端執行檢查檔案系統的工作:
原始碼 5.12: 避免客戶端執行檢查檔案系統的工作 |
# touch /fastboot
# echo "touch /fastboot" >> /etc/conf.d/local.start
|
因為你的客戶端相當需要,安裝 nfs-utils。
原始碼 5.13: 安裝 nfs-utils |
# emerge nfs-utils
|
開機程式,千萬別再安裝另一個開機程式,因為我們已經有 pxegrub 這個了。請直接完成
並重新啟動伺服器,並啟動給客戶端用的服務:DHCP、TFTPD、以及 NFS。
原始碼 5.14: 啟動服務 |
# /etc/init.d/dhcp start
# /etc/init.d/in.tftpd start
# /etc/init.d/nfs start
|
讓新的客戶端開機
為了讓新的客戶端能夠正常開機,您將需要設定 BIOS 以及網路卡,讓它們用 PXE 為最先
的開機順序 - 在 CD-ROM 或磁碟機之前,若需要幫助,請查詢您的硬體說明書或是廠商的
網站。現在網路卡應該能由 DHCP 取得一組 IP 位置並用 TFTP下載 GRUB PXE 映像檔,然
後您應該會看到一個黑底白字的 GRUB 開機畫面讓您選擇您要用來開機的核心,選好後按下
Enter,如果一切沒問題的話,核心應該能順利開機、使用NFS 載入檔案系統並出現登錄提
示。好好玩吧!
6.
從一個已存在的 Linux 作業系統下安裝 Gentoo
需求
為了在一個已存在的 Linux 作業系統下安裝 Gentoo,您需要安裝 chroot 指令,並擁有一
份您要安裝的 Gentoo 安裝 tarball 或是 ISO。如果您想要安裝壓縮檔 (順便提一下,
壓縮檔指的是一個檔案的副檔名為 .tbz 或是 .tar.gz) 提供以外的東西,有網路連線的話
會更好。作者使用 Redhat Linux 7.3 為"主要"的操作系統,這並不是那麼的重要,我們就
開始吧!
瀏覽
我們會先重新修改已存在的 Linux 分割區的大小,切出一塊分割區,然後分配給 Gentoo。
載入該分割區、解開 tarball 至該分割區、chroot 到那個假的系統然後開始建立,當
bootstrap 的步驟完成後,我們會在系統上做一些最後的設定並確定它能正常開機,然後我
們便可以重新開機並使用 Gentoo 了。
我們該如何劃分空間出來給 Gentoo 咧?
主要的分割區載入於 / 下。我在我的系統下執行了 mount 指令應該明確的
告訴您們我在說什麼了。我們將會使用 df (disk free) 指令來查看看我還有多少的空間,
再來決定我該如何重新分配分割區大小。注意,修改您的主分割區大小不是必要的!您也可
以修改其它分割區的大小,我們等一下再提。
原始碼 6.1: 檔案系統訊息 |
# mount
/dev/hdb2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw,nodev,nosuid,noexec)
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hdb2 4.0G 1.9G 2.4G 82% /
none 38M 0 38M 0% /dev/shm
|
如同我們看到的,載入至 / 的分割區叫做/dev/hdb2 並有
2.4GB 的多餘空間。以我的電腦為例,我想我會調整它的大小,並讓它剩下 400MB 的多餘
空間,換句話說,我將會劃出 2 GB 的空間給 Gentoo。嗯,這代表著我只可以安裝一些東
西而已。沒關係,事實上 1GB 已經夠給大部分的使用者了,所以我們就來分割這東西吧!
使用 parted 來修改分割區大小
Parted 是一個由 GNU 基金會提供的工具,它是一個分割區編輯程式,我們可以到
http://www.gnu.org/software/parted/ 下載。
注意:
世面上也有其他的分割區編輯程式,但本文作者不確定/沒有測試 PartitionMagic(tm) 或
是其他的程式能夠正確的使用。調查出是否可以用的任務便是讀者該做的事了。
|
確定好您要調整的分割區後看看 parted 是否能夠修改,若是不行,算是您運氣不好,您將
需要摧毀掉一些分割區來給 Gentoo,然後再將那些分割區的資料安裝回去。這裡我們有一
個問題,我們需要修改我們 Linux 的主分割區,所以我們必需先由磁片開機至一個基本的
Linux 系統環境並將我們先前編譯好的 parted 複製到磁片,這樣才能調整
/ 的大小。然而,如果您可以卸下分割區但卻又可以繼續使用 Linux,您很
幸運,這樣的話您就不需要做上面提到的事了,只要編譯完 parted 後執行它,然後讓它修
改您想要調整大小的分割區。下面是我在我系統上做的事。
重要:
確定 parted 支援您要在您的分割區上做的動作!
|
從 http://mininux.free.fr/uk/ 下載 mininux 開機磁片 (以 2.4 核心
為主,在一片軟碟的迷你 Linux,而且-免費),依提供的文件建立一張可開機的磁片,然
後將該磁碟放到磁碟機中並準備下一步驟。
注意:
記得 Linux 本意便是您可以有不同的方法去完成一件事,在這裡,您的目標便是讓 parted
可以在一個未載入的分割區上做事,您可以使用不同於 mininux 的開機片。您也或許不需
要這些步驟,則您所要做的事就只是先卸下您要調整大小的檔案系統,然後對它執行
parted。
|
原始碼 6.2: 建立工具磁片 |
# mkfs.minix /dev/fd0
480 inodes
1440 blocks
Firstdatazone=19 (19)
Zonesize=1024
Maxsize=268966912
|
我們現在要開始編譯 parted 的步驟,如果您還未下載並解壓縮,請先做好這動作然後 cd
到解開後的目錄。接下來執行下面一連串的指令來編譯這個工具並將它複製到您的磁片裡。
原始碼 6.3: 建立工具磁片 |
# mkdir /floppy; mount -t minix /dev/fd0 /floppy &&
export CFLAGS="-O3 -pipe -fomit-frame-pointer -static" && ./configure
&& make && cp parted/parted /floppy && umount /floppy
|
恭喜您,您現在已經準備可以重開機並修改您分割區的大小了,請先快速的看一下放在 GNU
網站上的 parted 文件。在一個很大的硬碟上,調整大小的動作應該是少於 30 分鐘的,有
點耐心。用 mininux 開機片重新啟動您的電腦,當您登入後,放入您的工具磁片然後輸入
mount /dev/fd0 /floppy 讓您的 parted 存放在 /floppy 下。接下來便是執行 parted 並
重新修改您的分割區大小。當這個冗長的程序完成後,我們便可以開始安裝 Gentoo 了。再
一次重新開機進入您舊的 Linux 系統。附帶一提,若是我們想要調整 /dev/hda3 的大小,
則該硬碟為 /dev/hda。
原始碼 6.4: 進入 mininux 系統後要執行的指令 |
# mount /dev/fd0 /floppy
# cd /floppy; ./parted [drive you wish to operate on]
(parted) print
Disk geometry for /dev/hdb: 0.000-9787.148 megabytes
Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 2953.125 primary ntfs
3 2953.125 3133.265 primary linux-swap
2 3133.266 5633.085 primary ext3
4 5633.086 9787.148 extended
5 5633.117 6633.210 logical
6 6633.242 9787.148 logical ext3
(parted) help resize
resize MINOR START END resize filesystem on partition MINOR
MINOR is the partition number used by Linux. On msdos disk labels, the
primary partitions number from 1-4, and logical partitions are 5
onwards.
START and END are in megabytes
(parted) resize 2 3133.266 4000.000
|
重要:
有點耐心!電腦仍在運作中,您可以看看位於您主機殼上的硬碟的訊號燈來確定它是否仍在
運作。這個動作應該需要 2 至 30 分鐘的時間。
|
當您完成了調整大小的動作,您便可以重新開機回您舊的 Linux 系統了。接下來請依著
Gentoo
手冊:Gentoo 安裝檔案 並跟著它的指示。當要求 chroot 時,使用下面的指令來更
新您的環境。
原始碼 6.5: 於 chroot 時更新環境 |
# env -i chroot /mnt/gentoo /bin/bash
|
享受 Gentoo 的樂趣吧!
這份文件是以
Creative Commons - 姓名標示-相同方式分享 授權條款發布
|