无意间看到Daniel Robbins老兄悲催境遇的八卦故事,禁不住想试试funtoo linux,先前使用过gentoo,对USE的不正确应用导致portage包间出现循环依赖是gentoo很头痛的问题,不知道funtoo在这方面有没有改善,于是操刀尝试一把。
Funtoo不提供livecd,按照官方的建议,可使用系统急救工具盘来启动系统并装入funtoo操作系用,也可使用任意能使系统举起并带了所需的工具链的启动镜像。
一、下载最新的gentoo live iso镜像,选择适合自己的处理器架构,此处为amd64,http://distfiles.gentoo.org/releases/amd64/autobuilds/current-iso/install-amd64-minimal-20121210.iso,该步骤可以选择它的发行版livecd,甚至可以使用系统急救用的启动盘,只要能稍加操作最终启动并运行funtoo的stage
二、下载funtoo的最新的stage包,选择适合自己处理器架构的stage,http://ftp.osuosl.org/pub/funtoo/funtoo-current/x86-64bit/corei7/stage3-latest.tar.xz
三、为了加快安装速度,下载最新protage快照,http://ftp.osuosl.org/pub/funtoo/funtoo-current/snapshots/portage-latest.tar.xz
四、 使用live cd启动主机
五、为方便客户端操作,启动sshd服务器,并设置root口令以备远程登录
六、远程连接服务器并进行磁盘分区
1、 使用gdisk进行分区
根据提示进行分区,gdisk中要用到的几个命令如下
P 打印正在编辑的分区信息
N 创建分区
D 删除分区
L 分区过程中查看文件类型
W 写入分区信息到分区表
只到得到自己满意的分区后W保存分区信息
2、 格式化分区
livecd ~ # mke2fs -t ext2 /dev/sda1
livecd ~ # mkfs.xfs /dev/sda4
livecd ~ # mkswap /dev/sda3
livecd ~ # swapon /dev/sda3
3、 挂在分区
livecd ~ # mkdir /mnt/funtoo
livecd ~ # mount /dev/sda4 /mnt/funtoo
livecd ~ # mkdir /mnt/funtoo/boot
livecd ~ # mount /dev/sda1 /mnt/funtoo/boot
如果要将home或者tmp作为单独分区可以执行如下的命令(以下步骤在这里就不执行了)
livecd ~ # mkdir /mnt/funtoo/home
livecd ~ # mount /dev/sda5 /mnt/funtoo/home
livecd ~ # chmod 1777 /mnt/funtoo/tmp(tmp分区的权限比较特殊)
七、安装stage包
1、 首先更新本地时间
livecd ~ # ntpdate xxx.xxx.xxx.xxx(可以直接设置,此处从局域网ntp服务器更新时间)
2、 将stage包上传至/mnt/funtoo并解压(可以通过wget从ftp服务器直接获取)
Livecd funtoo # tar xJpf stage3-latest.tar.xz
3、 挂载几个特殊的文件系统
livecd ~ # cd /mnt/funtoo
livecd funtoo # mount --bind /proc proc
livecd funtoo # mount --bind /dev dev
4、 拷贝基础的配置文件,设置新的环境变量
livecd funtoo # cp /etc/resolv.conf etc
livecd funtoo # env -i HOME=/rootTERM=$TERM bin/chroot . bash -l
(消去当前的环境变量去执行命令,定义HOME为/root,TERM保持不变,chroot到当前目录,然后使用执行bash登录?)
livecd / # export PS1="(chroot)$PS1"
(重置PS1环境变量,使人意识到这是chroot过去的)
八、 安装Portage
(chroot) livecd / # emerge –sync
(忒慢)
直接使用一个最新的snapshot
(chroot) livecd / # cd /usr
(chroot) livecd usr # wget http://ftp.osuosl.org/pub/funtoo/funtoo-current/snapshots/portage-latest.tar.xz
(chroot) livecd usr # tar xfportage-latest.tar.xz
(chroot) livecd usr # rmportage-latest.tar.xz
(chroot) livecd usr # cd /usr/portage
(chroot) livecd usr # git checkoutfuntoo.org
(chroot) livecd usr # emerge --sync
九、配置系统
1、 修改/etc/fstab
(chroot) livecd usr # nano -w /etc/fstab
proc /proc proc defaults 0 0
/dev/sda1 /boot ext2 noatime 1 2
/dev/sda3 none swap sw 0 0
/dev/sda4 / xfs noatime 0 1
2、 编辑/etc/localtime
(chroot) livecd usr # ln -sf/usr/share/zoneinfo/Asia/Chongqing /etc/localtime
3、 修改/etc/portage/make.conf
MAKEOPTS="-j3"(处理器核心数+1)
4、 修改/etc/conf.d/hwclock
clock="local"
十、配置和编译内核
(chroot) livecdusr # echo "sys-kernel/debian-sources binary" >> /etc/portage/package.use
(chroot) livecd usr# emerge debian-sources
十一、配置bootloader
(chroot) livecdusr # emerge boot-update
(chroot) livecdusr # nano /etc/boot.conf
修改FuntooLinux为FuntooLinux genkernel
(chroot) livecdusr # grub-install --no-floppy /dev/sda
(chroot) livecdportage # boot-update
十二、配置服务
(chroot) livecdusr # rc-update add dhcpcd default
(chroot) livecdusr # rc-update add sshd default
十三、设置密码,重启内核
(chroot) livecdgrub # passwd
New password:
Retype newpassword:
passwd: passwordupdated successfully
(chroot) livecdgrub # reboot