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
#wget
# 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
-------------------------------