安装Gentoo教程
从几个月前接触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
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.