wiki:gentooinstallationtutorial
Wiki: Gentoo Stage3 Installation Tutorial
For IBM Thinkpad T40p
下载
下载 livecd 和 stage3,到 这里 找个mirror站点下载即可,最近的是在 ftp://ftp3.tsinghua.edu.cn/mirror/gentoo 或者 http://gentoo.osuosl.org/releases/x86/
分区
从livecd 启动,给硬盘分区。硬盘分为4个区,linux可以完全安装在扩展分区上, 可以用 cfdisk 或者 fdisk 这样强大的工具来分区,分区结果如下:
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 1460 11727418+ af Unknown
Partition 1 does not end on cylinder boundary.
/dev/hda2 * 1461 1947 3900960 7 HPFS/NTFS
Partition 2 does not end on cylinder boundary.
/dev/hda3 1948 9729 62508915 f W95 Ext'd (LBA)
Partition 3 does not end on cylinder boundary.
/dev/hda5 1948 3407 11727418+ 7 HPFS/NTFS
/dev/hda6 3408 6569 25394481 b W95 FAT32
/dev/hda7 6569 6575 52416 83 Linux
/dev/hda8 6576 6710 1084356 83 Linux
/dev/hda9 6711 7684 7823623+ 83 Linux
/dev/hda10 7685 9729 16426431 83 Linux
挂载分区
打开硬盘的DMA,装完系统后,下边这句可以写到 /etc/conf.d/local.start 中。
# hdparm -c 1 -d 1 /dev/hda
先格式化,然后挂载分区
# mke2fs /dev/hda7
# mkswap /dev/hda8
# swapon /dev/hda8
# mkfs.reiser4 /dev/hda9
# mke2fs -j /dev/hda10
# mount /dev/hda9 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda7 /mnt/gentoo/boot
# mkdir /mnt/gentoo/home
# mount /dev/hda10 /mnt/gentoo/home
# mkdir /mnt/gentoo/proc
# mount -t proc none /mnt/gentoo/proc
# mkdir /mnt/gentoo/dev
# mount -o bind /dev /mnt/gentoo/dev
分区表
1. 备份分区表信息:
# dd if=/dev/(your_disk) of=mbr.save count=1 bs=512
# sfdisk -d /dev/(your_disk) > partitions.save
The first of those saves the mbr and the second will store all partition info (including logical partitions, which aren't part of the mbr). 2. 还原分区信息:
# dd if=mbr.save of=/dev/(your_disk)
# sfdisk /dev/(your_disk) < partitions.save
从stage3安装
把stage3 压缩包解压到 /mnt/gentoo,使用参数p,保证不修改原来压缩包中的文件权限位。
# tar xvjpf /mnt/cdrom/stages/stage3-<subarch>-2006.0.tar.bz2
安装 portage
下载 portage 压缩包,解压到 /mnt/gentoo/
# tar xvjf /mnt/gentoo/portage-<date>.tar.bz2 -C /mnt/gentoo/
设置make.conf
根据T40p的硬件条件,几个主要的变量设置如下,USE 变量中必须的是 " cjk nls ntpl ntplonly ",强烈推荐使用稳定版本,也就是 x86:
CFLAGS="-march=pentium-m -O3 -pipe -fomit-frame-pointer"
#CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -ftracer -fomit-frame-pointer -ffast-math -momit-leaf-frame-pointers"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
LDFLAGS="-Wl,-O1"
#LDFLAGS="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
MAKEOPTS="-j3"
ACCEPT_KEYWORDS="x86"
USE="-fortran -arts -eds -ipv6 -qt -qt3 -qt4 -kde python -vorbis acpi X \
bash-completion cjk cups esd gtk2 imlib mime mmx mmxext nls aiglx alsa \
nptl nptlonly opengl oss posix readline sse sse-filters sse2 \
truetype unicode xft ati dri apm -apache -apache2 -xmms -ldap "
FEATURES="ccache parallel-fetch"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
VIDEO_CARDS=" radeon vesa vga"
INPUT_DEVICES=" keyboard mouse void synaptic"
LINGUAS="zh_CN"
GENTOO_MIRRORS="ftp://ftp3.tsinghua.edu.cn/mirror/gentoo"
#GENTOO_MIRRORS="http://gentoo.139pay.com"
#PORTDIR_OVERLAY="/usr/local/overlays/xgl-coffee"
PORTAGE_BINHOST="https://e.ututo.org.ar/i686/"
PORTAGE_BINHOST="http://gentoopackages.net/packages/i686/"
设置package.use
sys-libs/glibc userlocales
x11-terms/rxvt-unicode xft -iso14755
net-dialup/rp-pppoe -X
net-dialup/ppp -gtk
x11-base/xorg-x11 -3dfx -3dnow -bitmap-fonts -font-server -hardened -insecure-drivers -ipv6 -minimal mmx nls opengl pam -sdk sse sse2 -static truetype-fonts xv -type1-fonts -xprint
media-video/mplayer rtc avi encode esd mpeg quicktime real cdparanoia dvd dvdread ati win32codecs xvid -xmms cpudetection
mail-client/mutt imap pop mbox smime
dev-util/subversion -nowebdav
net-print/cups samba
安装准备
先复制resolv.conf到新系统
cp /etc/resolv.conf /mnt/gentoo/etc/
然后,chroot到gentoo的系统,开始安装
# chroot /mnt/gentoo /bin/bash
# env-update && source /etc/profile
更新portage
# emerge --sync
设置locale
根据 /usr/share/i18n/SUPPORTED,编辑文件 /etc/locale.gen
en_US.UTF-8 UTF-8
en_US ISO-8859-1
zh_CN GB2312
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN.GB18030 GB18030
设置时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改 /etc/conf.d/clock,设置
CLOCK="local"
设置正确的系统时间
# date MMDDhhmmYYYY
# hwclock --systohc
安装内核
从portage获取最新内核
# USE="-doc" emerge gentoo-sources
编译内核
# cd /usr/src/linux
# make menuconfig
# make && make modules_install
# cp arch/i386/boot/bzImage /boot/<kernel-version>
安装grub
使用命令grub-install脚本,把grub的stage等文件复制到 /boot/grub 中去 (grub-install只是一个shell脚本,通过调用grub命令来完成安装任务):
# grub-install /dev/hda
如果 /boot 为单独的分区,需要执行下边的命令:
# grub-install --root-directory=/boot /dev/hda
如果是mbr被损坏,要重新安装grub到mbr,在grub命令提示符下先用find寻找 stage1的位置,然后安装。
# grub
grub> find /boot/grub/stage1
(hd0,6)
grub> root (hd0,6)
grub> setup (hd0)
grub> quit
修改grub
比如刚才的取名为linux-2.6.16-r9,则在 /boot/grub/menu.lst 中添加:
default saved
timeout 3
hiddenmenu
title=Gentoo Linux
root (hd0,6)
kernel /linux-2.6.17-r8 root=/dev/hda9 ro
savedefault
title=Microsoft Windows XP Professional
rootnoverify (hd0,1)
savedefault
makeactive
chainloader +1
title=Mac OS X
root (hd0,0)
savedefault
makeactive
chainloader +1
boot
NT Loader
如果要跟windows到NT Loader配合,可以这样做:
1. 先取得grub到引导扇区内容
# dd if=/dev/hda7 of=bootsect.lin bs=512 count=1
2. 把bootsect.lin 复制到windows所在分区,比如c:\\,修改c:\\boot.ini
[boot loader]
timeout=10
default=C:\BOOTSECT.LIN
[operating systems]
C:\BOOTSECT.LIN="Gentoo Linux GRUB Bootloader"
multi(0)disk(0)rdisk(0)partition(0)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
安装软件包
必要的包
dbus
新型ipc,进程间新的通信协议
udev
比较新的系统,这个包已经包括在system中了
hotplug
管理USB和PCI热拔插的工具
coldplug
自动加载模块,比如插入u盘,则加载 usb_storage 等
syslog-ng
用于syslogd的日志工具
vixie-cron
用于cron的工具
ccache
增加编译效率,结合FEATURES变量使用
显卡3D
首先需要内核支持agp,如果要编译非内核自带的drm,那么 一定 要取消掉内核的 drm支持,编译内核时候make menuconfig如下:
Device Drivers --->
Character devices --->
<M> /dev/agpgart (AGP Support)
<M> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
< > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
< > ATI Radeon
因为drm是mesa必须依赖的包,则另外编译drm如下:
emerge -av libdrm x11-drm mesa mesa-progs
在启动模块中加入显卡相关模块 /etc/modules.autoload.d/kernel-2.6,如果不 添加的话,那么装了coldplug后,估计也可以自动识别。
intel-agp # your AGP chipset
agpgart
radeon
安装mesa驱动
如果要启动Aiglx的话,它已经内置到xorg-x11-7.1中了,编译之:
# emerge -av xorg-x11 xorg-server xf86-input-evdev xf86-input-mouse xf86-input-keyboard xf86-video-vga xf86-video-vesa xf86-video-ati
然后修改xorg.conf在对应处添加如下项目:
Section "Module"
Load "dri"
Load "drm"
# Load "GLcore"
EndSection
Section "DRI"
Group 0
Mode 0666
EndSection
Section "ServerLayout"
Option "AIGLX" "true"
EndSection
Section "Device"
Identifier "ATI FireGL 9000 Mobile[M9]"
Driver "ati"
VideoRam 65536
# Insert Clocks lines here if appropriate
BusID "PCI:1:0:0"
Option "BusType" "AGP"
Option "AGPMode" "4"
Option "EnablePageFlip" "true"
Option "RenderAccel" "on"
Option "UseInternalAGPGART" "no"
Option "mtrr" "on"
Option "ColorTiling" "on"
Option "OpenGLOverlay" "off"
Option "VideoOverlay" "on"
# Option "ReducedBlanking"
# This two lines are needed to prevent fonts from being scrambled
Option "XaaNoScanlineImageWriteRect"
Option "XaaNoScanlineCPUToScreenColorExpandFill"
Option "XAANoOffscreenPixmaps" "true"
Option "DRI" "true"
Screen 0
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Section "Screen"
DefaultDepth 24
EndSection
修改 /etc/env.d/03opengl,使用命令
eselect opengl set xorg-x11
安装ati-drivers
**此为闭源驱动,无法使用Aiglx。**注意安装完成之后: 1. 修改 /etc/X11/xorg.conf,设置
Section "Device"
Identifier "fglrx"
Driver "fglrx"
VideoRam 65536
BusID "PCI:1:0:0"
...
2. 修改 /etc/env.d/03opengl,使用命令
eselect opengl set ati
或者直接修改该文件
LDPATH="/usr/lib/opengl/ati/lib"
OPENGL_PROFILE="ati"
安装无线网卡
T40p不是迅驰机,采用的是Dual无线网卡,lspci可以看到:
02:02.0 Ethernet controller: Atheros Communications, Inc. AR5211 802.11ab NIC (rev 01)
所以安装madwifi-ng驱动支持,辅助的工具安装wireless-tools和 wpa_supplication,前者提供iwconfig,后者提供wpa加密网络的便捷支持。推荐的 GUI设置工具为network-admin,此工具包含在gnome-system-tools包中,我在安装 过程中发觉唯独丢掉了network-admin这个工具,可以修改 gnome-system-tools-2.14.0.ebuild中第35行为:
G2CONF="${G2CONF} --enable-boot --enable-services --enable-network"
另外值得推荐的工具是networkmanager,不过在-x86中是被mask的,因为还不稳 定,事实使用过程中也常常crash :P
# emerge -av madwifi-ng wpa_supplication gnome-system-tools networkmanager
如果启用NetworkManager来管理网络设备的话,需要先把net.*从runlevel里边删 除,然后添加NetworkManager到default的runlevel。
# rc-update delete net.eth0 net.lo
# rc-update add NetworkManager default
无线网卡的配置
使用GUI工具的话配置很简单,需要知道的东西是无线网络的ESSID和加密方式,加 密方式包括是否加密和加密的用户名密码。
pam_keyring
使用NetworkManager来管理的话,有一个令人厌烦的地方是,每次启动后 gnome-keyring会提醒你输入密码,可以安装pam_keyring来解决;装完 pam_keyring后,编辑文件 /etc/pam.d/gdm,加入如下内容:
auth optional pam_keyring.so try_first_pass
session optional pam_keyring.so
如果不幸你曾经输入的keyring密码和你的登录密码不一致,因为当前的 gnome-keyring没有机制修改密码,所以你需要首先杀死gnome-keyring-daemon进 程,然后删除keyring文件 ~/.gnome2/keyrings,然后重新登录设置匹配的密码。
world
自行使用emerge命令安装过的软件包名都记录在 /var/lib/portage/world 中了:
Beryl+Gnome-light构建桌面
现在的桌面采用Beryl+Gnome-light,放弃了使用很久的fvwm。
Gnome中常用的工具有
evince
阅读pdf,dvi
eog
看图
rhythmbox
音乐播放
nautilus
资源管理器
gnome-applets
包含network, battery monitor,放在工具栏很方便
gnome-cups-manager
打印机管理
gnome-volume-manager
磁盘卷管理器,记得 把用户加入 plugdev 组
gnome-system-tools
其中的network-admin比较方便
networkmanager
网络管理,方便切换wired和wireless,用来替代baselayout
Beryl相关
beryl
beryl window manager
emerald
decoration
系统相关
acpid
acpi daemon
baselayout
基础脚本,启动脚本
cpufreqd
发挥pm的speedstep功能,对nb很有用,需要内核支持
hibernate-script
搭配ibm-acpi用于nb休眠
gentoolkit
gentoo工具集 equery, quickpkg ...
eix
快速的portage查询工具
wireless-tools
无线管理工具
wpa_supplicant
加密无线管理工具
显示相关
libdrm, x11-drm, mesa, mesa-prog
其他的资源
fetchmail, procmail, ssmtp
构建邮件系统
gnome-audio
事件动作的声音文件
localpurge
自动删除不需要的locale文件,节省磁盘空间(>100M)
hal
硬件抽象层,结合udev管理热拔插设备
mutagen
mp3 tag管理工具
quake3-teamarena
quake III :) 记得需要原版ISO中的.pak资源文件
antiword
把word文档转为txt文档 赞!
jimmac-xcursors
ubuntu中的仿mac milk光标
stardict, stardict-langdao-zh-en-gb, stardict-langdao-en-zh-gb, sdcv
字典以及命令行字典
设置
设置加载模块
在 /etc/modules.autoload.d/kernel-2.6 中设置自动加载的模块,比如:
agpgart
intel-agp
fglrx
button
ibm-acpi
nvram
psmouse
ide-cd
speedstep-centrino
loop
设置启动项
启动等级(runlevels)一般分成了boot, defalut, nonetwork 和 single,这可以在 /etc/runleveles 目录下找到对应关系。
rc-config 可以用来查看各个启动等级中启动的项目,要想添加和删除启动项目,可以使用 rc-update 命令。这些命令其实就是对 /etc/runlevels 目录的操作,比如添加 acpid 到 default 启动项目,就是在 /etc/runlevels/default 中增加了指向 /etc/init.d/acpid 的符号链接:
# rc-update add acpid boot
# rc-update add alsasound boot
# modules-update
设置fstab
# <fs> <mountpoint> <type> <opts> <dump/pass>
/dev/hda7 /boot ext2 defaults 1 2
/dev/hda8 none swap sw 0 0
/dev/hda9 / ext3 defaults 0 1
/dev/hda10 /home ext3 defaults 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda6 /home/wine vfat defaults,shortname=mixed,utf8,fmask=133,dmask=022,uid=nini,gid=users 0 0
/dev/hdc /mnt/cdrom iso9660 ro,noauto,user,utf8 0 0
添加用户
# useradd nini -m -G users,wheel,portage,audio,games -s /bin/bash
# passwd nini
重启
创建stage4档
当系统全部搞定,而且清洁之后,可以备份整个系统或者备份根分区到一个地方,方便以后 快速恢复,可以用samba备份到nt机器上去,或者其他怎么的都可以 :) 下边是备份了根分 区,制作stage4:
# emerge samba
# mount -t smbfs -o username=julian //192.168.0.23/backup /mnt/smb
# cd /
# tar cjpf /mnt/smb/gentoo.tar.bz2 / --exclude=/proc/* --exclude=/tmp/* \
--exclude=/var/tmp/* --exclude=/boot/* --exclude=/usr/portage/distfiles/* \
--exclude=/usr/portage/packages/* --exclude=/usr/src/* --exclude=/home \
--exclude=/var/log/* --exclude=/sys/* --exclude=/dev/* --exclude=/mnt/*
其他安装方法
安装livecd
关键步骤:解压livecd到自己的硬盘
# mkdir /mnt/squashfs
# mount -o loop /mnt/livecd/livecd.squashfs /mnt/squashfs
# cp -a /mnt/squashfs /mnt/gentoo/
设置
1. 安装grub
# grub-install --root-directory=/mnt/gentoo --no-floppy hd0
2. 设置 menu.lst
default 1
timeout 30
splashimage=(hd0,7)/boot/grub/splash.xpm.gz
title=Gentoo Linux 2.6.16-r6
root (hd0,7) kernel /boot/kernel-genkernel-x86-2.6.16-gentoo-r6 root=/dev/ram0 real_root=/dev/hda9 init=/linuxrc ramdisk_size=8192
udev vga=791 splash=silent,theme:livecd-2006.0 CONSOLE=/dev/tty1 quiet
initrd /boot/initrd-genkernel-x86-2.6.16-gentoo-r6
title=Windows XP root (hd0,0) makeactive chainloader +1
3. 最后汉化一下,装些中文字体
系统维护
对系统的维护可以以portage为基础,围绕world来展开,基本的portage系统配置 文件是:
/etc/make.conf 基本编译配置
/etc/portage/ 基本portage配置目录
/var/lib/portage/world
根据系统重新生成world文件
regenworld
升级系统,其中u升级、D深度审查依赖树、a提示询问、v详细提示
emerge --sync && emerge -uDN world
根据world清理不需要的包
emerge -v depclean
重建依赖关系树,可以挽回上一步误删的包
revdep-rebuild -v
修补安全漏洞 Gentoo Linux Security Advisor,或者 emerge security。
glsa-check -f all
會將系統升級到 "最新的 Gentoo"。
ebuild用法
使用低阶的ebuild,ebuild是低阶的工具,允许你一次一步的执行安装进程。这较为安全是 因为允许你在永久的改变前看到文件都将放到哪里。
# ebuild /usr/local/portage/category/program/program-version.ebuild unpack
# ebuild /usr/local/portage/category/program/program-version.ebuild compile
# ebuild /usr/local/portage/category/program/program-version.ebuild install
这三步操作完全在 /var/tmp/portage/program/ 下工作,这样就不会搞乱你的系统了。 portage环境变量存放在称为 build-info/ 和 temp/ 的子目录里,编译器输出到 work/ 目 录。install操作创建另一个称为image/ 的子目录,在这里执行“预安装”,现在到 image/ 目录
ebuild /usr/local/portage/category/program/program-version.ebuild qmerge
完成安装文件到你生活的系统中。你可能还需要使用 ebuild的 postinst 或者 clean 功 能,他们也在ebuild的man 页里描述。