[原]开始安装Gentoo
•
linux专区
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/113782.html