星期四, 8月 04, 2005

Gentoo Installation Memo

準備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 後就不見?)

沒有留言:

網誌存檔