从几个月前接触Arch和Gentoo,也是断断续续地折腾了很久,这中间Gentoo官网还改版了(笑,也有了新的Handbook,总算不是很久以前那古老的界面了.这里也是个人的记录和经验,以供参考.

首先你需要认清楚,你需要安装一个GPT+UEFI的系统还是MBR的系统,以及你需要用Gentoo做什么.

首先是分区,可以用Gparted和cfdisk…大多数人都会吧.如果是UEFI系统的话请分一个大于512M的分区用来做/boot

把你的/ /boot /home等分区挂载到/mnt/gentoo上.

首先找一个mirror下载stage3,这个没有任何难度.http://gentoo.osuosl.org/releases/ 在这里找到你的平台下载stage3,并且把它丢到/mnt/gentoo下面.

tar xvjpf stage3-*.tar.bz2 --xattrs

首先我们先对Gentoo的make.conf进行更改

nano -w /mnt/gentoo/etc/portage/make.conf

首先修改CFLAGS

CFLAGS="-march=native -O2 -pipe"

之后是添加MAKEOPTS

MAKEOPTS="-j2"

这是的j数取决于你的核心数,应该是核心数+1
解压stage3后就是挂载磁盘了,

mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

之后是Chroot

chroot /mnt/gentoo /bin/bash
source /etc/profile

安装portage

emerge-websync
emerge --sync

安装完毕之后调整locale 时区和profile以及USE Flag.

echo "America/Chicago" > /etc/timezone //中国的话调整为Asia/Shanghai
emerge --config sys-libs/timezone-data
nano -w /etc/locale.gen //调整你的locale
locale-gen
eselect locale list //这里会列出你的locale列表
eselect locale set //按照list里的数字调整
eselect profile list
eselect profile set //选择你的profile,比如我会选择Hardened(误
nano -w /etc/portage/make.conf //调整USE flag
添加:
USE="...." //USE flag中-XXX代表不需要什么什么,相反则是需要编译

更新环境

env-update
source /etc/profile

调整好开始编译内核
首先安装内核源码:

emerge --ask sys-kernel/gentoo-sources
cd /usr/src/linux

之后调整fstab:

/dev/sda1   /boot        vfat    defaults,noatime     0 2
/dev/sda2   /            ext4    noatime              0 0
/dev/sda3   none         swap    sw                   0 1
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

按照自己电脑实际调整
如果你是个高级用户并且想要装逼,那么不要犹豫,手动编译内核吧!

make menuconfig
make -j5
make modules_install -j5
make install

否则还是用Genkernel吧.注:Systemd用户请使用Genkernel-next

emerge -a genkernel
emerge -a genkernel-next //systemd用户

使用Genkernel来编译内核

genkernel --menuconfig all //使用 menuconfig 最后检查    

UEFI用户请把kernel转换为efi

cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi

如果你不是Genkernel的话也许你需要一个Firmware:

emerge --ask sys-kernel/linux-firmware

更新/重构软件包:

emerge -auvND @world

接下来就是进行一些小调整: 注:这是对于OpenRC的

nano -w /etc/conf.d/hostname
# 设置主机名
hostname="tux"

Systemd使用hostnamectl即可

然后是网络设置:
使用有线连接,dhcp的:

emerge --ask --noreplace net-misc/netifrc
emerge -a dhcpcd
emerge -a sys-apps/iproute2 net-tools
rc-update add dhcpcd default
emerge --ask net-dialup/ppp //PPPoe拨号网络
systemctl enable dhcpcd //systemd用户

无线网络:
OpenRC

euse -p net-misc/networkmanager -D dhcpcd
euse -p net-misc/networkmanager -E dhclient //将dhcpcd更换为dhclient以获得更好的兼容性
for service in $(rc-update show default | grep 'net\.' | awk '{ print $1 }'); do rc-update del $service default; done //关闭现有的网络管理服务
rc-update add NetworkManager default
rc-update del dhcpcd default
/etc/init.d/NetworkManager start
euse -E networkmanager
emerge -auvND @world
emerge -a nmcli //NetworkManager的Cli工具,如果你是桌面环境就不需要(
emerge -a sys-apps/iproute2 net-tools

Systemd

emerge -a netctl

添加一些小工具:

emerge --ask app-admin/syslog-ng //log
emerge --ask sys-process/cronie //cron精灵/daemon
emerge --ask mlocate //locate工具

之后使用rc-update/systemctl将他们添加到开机启动

rc-update add syslog-ng default
rc-update add cronie default
rc-update add sshd default

systemctl enable syslog-ng
systemctl enable cronie
systemctl enable sshd

然后是显卡驱动:
在make.conf里面添加:

INPUT_DEVICES="evdev synaptics" //添加鼠标触摸板键盘
## (N卡)
VIDEO_CARDS="nvidia"
## (A卡)
VIDEO_CARDS="radeon"

emerge --ask --verbose x11-base/xorg-drivers //装X(误
emerge --ask x11-base/xorg-server
emerge -auvND @world

然后就是写配置文件:
N卡

nvidia-xconfig
eselect opengl set nvidia

A卡

X -configure
eselect opengl set ati

然后就是把你的DM加入启动列表了,这里用的例子是SDDM(KDE5/Plasma):

rc-update add sddm boot
systemctl enable sddm //systemd

其他的自行替换/Google.

Okay,恭喜你,接下来就是最后一步了,安装bootloader.
UEFI用户:

echo GRUB_PLATFORMS="efi-64" >> /etc/portage/make.conf
emerge --ask sys-boot/grub
emerge -auvND @world //保险起见

普通用户只需要安装grub就好(

emerge --ask sys-boot/grub

将Grub安装到硬盘上:

grub2-install /dev/sda
grub2-install --target=x86_64-efi --efi-directory=/boot //UEFI

生成配置文件:

grub2-mkconfig -o /boot/grub/grub.cfg

Systemd用户:

nano -w /boot/grub/grub.cfg

在内核处修改:

linux /vmlinuz-3.10.9 root=UUID=508868e4-54c6-4e6b-84b0-b3b28b1656b6 init=/usr/lib/systemd/systemd  //举例

OK,万事俱备,就差重启了!

exit //退出Chroot
cd /
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount /mnt/gentoo{/boot,/sys,/proc,}
reboot

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.