[原]开始安装Gentoo

 Gentoo的安装说难不难,说容易也不容易。其实只要你了解linux的基本原理,安装还是比较顺利的。我这里只是列举一下我所操作的步骤,相关的命令和原理介绍,请参考Gentoo官方安装文档。
1、选择安装介质
 考虑到网络下载的速度较慢,我使用的是Gentoo Universal Installation CD,使用stage 3安装方式。(stage1和stage2在新的版本里面已经没有支持了)
 刻录Gentoo Universal Installation CD后,使用光盘启动即可。
2、设定网络
 我不习惯在本地进行linux的操作,所以先设置好网络,以方便远程安装。(这也有助于后面编译大型软件,节省时间)
 先用ifconfig看看是否正常加载了驱动,否则使用下面的命令加载驱动模块(以8139网卡为例)

modprobe 8139too

 若是用虚拟机进行的,加载pcnet32模块。
 然后设定网络参数:

ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
route add default gw ${GATEWAY}

 用实际的地址替换上面的参数。如还需要支持DNS的话,修改/etc/resolv.conf文件,增加如下参数:

引用
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

※也可以使用net-setup eth0脚本来设置。
 另外,对于ADSL、无线网络的接入方式,可以使用adsl-setup和iwconfig来配置。
3、分区
 接下来需要进行的就是分区的操作,需要留意的一点就是硬盘可以支持的分区数量:一个硬盘可以支持的主分区最多只有4个,但启动一个可以划分为扩展分区,扩展分区里面再划分逻辑分区。linux下标记由hda1到hda4为主分区,hda5开始为逻辑分区。
 linux最少需要一个swap分区和一个根分区。它们都可以基于物理磁盘的主分区和逻辑分区上。
 使用fdisk命令进行分区,预期分区格式如下:

引用
/dev/hda1 /boot 32M
/dev/hda2 /        10G
/dev/hda3 swap  512M
/dev/hda5 /usr    20G
/dev/hda6 /var    10G
/dev/hda7 /home   10G
/dev/hda8 /opt     11G

最后结果如下:

引用
# fdisk -l

Disk /dev/hda: 61.4 GB, 61492838400 bytes
255 heads, 63 sectors/track, 7476 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1           5       40131   83  Linux
/dev/hda2               6        1222     9775552+  83  Linux
/dev/hda3            1223        1285      506047+  82  Linux swap / Solaris
/dev/hda4            1286        7476    49729207+   5  Extended
/dev/hda5            1286        3718    19543041   83  Linux
/dev/hda6            3719        4935     9775521   83  Linux
/dev/hda7            4936        6152     9775521   83  Linux
/dev/hda8            6153        7476    10634998+  83  Linux

4、建立文件系统
 我比较怀旧,还是选择了ext3。命令如下:

mkfs.ext3 /dev/hda1

 swap分区需要激活:

mkswap /dev/hda3
swapon /dev/hda3

 激活后,用top可以看到swap已经生效。
 接下来就是挂载到系统上。(小心先后顺序问题)

livecd ~ # mount /dev/hda2 /mnt/gentoo
livecd ~ # mkdir /mnt/gentoo/boot
livecd ~ # mount /dev/hda1 /mnt/gentoo/boot/
livecd ~ # mkdir /mnt/gentoo/usr
livecd ~ # mkdir /mnt/gentoo/var
livecd ~ # mkdir /mnt/gentoo/home
livecd ~ # mkdir /mnt/gentoo/opt
livecd ~ # mount /dev/hda5 /mnt/gentoo/usr
livecd ~ # mount /dev/hda6 /mnt/gentoo/var
livecd ~ # mount /dev/hda7 /mnt/gentoo/home
livecd ~ # mount /dev/hda8 /mnt/gentoo/opt

 使用df -h可以查看到结果。
※注意,如果/tmp是单独的分区,需要考虑权限问题。对于/var/tmp目录也有同样的限制(/var/tmp目录是gentoo编译套件的临时目录)

chmod 1777 /mnt/gentoo/tmp

5、使用stage3压缩包
 先要考虑的问题是时间,如果时间不正确,会引起后面很多问题,所以先要设置好时间:

date 月日时分年

 然后就是找对需要的stage3压缩包,这个可以通过uname -m或直接找你对应的硬件平台。
进入/mnt/gentoo目录,从网络下载,或直接从光盘获得。(我当然是从光盘拿啦,速度快不少)我需要的stage3包在/mnt/cdrom/stages目录下:

ls /mnt/cdrom/stages
tar xvjpf /mnt/cdrom/stages/stage3-i686-2005.1.tar.bz2

6、使用portage快照
 portage快照里面是告訴 Portage 那些软件可以安裝,那些 profiles 可以使用等等的文件集合。

