Gentoo Linux 安装及配置记录
Gentoo Linux 安装及配置记录
折腾病又犯了,于是装起了Gentoo,在archlinux下,靠着google和官方wiki,一次性就装好了systemd版的Gentoo。特此记录下安装的过程。
安装准备
- 一个正常运行的Linux
- 正常的互联网连接
分区与挂载
分区工具有很多,由于在已经可以运行的Linux下,可以选择的就更多了。图形界面的可以选择gparted。在按照自己的意愿分区之后,就可以正式进入安装步骤了。具体的分区操作应该不用赘述,折腾Gentoo的,分区应该是没问题的。下面假设将Gentoo安装在/dev/sda1上.
创建挂载目录
mkdir /mnt/gentoo
挂载
mount -v /dev/sda1 /mnt/gentoo
安装基础stage3
选择一个合适的镜像站,下载最新的stage3包,以下是国内几个镜像站:
到镜像站中,进入/gentoo/releases/amd64/autobuilds/目录。
本文安装的systemd版,所以进入current-stage3-amd64-systemd/目录中,下载最新的stage3包下载。
如果不使用systemd,则进入没有systemd的目录中,下载对应的stage3.
将下载的stage3放置/mnt/gentoo目录,并解压(stage3后缀也可能是bz2):
tar vxpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
配置make.conf和Portage
首先是 /mnt/gentoo/etc/portage/make.conf,
以下是我的USE参考,USE的配置可以参考wiki,按需配置:
VIDEO_CARDS :关于显卡,需要安装nvidia的,后面加上nvidia就行。
ABI_X86:需要开启32位支持的,把最后这一行注释取消就行。
其他选项根据gentoo wiki 按需配置。
# GCC
CFLAGS="-march=haswell -O2 -pipe"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
MAKEOPTS="-j5"
# USE
SUPPORT="pulseaudio btrfs mtp git udisks gvfs png jpg jpeg alsa client icu sudo python consolekit udev"
DESKTOP="X policykit fileroller cairo cups mount curl dbus vim infinality emoji cjk"
REMOVE="-bindist -kde"
USE="${SUPPORT} ${DESKTOP} ${REMOVE}"
# Portage
PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
# GENTOO_MIRRORS="https://mirrors.tuna.tsinghua.edu.cn/gentoo/"
GENTOO_MIRRORS="https://mirrors.ustc.edu.cn/gentoo/"
EMERGE_DEFAULT_OPTS="--ask --verbose=y --keep-going --with-bdeps=y --load-average"
# FEATURES="${FEATURES} -userpriv -usersandbox -sandbox"
PORTAGE_REPO_DUPLICATE_WARN="0"
# PORTAGE_TMPDIR="/var/tmp/notmpfs"
ACCEPT_KEYWORDS="~amd64"
ACCEPT_LICENSE="*"
# Language
L10N="en-US zh-CN en zh"
LINGUAS="en_US zh_CN en zh"
# Else
VIDEO_CARDS="intel i965"
RUBY_TARGETS="ruby24 ruby25"
LLVM_TARGETS="X86"
QEMU_SOFTMMU_TARGETS="alpha aarch64 arm i386 mips mips64 mips64el mipsel ppc ppc64 s390x sh4 sh4eb sparc sparc64 x86_64"
QEMU_USER_TARGETS="alpha aarch64 arm armeb i386 mips mipsel ppc ppc64 ppc64abi32 s390x sh4 sh4eb sparc sparc32plus sparc64"
# ABI_X86="64 32"
portage 配置:
mkdir /mnt/gentoo/etc/portage/repos.conf
#### 添加/mnt/gentoo/etc/portage/repos.conf/gentoo.conf 文件:
[gentoo]
location = /usr/portage
sync-type = rsync
#sync-uri = rsync://mirrors.tuna.tsinghua.edu.cn/gentoo-portage/
sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
auto-sync = yes
开始安装
复制DNS
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
挂载必要的目录:
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
fstab
偷懒的做法:
wget https://raw.githubusercontent.com/YangMame/Gentoo-Installer/master/genfstab
chmod +x genfstab
./genfstab -U /mnt/gentoo > /mnt/gentoo/etc/fstab
或者到archlinux官网下载arch-install-scripts,安装后就有genfstab命令了。通过这个可以很方便的生成fstab文件。
最后记得检查下 /mnt/gentoo/etc/fstab有没有问题,删除多余的部分,使用 lsblk -f 查看UUID是否正确。
chroot
chroot /mnt/gentoo /bin/bash
source /etc/profile
选择Profile并更新系统
更新Portage:
emerge-webrsync
使用rsync同步:
emerge --sync
列出profile:
eselect profile list
选择自己喜欢的profile,不用systemd则选择不带systemd字样的profile,使用以下命令配置:
eselect profile set X
将X替换成自己选择的profile的序号。
开始更新:
emerge -auvDN --with-bdeps=y @world
在漫长的更新之后,循环执行如下,直到最后输出都没有变化:
emerge @preserved-rebuild
perl-cleaner --all
emerge -auvDN --with-bdeps=y @world
安装全程如果出现提示更新配置文件,执行:
etc-update
输入-3回车,再y回车即可。
CPU_FLAGS_X86配置:
emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
配置时区和地区
echo "Asia/Shanghai" > /etc/timezone
emerge --config sys-libs/timezone-data
echo "en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
eselect locale list
再通过eselect locale set X设置locale。
安装一些必要工具并配置
emerge app-admin/sysklogd sys-process/cronie sudo layman grub
sed -i 's/\# \%wheel ALL=(ALL) ALL/\%wheel ALL=(ALL) ALL/g' /etc/sudoers
passwd #是时候设置root密码了
systemd:
sed -i 's/\# GRUB_CMDLINE_LINUX=\"init=\/usr\/lib\/systemd\/systemd\"/GRUB_CMDLINE_LINUX=\"init=\/usr\/lib\/systemd\/systemd\"/g' /etc/default/grub
ln -sf /proc/self/mounts /etc/mtab
systemd-machine-id-setup
配置编译安装内核
使用gentoo wiki推荐的gentoo-sources:
emerge -av gentoo-sources
genkernel简单粗暴:
emerge -av genkernel
genkernel --menuconfig all
genkernel --install initramfs
基于当前运行的Linux内核配置:
cd /usr/src/linux
make localyesconfig
# 询问新选项,保持默认
make -jX #将X替换为你想编译时的线程数
make modules_install
make install
genkernel --install initramfs
没有手动配置过,就不说了。反正有了配置文件.config后,
make -jX #将X替换为你想编译时的线程数
make modules_install
make install
genkernel --install initramfs
安装GRUB并创建用户
UEFI:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Gentoo
grub-mkconfig -o /boot/grub/grub.cfg
新电脑一般都是UEFI,legacy参考wiki即可
用户和密码
passwd #设置或更改root用户密码 连续两次输入,密码不会显示
useradd -m -g users -s /bin/bash gentoo #添加新普通用户 gentoo是新建的用户名
passwd gentoo #设置或更改用户密码
添加用户到相应的组:
gpasswd -a gentoo wheel # 将gentoo用户添加到wheel组
sudo权限
chmod u+w /etc/sudoers
echo 'gentoo ALL=(ALL) ALL' >> /etc/sudoers #将gentoo加入sudo
检查
执行完以上步骤后,基础安装已经完毕,检查下系统有没有正确安装和配置后即可重启进入系统。
要想系统能够正确启动,确保boot目录内有相应文件,grub配置正确,fstab文件挂载分区配置正确。
确认无误后即可重启进入。或者,继续安装好图形界面后再重启。
图形化
安装xorg-server和显卡驱动:
emerge -av xorg-server
emerge xf86-video-intel #Intel显卡驱动
emerge nvidia-drivers #nvidia显卡驱动
我使用的awesome桌面:
emerge -av awesome rofi terminator nemo networkmanager nm-applet mate-power-manager