準備boot meterial
到 ftp://ftp2.tnc.edu.tw/ download
/pub2/Gentoo/releases/x86/2005.0/installcd/install-x86-minimal-2005.0.iso
用這個iso開機。
規劃HD,就是要安裝gentoo的HD.
/dev/hda1 ext2 -- boot用
/dev.hda2 swap
/dev/hda3 ext3 -- /
mount
swapon /dev/hda2
工作目錄/mnt/gentoo就是將來HD的環境
#mount -t ext3 /dev/hda3 /mnt/gentoo
#mkdir /mnt/gentoo/boot
#mount /dev/hda3 /mnt/gentoo/boot
安裝base system
下載stage1,解開到/mnt/gentoo中
這 階段要產生/mnt/gentoo/dev下的許多device node,還需要將基本的binary(/bin),environment tools (/usr)都copy進來。所已用一個stage package包起來。解開時加一個-p option維持package中的file attrib。
gentoo#tar -xvjpf stage1-x86-2005.0.tar.bz2
完成後,ls /mnt/gentoo已經可以看到一個基本的root file system的結構了。
- 要注意,stageN和boot的iso有關。如果選擇minimal boot,就代表什麼都沒有,所以要download stage1,從stage1開始。如果是其他的boot iso。那模可能從stage2或3開始就可以。
- 第一次安裝的錯誤就是因為download stage2,unpack,導致/mnt/gentoo/下的目錄不完全(只有bin, dev)。所以接下來的portage有錯(找不到usr)
安裝package list
下載portage,解壓縮到/mnt/gentoo/usr
portage包含目前所有gentoo的package list。解壓後才可已利用她來download package的soruce code。
- 今天05/08/08 到tnc download 20050722的portage unpack卻有error,到tnc看20050722的size比20050721的size小,所以改download 20050721. 解壓縮ok
設定compile option
Gentoo的特點就是所有package都是由source code開始build,不使用已經build好的binary。所以每個系統可以自行決定build的option.
make 的option在m/mnt/gentoo/etc/make.conf
說明說只有stage1安裝的人可以動CHOST變數,所以手賤將i386改為i686
設定download package的mirror site
Gentoo會由make.conf中的變數決定download source的mirror site,gentoo提供mirrorselect命令來選擇,我選
ftp://ftp2.tnc.edu.tw/pub1/Gentoo
http://ftp.isu.edu.tw/pub/Linux/Gentoo
一開始就做最難的有點辛苦,所以從stage3來作比較好,又說2005.1 的installation handbook有說明install without network。
所以就follow 這一個document :
http://www.gentoo.org/doc/en/handbook/2005.1/handbook-x86.xml說明寫,CDROM利就包含這個說明,而且可以用links2來讀。
用Alt-F1, F2來切換install , read doc環境。
#links2 /mnt/cdrom/docs/handbook/html/index.html
開機後,passwd設定新password後就可以到4.Preparing the Disks. (Skip Network 設定)。
用fdisk :
boot partition : 32M - active
swap parition : 256M - depends on your RAM size
root : 剩下的
Create Filesystem: boot 和 root用 mke2fs,swap用mkswap,再swapon。
mount 到工作目錄
boot --> /mnt/gentoo/boot
root --> /mnt/gentoo
開始
安裝檔案....
把/mnt/cdrom/stages 下的tar file 解壓縮到/mnt/gentoo
可以看到這個tar file就是base system root file的image。所以untar時要加上 p option。
... 這個過程有點久...約10 min
安裝Portage(
http://www.gentoo.org/doc/en/handbook/2005.1/handbook-x86.xml?part=1&chap=5#installing_portage)
portage在/mnt/cdrom/snapshot目錄中
一樣,解開到/mnt/gentoo/usr 中
#tar xvjf /mnt/cdrom/snapshot/portage-20050709.tar.bz2 -C /mnt/gentoo/usr
..這個更久...
Copy SourceCode Archive把/mnt/cdrom/distfiles 整個copy 到 /mnt/gentoo/usr/portage/distfiles
接下來準備Compile,先修改好compile option :
option 檔是 /mnt/gentoo/etc/make.conf
一般把Optimize選項: -Os (size) 改為 class 2 : -O2
再要Chroot到剛剛做好的root 環境中:mount /proc, /dev
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
OK,chroot ..
先chroot 到新目錄
# chroot /mnt/gentoo /bin/bash
再來update 環境變數
# env-update
執行script,將variable load到memory:
# source /etc/profile
換一下prompt:
# export PS1 = "(chroot) $PS1 "
OK!
接著,
create Portage cache,這樣以後作emerge時比較省時間
#emerge --metadata
這個很花時間,...會有百分比顯示...
USE ..部份先不用看,因為是要裝完後再改的(如果需要的話)
USE是gentoo用來build各種package時用的,利用名稱和'-'號來決定要不要enable某種功能(或支援)。
設定Timezone:/usr/share/zoneinfo下有所有支援的timezone 檔名(這裡應該是ROC吧?)
# cp /usr/share/zoneinfo/ROC /etc/localtime
將要用的時區copy為/etc/localtime。
Install SourceCode (Kernel)gentoo的x86的patch好的kernel source code叫 gentoo-sources,沒patch的叫 vanilla-sources。
都是2.6的kernel。
用 emerge 來安裝,並且用 -doc 不安裝xorg-x11 相關package,和用symlink來產生 /usr/src/linux 這一個symbolic link:
# USE="-doc symlink" emerge gentoo-sources
完成後,/usr/src 下會有一個symbolic link : linx --> linux-2.6.12-gentoo-r10。
接著要configure kernel,用Manual Configur
先安裝pci utility,用裡面的lspci command看看pci 的裝置有哪些
# emerge pciutils
到/usr/src/linux下
# make menuconfig
幾乎都沒改,除非用了奇怪的device開機,要記得開機的driver要compile in ,不可以compile成module。
save後就要make了 # make && make modules_install
...可以去作別的事了...
很久..如果cpu和ram少的話,更久。
(
http://www.gentoo.org/doc/en/handbook/2005.1/handbook-x86.xml?part=1&chap=7)
...大概花了20 min (3.1GP4, 2GRAM)
完成,將build好的kernel image copy到boot partition,並且給他一個新名字(因為linux kernel build好後一律叫bzImage)。
# cp arch/i386/boot/bzImage /boot/my1st
我把他叫做.. my1st
Config Kernel Module(
http://www.gentoo.org/doc/en/handbook/2005.1/handbook-x86.xml?part=1&chap=7)
因為沒有要在開機後自動load的,所以不用作
編輯 /etc/fstab
格式是
partition mountpoint filesystem mountoptions dumpoption fsckoption
mount option : default 是boot後自動mount, noauto 手動
dumpoption 的值是0或1,代表需不需要dump
fsckoption : 0(不需要), 1(root), 2(other)
我的是
/dev/sda1 /boot ext2 default ,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext2 noatime 0 1
mount option noatime是不需要作time register,可以加快反應。
(奇怪,make完後 vi竟然不見了..還是chroot 後就不見?)