tar xvjf /mnt/cdrom/snapshot/portage-2005.1.tar.bz2 -C /mnt/gentoo/usr/

7、设置编译变量
 有很多的变量会影响到Portage的编译,如果是临时的变量,可以用export设置,但如果是常用的变量,则在etc/make.conf文件中定义。(可以参考etc/make.example.conf文件)
 下面是我使用的参数:

引用
CFLAGS=”-O2 -march=i686″
CHOST=”i686-pc-linux-gnu”
CXXFLAGS=”${CFLAGS}”
MAKEOPTS=”-j2″

8、寻找最快的镜像站点
 由于gentoo在安装的时候需要随时用网络上下载可用的最新套件,所以我们最好为他设置一个最快的镜像站点文件。

mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

 自动选择-a经常出问题,我还是用手动选择算了。可以同时选择多个站点。
9、为进入chroot环境做准备
 拷贝DNS的设置文件,以待后面chroot后使用:

cp -L /etc/resolv.conf /mnt/gentoo/etc/

 挂载必须的两个目录

mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev

10、进入chroot环境
 使用下面的命令进入新环境:

chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"

11、为安装套件做准备
 先更新Portage Tree:

emerge –sync

 然后是查看默认的profile是否合适:

ls -FGg /etc/make.profile

 我安装的时候已经有2006.0的profile了,手动的替换过去:

ln -snf /usr/portage/profiles/default-linux/x86/2006.0 /etc/make.profile

 最后要了解的还有两个变量USE和GLIBC Locales,USE参数可以从这个文件获得信息:/usr/portage/profiles/use.desc,根据需要使用export或写到/etc/make.conf文件即可。例如:

引用
USE=”-gtk -gnome qt kde dvd alsa cdr”

 至于GLIBC Locales,是可以设定在编译的时候只使用的地域。我们需要加上中午的支持。更详细的请参考官方资料。
 先打开GLIBC自定义支持:

echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

 然后根据/usr/share/i18n/locales和/usr/share/i18n/charmaps/里面的设定添加需要的支持,如:

引用
en_US/ISO-8859-1
en_US.UTF-8/UTF-8
zh_CN/GB18030
zh_CN/GB2312
zh_CN/GBK
zh_CN.UTF-8/UTF-8

 再来就是重新设定一下chroot环境下的时间区域:(奇怪,只有重庆,没有北京?)

ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime
date 020715042006
Tue Feb  7 15:04:00 CST 2006
hwclock –systohc
sed 's/CLOCK="UTC"/CLOCK="local"/' /etc/conf.d/clock

12、安装核心
 好啦,终于把准备工作都做好了,开始安装核心源码:

USE="-doc symlink" emerge gentoo-sources
ls /usr/src/ -l
total 4
lrwxrwxrwx   1 root root   22 Feb  7 15:43 linux -> linux-2.6.15-gentoo-r1
drwxr-xr-x  19 root root 4096 Feb  7 15:43 linux-2.6.15-gentoo-r1

 然后就是比较麻烦的核心编译。我使用的是最简化的编译选项:

# cd /usr/src/linux
# make menuconfig

 启动后如图:
点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片点击在新窗口中浏览此图片make && make modules_install
cp arch/i386/boot/bzImage /boot/gentoo-2.6.15-r1/

 我建议把coldplug也加上,毕竟自动监测还是比较方便的,就是牺牲一些启动时间而已:

emerge coldplug
rc-update add coldplug default
rc-update add coldplug boot

※一个比较好的方法是,引用光盘自带的核心设定文件,然后再手动添加需要的选项

zcat /proc/config.gz > /usr/src/linux/.config
make menuconfig

13、另外编译核心的方式
 如果嫌手动编译麻烦,可以使用genkernel进行:

emerge genkernel
zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
genkernel all

 会产生如下几个文件,/boot目录下:

引用
System.map-genkernel-x86-2.6.15-gentoo-r1 模组
initramfs-genkernel-x86-2.6.15-gentoo-r1 初始化根磁盘,用于启动的时候监测硬件
kernel-genkernel-x86-2.6.15-gentoo-r1 核心映像文件

 之后再加上coldplug自动监测硬件:

emerge coldplug
rc-update add coldplug default
rc-update add coldplug boot

 这样的方法最简单,但可能核心比较大,看自己的选择咯。(我选择了手动编译)
14、设定需要的模块
 有些模块我们不是放到核心里面的,那就必须配置一下,让他开机的时候加载咯。
 修改/etc/modules.autoload.d/kernel-2.6文件,写入要加载的模块,如:8139too。(可以加载的模块,可以从/lib/modules/2.6.15-gentoo-r1获得)
