|
|
使用Gentoo 2005.1重新安装系统之记录
by 7dehao
写在前面的一些废话
为了重新调整硬盘上的分区布局,打算重装gentoo,但是,不幸发生了一次误操作,/data分区上的30G的数据也被rm -rf掉了 。由于一年多没有装过系统了,因此,动作生疏得很,为了应对将来的某一天(或许是明年的今天)可能会发生的重装系统的事情,故特此在这里写一份安装记录。不过,但愿今后不要用到。
由于/data分区所在的/dev/hdb2分区是reiserfs文件系统,因此,参考北南写的《reiserfs文件系统反删除(Undelete)操作的实践》一文http://fedora.linuxsir.cn/main/?q=node/118
#umount /data
#reiserfsck --rebuild-tree -S -l undelete.log /dev/hdb2
#mount /data
恢复了大部分数据(80%),还有20%的数据没有恢复出来,都是文本文件和图片。最近的光盘上的备份是在今年1月份的,损失极其惨重。看来真的应该考虑买个DVD刻录机了。
安装开始
1、按照官方的说明,先运行date看看日期是否正确。
2、下载2005.1的liveCD,我下载的是60多M的mini版,引导进入后,界面很好看,先用net-setup eth0配置网络。我是用路由器自动拨号adsl上网的,所以,本机只要配置一个静态ip就可以了,同时写上DNS解析的地址。
3、用fdisk分区
#fdisk /dev/hda
分区的结果示意如下,注意,文件系统的选用纯属个人操作,不一定科学:p
/dev/hda5 /boot ext3 150M
(可能用ext2文件系统会更好,因为ext2文件系统里的文件被删除后还是可以恢复的,而ext3则不能恢复被删除的文件,而reiserfs文件系统在rescue模式下不一定被支持──在gentoo下不存在这个问题,而redhat则要注意这个问题)。
/dev/hda6 / ext3 3G
/dev/hda7 /home reiserfs 512M
(reiserfs文件系统比ext3更省空间)
/dev/hda8 /opt reiserfs 3G
/dev/hda9 /tmp reiserfs 2G
/dev/hda10 /var reiserfs 5G
(gentoo编译软件时都是利用/var/tmp/portage目录,如果你还装有ccache的话,则会使用/root/.ccache和/var/tmp/ccache两个目录,个人用户系统中的日志文件倒是不会占很大的空间。当/var目录被占满100%后,整个系统会出现不可预料的错误和问题,大家最好经常用df -h命令查看一下各个分区的情况)
/dev/hda11 /usr reiserfs 10G
(/usr/portage目录,有其是/usr/portage/distfiles目录是占空间最大的,不过根据这一年多来的使用情况看,分个10G是足够用的了)
/dev/hda12 /material reiserfs 25G
(放些数据资料)
/dev/hdb1 swap 1G
(我的内存是512M,swap的大小一般在内存大小的1.5到2倍,最大不超过2G,swap可以为我的各个Linux OS所共享)
/dev/hdb2 /data reiserfs 30G
(一个让我看到伤心的分区名,今后大家在打算rm -rf *时应该再三检查一下才是)
/dev/hdb3 /sofeware reiserfs 30G
(如果不是系统在不能删除一个被挂载分区/data时出了一个警告的话,我是不会想到要赶快按下ctrl+c的,不然的话,这个分区上的数据也要损失大半了)
/dev/hdb6 /films reiserfs 10G
(在hdb5上有一个测试用的gentoo,hdb6上本来也是一个linux,现在在gentoo下用惯了,就改成放片片的了)
4、格式化
ext3文件系统用mke2fs -j /dev/hda5
reiserfs文件系统格式化用mkfs.reiserfs /dev/hda12,如果在本地系统上初用reiserfs文件系统的话,就要先emerge sys-fs/reiserfsprogs来获得mkfs.reiserfs工具。
5、挂载分区
先挂载/分区,然后再挂载其他分区
#mount /dev/hda6 /mnt/gentoo
#cd /mnt/gentoo
#mkdir boot home opt tmp var usr ......
再挂载上其他的分区。
6、将stage1包解压到/mnt/gentoo,生成完整的目录
#tar jfvx stage1-x86-2005.1.tar.bz2 -C /mnt/gentoo
7、将本地的DNS解析配置文件复制到目的gentoo下
#cp /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
8、
#mount -t proc none /mnt/gentoo/proc
9、切换到目标系统
#chroot /mnt/gentoo /bin/bash
10、更新环境
#env-update
11、
#source /etc/profile
12、编辑/etc/make.conf,在我第一次编译的时候,沿用了旧有的make.conf,但是在emerge -e system的时候出了问题,有冲突。我发现应该是make.conf中的USE写得太复杂的原故,在给make.conf减肥之后,emerge -e system就没有问题了。
- CFLAGS="-O2 -march=pentium4 -mmmx -msse -msse2 -pipe -fomit-frame-pointer"
- CHOST="i686-pc-linux-gnu"
- CXXFLAGS="${CFLAGS}"
- USE="nptl nptlonly cjk nls zh_CN zh_TW alsa dvd cdr xmms mp3 gtk gtk2 \
- gnome -kde -qt -arts -ipv6 -cups -emacs \
- -xemacs -doc java \
- acpi -eds unicode font-server \
- mozsvg glitz \
- cairo -mozilla -esd "
- GENTOO_MIRRORS="http://ftp.gentoo.or.kr/ \
- http://gentoo.139pay.com/ \
- http://mirror.espri.arizona.edu/gentoo/ "
- SYNC="rsync://gentoo.139pay.com/gentoo-portage"
- #SYNC="rsync://gentoo.kems.net/gentoo-portage"
- ACCEPT_KEYWORDS="~x86"
- FEATURES="sandbox ccache sfperms"
- CCACHE_SIZE="2G"
- KEYWORDS="~x86"
- IUSE="accessibility cdr dvdr hal"
- NROFF="/usr/bin/nroff -mandoc -c"
复制代码
13、安装portage树
#emerge sync
这个命令吧portage树升级到了最新,但是,这里有一个问题要注意,就是最新的portage不一定就是没错误的,我在这此安装中就碰到了这个问题20051210的portage就是一个有问题的,其中的网络部分(net-tools)有问题,本来我是不准备用liveCD的,但是,我在本地硬盘上的另一个供测试的gentoo上emerge sync后网络就出了问题。于是,我只好使用liveCD来安装,我把portage降到20051203后,重新emerge -e net-tools后正常。
14、stage1
#./usr/portage/scripts/bootstrap.sh
我只好用liveCD来安装gentoo了,一开始并没有想到portage中的ebuild会有问题,所以,在新系统中还是用了emerge sync,但是发现20051210的portage中的这个bootstrap.sh脚本也是有问题的,根本就不能运行。所以就被迫降到20051203的portage上了。
15、stage2
在emerge -e system之前先要做些预备工作,就是把系统的编码设定为UTF-8。
参考gentoo的官方文档:
调整/etc/locales.build文件的内容,注意写法:
- en_US/ISO-8859-1
- en_US.UTF-8/UTF-8
- zh_CN/GB2312
- zh_CN.UTF-8/UTF-8
- zh_CN.GBK/GBK
- zh_CN.GB18030/GB18030
复制代码
#echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
#echo "LC_ALL=en_US.UTF-8" >> /etc/env.d/02locale
使系统console支持UTF-8
确认>=sys-apps/baselayout-1.11.9(这里不存在这个问题)
编辑/etc/rc.conf
UNICODE="yes"
编辑/etc/conf.d/keymaps
KEYMAP="us"
#env-update && source /etc/profile
(使新环境生效)
#emerge -e system
这要等很长的时间,大家休息一下。
16、stage3
在安装内核前,先安装一些工具。
#emerge ccache
加快编译的速度。前期工作在make.conf中已经作好。现在只要在/etc/env.d/00basic文件中修改一下PATH的值就可以了。
PATH="/usr/local/bin:/opt/bin:/usr/lib/ccache/bin"
重新更新环境
#env-update && source /etc/profile
#emerge gentoolkit
添加一些有用的工具。由于比较急,其他工具在系统安装好后再慢慢添加不迟。
#emerge gentoo-sources
(下载的是2.6.14-gentoo-r4)
编译安装内核
#cd /usr/src
#ln -sf linux-2.6.14-gentoo-r4 linux
#cd linux
#make menuconfig
做选项的时候要注意对utf-8的支持。
File System-->Native Language Support-->(utf8)Default NLS Option
<*>NLS UtF8
File System-->Dos/FAT/NT Filesystems-->(437)Default codepage for fat
注意,应避免把fat的Default iocharset设成UTF-8,设成cp936就可以了。
Device Drivers-->Input Device Drivers-->Miscellaneous devices--><M> C Speaker support
支持主机的小喇叭
把pcspkr添加到/etc/modules.autoload.d/kernel-2.6文件中
另外要注意的就是声卡驱动都要编译成模块,否则以后的多媒体程序会调用不了。
#make && make modules_install
#cp System.map /boot/System.map-2.6.14-r4
#cp arch/i386/boot/bzImage /boot/kernel-gentoo-2.6.14-r4
#cp .config /boot/config-2.6.14
#cd /boot
#ln -sf System.map-2.6.14-r4 System.map
#ln -sf kernel-gentoo-2.6.14-r4 kernel-gentoo
做链接的目的在于方便将来在grub.conf文件中书写,以后即使更新了内核,也只要重做链接就可以了,就可以省去修改grub.conf的步骤。
17、更新模块
#modules-update
18、设置时区
#ln -sf /usr/share/zoneinfo/UTC /etc/localtime
在/etc/conf.d/clock文件中,CLOCK="UTC"
如果是用/usr/share/zoneinfo/Asia/Shanghai的话,则CLOCK="local"
19、编辑/etc/fstab文件
- # See the manpage fstab(5) for more information.
- # <fs> <mountpoint> <type> <opts> <dump/pass>
- # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
- /dev/hda5 /boot ext3 defaults 1 2
- /dev/hda6 / ext3 defaults 1 1
- /dev/hdb1 none swap sw 0 0
- /dev/hda7 /home reiserfs defaults 1 2
- /dev/hda8 /opt reiserfs defaults 1 2
- /dev/hda9 /tmp reiserfs defaults 1 2
- /dev/hda10 /var reiserfs defaults 1 2
- /dev/hda11 /usr reiserfs defaults 1 2
- /dev/hdb2 /data reiserfs defaults 1 2
- /dev/hdb3 /software reiserfs defaults 1 2
- /dev/hdb6 /films reiserfs defaults 1 2
- /dev/hda12 /material reiserfs defaults 1 2
- /dev/hdc /mnt/cdrom iso9660 user,noauto,ro 0 0
- /dev/hdd /mnt/cdr iso9660 user,noauto,rw 0 0
- #/dev/fd0 /mnt/floppy auto noauto 0 0
- # NOTE: The next line is critical for boot!
- proc /proc proc defaults 0 0
- # glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
- # POSIX shared memory (shm_open, shm_unlink).
- # (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
- # use almost no memory if not populated with files)
- shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
复制代码
20、设置root密码,建立普通用户
#passwd
#useradd dehao -m -G wheel,audio,game -s /bin/bash
#passwd dehao
对于一个已经存在的用户,可以用gpasswd命令把用户加入到某个组中
# gpasswd -a dehao games
21、设置主机名
编辑/etc/conf.d/hostname文件
HOSTNAME="7dehao"
编辑/etc/hosts文件
添加一行192.168.1.3 7dehao
如果不加这行的话,起动gnome的时候会提示找不到主机名。
22、安装引导器
#emerge grub
#grub
grub>root (hd0,4)
grub>setup (hd0) 安装到/dev/hda的MBR上
grub>quit
#nano -w /boot/grub/grub.conf
- default 1
- timeout 10
- splashimage=(hd0,4)/grub/splash.xpm.gz
- title Windows 2000
- rootnoverify (hd0,0)
- chainloader +1
- boot
- title Gentoo Linux
- root (hd0,4)
- kernel (hd0,4)/kernel-gentoo ro root=/dev/hda6
- title test
- root (hd1,4)
- kernel (hd1,4)/boot/kernel-gentoo ro root=/dev/hdb5
复制代码
23、退出chroot环境
#exit;exit
#reboot
进入新系统。
24、配置网络
如果引导正常的话,就可以开始配置网络了。
#nano -w /etc/conf.d/net
在/etc/conf.d/目录下本来只有net.example文件,把net.example拷贝成net,不要用mv,否则你改坏掉net文件后还可以重新拷贝。
config_eth0=( "192.168.1.3 netmask 255.255.255.0 broadcast 192.168.1.255" )
routes_eth0=( "default gw 192.168.1.1")
你还可以重新修改一下/etc/resolv.conf,添加一个备用的DNS解析的地址。
nameserver 202.96.209.5
nameserver 202.96.209.133
在/etc/modules.autoload.d/kernel-2.6文件中加入我的网卡的模块名tg3
25、现在可以安装桌面了,但是原来的make.conf太简单了,现在要换一个复杂点的。
- CFLAGS="-O3 -march=pentium4 -mfpmath=sse,387 -msse2 -mmmx
- -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-cse-after-loop
- -frerun-loop-opt -falign-functions=4 -pipe"
- CHOST="i686-pc-linux-gnu"
- CXXFLAGS="${CFLAGS}"
- USE="nptl nptlonly cjk nls zh_CN zh_TW alsa dvd cdr xmms mp3 gtk gtk2 \
- gnome gtkhtml icc icc-pgo -kde -qt -arts -ipv6 -cups -emacs \
- -xemacs -doc real xvid nvidia win32codecs xinerama java aalib aac \
- mng vcd directfb a52 svga mmxext bl bidi cpudetection \
- custom-cflags dvdread ggi acpi -eds unicode font-server sdk ffmpeg \
- dts quicktime tiff firefox mozsvg nas theora speex flac glitz \
- cairo tcltk ucs2 -mozilla xml pic -esd stream mmx sse i8x0 \
- imagemagick sse2 live dvdr gecko-sdk "
- GENTOO_MIRRORS="http://ftp.gentoo.or.kr/ \
- http://gentoo.139pay.com/ \
- http://mirror.espri.arizona.edu/gentoo/ "
- SYNC="rsync://gentoo.139pay.com/gentoo-portage"
- #SYNC="rsync://gentoo.kems.net/gentoo-portage"
- ACCEPT_KEYWORDS="~x86"
- FEATURES="sandbox ccache sfperms"
- CCACHE_SIZE="2G"
- KEYWORDS="~x86"
- IUSE="accessibility cdr dvdr hal"
- NROFF="/usr/bin/nroff -mandoc -c"
复制代码
#emerge --update --deep --newuse world
#revdep-rebuild
为了将来可以使用快的系统,现在慢一下是值得的。
#emerge gecko-sdk
#emerge gnome
#emerge nvidia-glx nvidia-kernel nvidia-settings
把nvidia也添加到/etc/modules.autoload.d/kernel-2.6
配置x
#xorgconfig
修改/etc/X11/xorg.conf
#rc-update add xfs default
#opengl-update nvidia
#emerge module-init-tools
#modprobe -a nvidia
26、中文配置(对盗版过敏者可以跳过)
复制simsun.ttf和tahoma.ttf到/usr/share/fonts/TTF下
在该目录下执行fc-cache命令
修改/etc/fonts/fonts.conf文件
对于每一块字体定义部分<family>......</family>,增加
<family>Tahoma</family>和
<family>SimSun</family>
先写Tahoma,后写SimSun。
另外,为了使gtk1程序支持unicode,在用户主目录下建立一个.gtkrc文件
- style "user-font"
- {
- fontset="-misc-fixed-*-*-*-*-*-*-*-*-*-*-iso10646-1"
- }
- widget_class "*" style "user-font"
复制代码
QT和GTK2程序都是支持unicode的。
/etc/gtk-2.0/gtkrc
- style "default"
- {
- font_name="Tahoma,SimSun 10"
- }
- widget_class "*" style "default"
复制代码
/etc/gtk/gtkrc.zh_CN
- style "gtk-default-zh-cn" {
- fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-15,\
- -*-SimSun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"
- }
- class "GtkWidget" style "gtk-default-zh-cn"
复制代码
27、设置鼠标
修改/etc/X11/xorg.conf文件
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "IMPS/2"
- Option "Device" "/dev/input/mice"
- Option "ZAxisMapping" "4 5"
复制代码
28、配置alsa
#emerge alsa-utils
#alsaconf
#rc-update add alsasound boot
如果失败的话用
#alsactl store
#alsaconf
/etc/modules.d/alsa
alias snd-card-0 snd-intel8x0
alias sound-slot-0 snd-intel8x0
29、启动进入桌面
安装输入法
#emerge fcitx
安装X下的数字键开关
#emerge numlockx
编辑X启动时的配置文件
#vi ~/.xinitrc
- export LC_ALL=zh_CN.UTF-8
- export LANG=zh_CN.UTF-8
- export XMODIFILERS="@im=fcitx"
- export XIM=fcitx
- export XIM_PROGRAM=fcitx
- export GTK_IM_MODULE=XIM
- fcitx &
- exec /usr/X11R6/bin/numlockx &
- exec gnome-session
复制代码
如果想在纯文本界面下默认开启小键盘上的数字键的话
#emerge numlock
#rc-update add numlock default
提高一下硬盘的性能
#rc-update add hdparm default
进入桌面
#startx
进入gnome后可能会发现没有音量调节,这可能是我们没有使用hal这个USE的原故,加上这个USE后重新编译gnome-applets就可以了。
在安装liferea时,需要使用USE="-firefox mozilla",这个软件只能在mozilla的USE下编译成功。
30、最后,有几个临时目录下的文件是可以被安全删除的。
/var/tmp/ccache/
/var/tmp/portage/
/tmp/
/root/.ccache/
/usr/portage/distfiles/
删除的时候注意一下,不要误删了哦!
后记
我这个人对事物往往是不求甚解的,所以上面的叙述中难免有错误和让大家笑话的地方,希望大家能够回贴指出错误和可以改进的地方,谢谢! |
|