2008年7月25日星期五

我的Gentoo之路

Gentoo的GTK+ Installer和终端的Installer实在不敢恭维啊!稳定性和速度都十分欠佳。速度慢,经常崩溃和失败,就是这两个东西的特点。看来Gentoo的易用性方面还得增强哦!

可是Gentoo还是弄的,怎么办?只能用stage3开始了。我弄Gentoo的时候,还真万般艰辛啊!主要是有些东西自己去尝试,结果还得要重新开始!所以我这一次就记录下方法,方便以后的重新构建。好,马上来!

第一步,原来的系统或LiveCD系统能够上网,所以要设置好网络,否则,Gentoo是装不了的,除非你把软件包度逐个逐个下载手动编译拉。特别是用LiveCD安装的朋友,要多加注意这一点哦!不过我是在原有的Ubuntu系统上面弄的,所以就没有配置,这一步我就省略了。

第二步,就得要配置磁盘了,简单些来说就是要划分分区和建立文件系统。这里无非就是fdisk和mkfs两个命令的使用。以我的硬盘为例:
fdisk /dev/sdx //x为第几个硬盘,a为第一个,b为第二个,由此类推
Command (m for help): n //建立新分区
Command (m for help): p //待完全建立好所有分区时,查看分区表
Command (m for help): w //保存分区布局并退出fdisk
之后就是建立文件系统
mkfs.ext3 /dev/sda1
mkfs.ext3 /dev/sda3
mkswap /dev/sda2 //建立交换分区
swapon /dev/sda2 //激活交换分区
随后就是挂载文件系统
mkdir /mnt/gentoo //建立Gentoo的根分区
mount /dev/sda3 /mnt/gentoo //挂载根分区
mkdir /mnt/gentoo/boot //建立Gentoo的启动分区
mount /dev/sda1 /mnt/gentoo //挂载启动分区

第三步,安装stage3 tarball。这是关键的一步,虽然这一步很见到,但是弄不好则构建Gentoo失败。首先从网上下载stage3的tarball和portage的快照,这两个文件包在Gentoo的各个镜像服务器均可以下载。然后把这恋歌文件包放到/mnt/gentoo目录里解压。过程就是这么简单!
cd /mnt/gentoo //打开/mnt/gentoo
tar xvjpf stage3-*.tar.bz2 //解压stage3 tarball
tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr //解压protage的快照

第四步,配置编译选项。这个是Gentoo的精髓。你可以通过设置这个配置文件来优化你的Gentoo,当然你需要获得这种有话,还得把软件重新编译一次。呵呵!
vim /mnt/gentoo/etc/make.conf
下面请参考我的make.conf
设置完毕,保存以后,就得继续下一步。

第五步,完成安装Gentoo基本系统前的琐屑事情。主要还是一些关于网络的东西
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf //使用mirrorselect更新GENTOO_MIRRORS变量
mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf //使用mirrorselect选择rsync镜像站点
当然以上两步可以在之前的配置编译选项那里手动设定,至于源地址和同步目录树镜像的列表,你大可以在Google那里搜索到适合你的服务器地址。
cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf //复制DNS信息。
当然,如果你是DHCP获取IP地址的用户,大可不必理会这个选项。如果是静态IP(static IP)和网桥的用户,这个是非常必要的。否则你就无法使用portage。至于你是PPPoE或者其他上网方式的用户,你可以参考Gentoo的手册和wiki!
mount -t proc none /mnt/gentoo/proc //将/proc文件系统挂载到/mnt/gentoo/proc,这样chroot后的环境里安装时也可以获取内核提供的相关信息
mount -o bind /dev /mnt/gentoo/dev //以bind方式挂载/dev文件系统
emerge vim //(可选)安装vim文本编辑器,虽然stage3的tarball自带了nano编辑器,但是我习惯了用vim所以特地编译一个vim,当然你也可以选择emacs拉!

第六步,进入Gentoo新环境
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"

第七步,配置内核。呵呵,终于到了最困难的一步咯。小心认真阅读哦!
首先得先同步一次portage,以便保证以后下载的软件包是最新的。
emerge --sync
emerge axel //安装axel,据闻安装这个东东下载速度很快,不过我就是不觉得,哈哈!
emerge -pv =gcc-4.3.1-r1 //更新gcc到4.3.1-r1
emerge ccache //安装ccache,对于提升编译速度很有作用
emerge gentoo-sources //下载Linux内核的源代码,稍后需要编译
emerge genkernel //(可选)用于自动配置和编译

当然,作为用户的你,你可以选择自动配置或者手动配置Linux内核。不过,我不得不告诉你一件事情:使用genkernel配置Linux内核是没有编译硬件虚拟化的模块,既没有编译进内核,也没有编译成模块。如果你需要硬件虚拟化的功能和特性,这不得不说是一个遗憾。同时如果没有编译这个模块的话,portage是不会自动帮你安装nVIDIA的显卡驱动程序,因为它需要内核的硬件虚拟化支持。

第八步,安装启动管理器!没有它,你休想启动你的Gentoo啊!!嘿嘿!!
emerge grub //安装grub,GNU的启动管理器。
安装以后还得配置grub.conf,一下是一个参考例子。
利用genkernel配置内核的例子
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.24-r5
root (hd0,0)
kernel /boot/kernel-genkernel-x86-2.6.24-gentoo-r5 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/sda3 udev
initrd /boot/initramfs-genkernel-x86-2.6.24-gentoo-r5

手动配置内核的例子
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux 2.6.24-r5
root (hd0,0)
kernel /boot/kernel-2.6.24-gentoo-r5 root=/dev/sda3
title Gentoo Linux 2.6.24-r5 (rescue)
root (hd0,0)

kernel /boot/kernel-2.6.24-gentoo-r5 root=/dev/sda3 init=/bin/bb
这还得要创建/etc/fstab磁盘挂载表啊!
vim /etc/fstab
以下为一个完整的/etc/fstab分区挂载表
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / ext3 noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
配置结束,reboot就可以进入我们的Gentoo世界

(可选)第九步,安装系统工具
emerge syslog-ng //安装系统日志工具
rc-update add syslog-ng default
emerge vixie-cron //安装cron守护进程
rc-update add vixie-cron default
emerge slocate //安装slocate文件索引
USE="-gtk" emerge evms //安装EVMS工具
emerge dhcpcd //安装DHCP客户端,如果你需要Gentoo为你的网卡自动获得IP地址,你需要安装dhcpcd,否则无法连接网络
emerge ppp //安装PPPoE客户端,如果你需要ppp来连接网络,你需要安装它。

Oh! All the installation have ended! This is my road to Gentoo world! Well, we should start to enjoy Gentoo!

Go! Let's go! Go to enjoy Gentoo

没有评论:

发表评论