15、配置/etc/fstab文件
 该文件是用于自动挂载文件系统的,参考上面的设定配置它:

引用
/dev/hda1               /boot           ext3      defaults,noatime    1 2
/dev/hda2               /               ext3            defaults        0 1
/dev/hda3               none            swap            sw              0 0
/dev/hda5               /usr            ext3            defaults        0 0
/dev/hda6               /var            ext3            defaults        0 0
/dev/hda7               /home           ext3            defaults        0 0
/dev/hda8               /opt            ext3            defaults        0 0
/dev/cdroms/cdrom0      /mnt/cdrom      iso9660         noauto,ro       0 0
proc                    /proc           proc            defaults        0 0
shm                     /dev/shm        tmpfs           nodev,nosuid,noexec    0 0

※注意,这时候vi还没有编译,gentoo提供的编辑工具只有nano。
16、设定主机网络参数
 这里设置的参数是为了让主机启动后能自己获得IP地址,以及它的主机名等。

# cat /etc/conf.d/hostname
HOSTNAME="gentoo"

 若有DNS域和NIS域的话,可以修改/etc/conf.d/domainname文件。然后用rc-update add domainname default加入到启动里面。(我这里没有)
 gentoo的网络设置和其他发行版本的设置有点不一样,可以参考/etc/conf.d/net.example文件配置。例如我的网络配置:

引用
config_eth0=( “192.168.228.178 netmask 255.255.255.0 brd 192.168.228.255” )
routes_eth0=( “default gw 192.168.228.1” )

 如果你使用的是dhcp,这用这样表示:

引用
config_eth0=( “dhcp” )
dhcp_eth0=”nodns nontp nonis”

 若你用多个网卡,则添加多个ethx即可。
 最后是设置启动后自动启动网络:

rc-update add net.eth0 default

 如果你有多个网卡,则:

cd /etc/init.d
ln -s net.eth0 net.eth1
rc-update add net.eth1 default

 如此类推。。
 另外,你还可以修改/etc/hosts文件,做IP和域名映射,这个看需要吧。
17、设定必须的系统资料
 给管理员设置密码

passwd
echo "tts/0" >> /etc/securetty

 按需要设定/etc/conf.d/keymaps、/etc/conf.d/clock等文件。
18、安装系统必须的软件
 好啦,就差一些系统必须的软件了,安装吧:

emerge syslog-ng
rc-update add syslog-ng default
emerge vixie-cron
rc-update add vixie-cron default
emerge slocate
emerge dhcpcd

 如果还有ADSL,用USE=”-X” emerge rp-pppoe安装。
19、启动前最后的设定
 这里需要做的是安装启动程序Grub:

emerge grub

  修改配置文件:

nano -w /boot/grub/grub.conf

  我使用的核心不是用genkernel编译的,所以内容是这样:

引用
default 0
timeout 10
#下面的(hd0,0)表示/dev/hda1
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

titile=Gentoo Linux 2.6.15-r1
root (hd0,0)
kernel /boot/kernel-2.6.15-gentoo-r1 ro root=/dev/hda2 video=vesafb:ywrap,mtrr,1024×768-32@85

 另外,如果你的核心使用genkernel编译的,则应该这样:

引用
default 0
timeout 10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

titile=Gentoo Linux 2.6.15-r1
 root (hd0,0)
#下面定义一个虚拟磁盘,用于启动的时候监测硬件
 kernel /boot/kernel-genkernel-x86-2.6.15-gentoo-r1 ro root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda2 udev video=vesafb:ywrap,mtrr,1024×768-32@85
 initrd /boot/initramfs-genkernel-x86-2.6.15-gentoo-r1

  最后当然就是安装grub到MBR了:

grep -v rootfs /proc/mounts > /etc/mtab
grub
grub> root (hd0,0)  指定/boot分区
grub> setup (hd0)   安装到MBR
grub> quit

 好啦,基本系统安装完成啦!下面就不用说了,重启!

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

 恭喜你!一切顺利的话,机器重启后就可以进入我们的gentoo系统,后面的就看你自己的发挥咯!

PS:我启动后的简单步骤:

/etc/init.d/sshd start
rc-update add sshd default
locate -u

※2006-02-07 第一次编写完成

解决Disk sda contains BIOS RAID metadata…报错
借助原系统的Grub安装新系统
整合红旗CD安装光盘为DVD光盘的脚本
红旗DC Server 5.0上安装Oracle 10g R2
IBM x366上安装红旗DC Server 4.1 for x86_新版

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/linux/113782.html

(0)
上一篇 2021年8月27日 07:13
下一篇 2021年8月27日 07:13

相关推荐

发表回复

登录后才能评论