这几天看到群里一直在研究gentoo这个LINUX操作系统,整体安装貌似是纯手工编译,刚好忙里偷闲尝鲜了这款系统,网上整理了大部分资料,花了半天时间搞定,虽然过程很繁琐,但总结如下优点:
1.纯手工文本配置系统参数,内核,以及GRUB引导,能够实现个人定制,而且装完会对LINUX的安装有一个更加深刻的了解
2.自带的emerge安装工具绝对是个神器,它很类似其他LINUX家族系统的apt-get与yum等自动化安装工具,是一个从网上自动寻找源码及其依赖源码实现全自动编译安装的工具,免去了新手编译安装过程中出现的各种关联问题所带来的烦恼
3.系统根下所有目录文件以及系统软件网上都有打包下载,定制起来更加方便.
最后写下了如下文档,供有需要的朋友参考
安装环境:
vmware vmware-9.0
操作系统 gentoo-20131010_x64
一.前期准备
(1)下载gentoo所需的引导镜像和系统文件压缩包
install-amd64-minimal-20131010.iso
portage-latest.tar.bz2
stage3-amd64-20131010.tar.bz2
下载地址:
http://mirror.sohu.com/gentoo/releases/amd64/current-iso/install-amd64-minimal-20131010.iso
http://mirror.sohu.com/gentoo/releases/snapshots/current/portage-latest.tar.bz2
http://mirror.sohu.com/gentoo/releases/amd64/current-iso/stage3-amd64-20131010.tar.bz2
(2)配置虚拟机引导系统镜像(略)
二.安装系统
1.进入系统引导界面
输入gentoo dopcmcia
如图:
2.进入光盘引导的临时系统
注:这个临时系统环境简单来说可以理解为一个WINDOWS下的PE临时系统安装环境,在这个系统下面可以对我们安装的系统进行诸如简单的网络配置连接,系统分区,内核驱动编译,系统引导制作等等,只不过我们平时使用的其他系统在开始安装的时候已经以一个非常友好的图形交互界面引导我们配置,基本上不可能安装失败,gentoo只提供了一个shell文本界面,需要使用者对系统安装有一个完整的思路和LINUX系统配置能力,新手初次使用可能会有一定的困难.
3.配置root账户
# passwd root
4.开启ssh服务
# /etc/init.d/sshd start
5.查看系统网络接口并配置临时网络
注:由于在虚拟机安装的gentoo,网络接口名与常用接口eth0命名不同,这里请注意
IP:
# ifconfig enp2s1 192.168.7.51/24
Gateway:
# route add default gw 192.168.7.1
DNS:
# echo “nameserver 192.168.7.1” >>/etc/resolv.conf
能够ping通,则说明系统能够访问外网
5.利用secureCRT登陆系统shell
选择否:
登陆成功
6.系统分区
20GB虚拟机硬盘分区规划:
/dev/sda1 /boot 200M
/dev/sda2 swap 1024M
/dev/sda3 / 剩余所有
(1)利用fdisk分区
# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes,41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
# fdisk /dev/sda
sda1分区: n,p,1,回车,+200M
sda2分区: n,p,2,回车,+1024M
sda3分区: n,p,3,回车,回车
设置sda2分区为swap分区格式: t,2,82
最后保存写入分区并退出: w
(2)重新读取sda分区表:
# partx -a /dev/sda
(3)格式化为ext4文件系统
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda3
(4)格式化swap分区并激活
# mkswap /dev/sda2
# swapon /dev/sda2
# swapon -s
6.创建系统临时挂载点
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
7.设置系统时间(重要)
# date 102314162013
8.下载系统编译包portage-latest.tar.bz2和stage3-amd64-20131010.tar.bz2到/mnt/gentoo目录下:
# cd /mnt/gentoo
# wget http://mirror.sohu.com/gentoo/releases/snapshots/current/portage-latest.tar.bz2
#wget
http://mirror.sohu.com/gentoo/releases/amd64/current-iso/stage3-amd64-20131010.tar.bz2
# ls
boot lost+found portage-latest.tar.bz2 stage3-amd64-20131010.tar.bz2
9.解压stage3和portage两个文件
# tar -jxvf stage3-amd64-20131010.tar.bz2
注: stage3-amd64-20131010.tar.bz2解压的文件是Gentoo的目录结构,所以要解压到临时的系统目录下,即/mnt/gentoo,方便后面进行chroot
# tar jxvf portage-latest.tar.bz2 -C /mnt/gentoo/usr
注: portage-latest.tar.bz2解压的文件为系统软件目录结构,需要解压到/mnt/gentoo/usr目录下
10.切换系统到/dev/sda3根分区上并更新系统环境变量
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# chroot /mnt/gentoo /bin/bash
# env-update
>> Regenerating /etc/ld.so.cache...
# source /etc/profile
# export PS1="(chroot) $PS1"
11.设置时区
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
12.设置主机名
# sed -i -e's/hostname.*/hostname="gentoo.example.com"/' /etc/conf.d/hostname
# echo "127.0.0.1 gentoo.example.com localhost" > /etc/hosts
13.设置DNS
# echo "nameserver 192.168.7.1" >> /etc/resolv.conf
14.内核配置
(1).安装内核源码
# emerge gentoo-sources
(2).安装自动编译内核工具genkernel
# emerge genkernel
(3).复制安装光盘的配置文件到genkernel搜索配置文件的默认位置
# zcat /proc/config.gz > /usr/share/genkernel/arch/x86/kernel-config
注:如果启动分区没有使用ext2或者ext3文件系统,则必须使用genkernel --menuconfig all来手动配置您的内核,把所使用的文件系统编译进内核。(不能编译为模块!)。EVMS2和LVM2也需要加上--evms2和--lvm2参数。
(4)运行genkernel
# cd /usr/src
# mv linux linux.bak
# ln -s linux-3.10.7-gentoo-r1 linux
注:以上三条命令如果未执行,直接genkernel all会报错
ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing.....
原因可能是最新版本gentoo在/usr/src/linux下未找到Makefile文件,导致内核无法编译,需要重定向另一个目录,这里还是google老外的一篇文档中找到答案.
64位的gentoo安装好后,貌似会自动做一个以上的重定向处理,32位会有几率出现问题,需手动处理
# genkernel all
注: genkernel编译出的内核支持几乎所有硬件,编译需要一段很长的时间,一旦genkernel运行完成,一个包括全部模块和initrd的内核将被建立。在后面配置引导程序时我们将会用到这个内核和initrd。请记下内核和initrd的名字,因为您将在配置引导程序的时候用到他们。initrd将会在启动真正的系统前自动识别硬件(如同安装光盘一样)。
(5)查看内核和initrd的名字
# ls /boot/kernel* /boot/initramfs*
-------------------------------
/boot/initramfs-genkernel-x86-3.10.7-gentoo-r1
/boot/kernel-genkernel-x86-3.10.7-gentoo-r1
-------------------------------
15.安装vim编辑器
# emerge vim
16.修改fstab文件
# vim /etc/fstab
添加如下内容:
----------------------------------------------------------
/dev/sda1 /boot ext4 defaults 1 2
/dev/sda2 swap swap defaults 0 0
/dev/sda3 / ext4 defaults 1 1
-----------------------------------------------------------
17.配置网络
注:因为是在vmware虚拟机测试,物理网口名为enp2s1,非一般常用的eth0,这里请注意
# vi /etc/conf.d/net
添加如下内容:
--------------------------
config_enp2s1="192.168.100.93/24"
routes_enp2s1="default via 192.168.100.1"
--------------------------
# ln -s /etc/init.d/net.lo /etc/init.d/net.enp2s1
开机加载enp2s1网口
# rc-update add net.enp2s1 default
配置DNS:
# echo "nameserver 192.168.100.1" >> /etc/resolv.conf
18.配置sshd服务器开机启动
# rc-update add sshd default
19.设置新安装Gentoo系统用户root密码
# passwd root
New password:
BAD PASSWORD: it does not contain enoughDIFFERENT characters
BAD PASSWORD: is a palindrome
Retype new password:
passwd: password updated successfully
20.配置时区
# vi /etc/conf.d/clock
-------------------------------
TIMEZONE="Asia/Shanghai"
-------------------------------
21.安装常用系统工具
系统日志管理
# emerge syslog-ng
日志格式化工具
# emerge logrotate
定时计划服务
# emerge vixie-cron
DHCP
# emerge dhcpcd
快速索引
# emerge slocate
启动服务
# rc-update add syslog-ng default
# rc-update add vixie-cron default
设置crontab默认编辑器
# echo "export EDITOR='/usr/bin/vim'" >> /etc/profile
22. 配置GRUB引导程序
(1)安装grub
# emerge grub
注:这里实际编译安装的是grub2,与LINUX其他发行版本常用的grub配置略有出入
(2)配置grub
# grub2-install --no-floppy /dev/sda
# grub2-mkconfig -o /boot/grub/grub.cfg
# reboot
如图:
23.收尾工作:
移除stage3 tarball
# rm /stage3-*.tar.bz2*
移除Portage快照文件
# rm /portage-latest.tar.bz2*
-----------大功告成-------------