装过的发行版
使用 Linux 两年多了,用了不少发行版,从虚拟机到物理机,每一次换系统都感触颇深,也学习到不少知识。 换发行版无非是追求新的特性,发行版的使用难度也逐渐增加,感谢每一个发行版都让我再一次认识了 Linux 这个神奇的国度。
Ubuntu
第一次装 Linux 是很早以前的事了,记得装的是 Ubuntu。原因大概是第一次听说的 Linux 就是 Ubuntu。 后来大学开始装的也是 Ubuntu,大概是 Unity 的界面太难看,先后卸载安装不少次。然而时不时还是要使用,现在都装在虚拟机或者 Docker 中。Ubuntu 拿来做学术还是很好用的,可惜我大概是没有做学术的头脑。
Kali
后来接触网络安全的时候多在用 Kali 虚拟机物理机都用过,虽显笨重但是工具全。不过拿来日常用还是过了点。记得在无线网卡的驱动上坑了我一把。
Debian
用过 Kali 才知道的 Debian,后来装在物理机用了挺长一段时间。印像是软件版本很底,但很稳定。对闭源驱动支持不是太好。现在偶尔拿来装服务器。
Arch
一天发现了一个安装方法奇特的发行版,居然全命令行自行安装。本着爱折腾的精神装了数次。开始没觉得多不一样,就是文档全。很多 Linux 的知识也是在安装 Arch 的过程中学习到的。直到一天发现了AUR,从此过上一键装软件的日子。总的来说,更新频率有点快,用了两个多月,见过一次错误,没滚炸过。AUR的存在确实让入上瘾。
Centos
一次在实验室装服务器,试着装了 Centos,中规中举。看到那啥太湖之光也用的Centos,大概也是个稳定的发行版吧。
Gentoo
发现 Gentoo 是在一个包管理器的讨论贴里。各大发现版最大的不同也就是包管理器和封包方式不一样吧。能多版本安装确实是个很不错的特性。不过装它的原因大概还是爱折腾吧。Gentoo 的安装比 Arch 还麻烦不少,文档也少。不过为了感受下自己编译系统的感觉还是决定试一试。
Deepin
国产的深度系统,最大特点是能用 QQ 不过我从没在 Linux 上装过 QQ 。自己没怎么用过,不过一直推荐给同学(笑)。
Fedora
给我留下的唯一印象是包管理命令是 dnf(笑)。
开始安装
安装平台
前面都是扯蛋,下面是正题
MSI GE60
呆湾微星的笔记本,14年买的黑东的清仓货。i5-4200M+GTX765M,拿来打打单机也勉强够用,只是现在不怎么打游戏了。
准备
先看文档总没错,没用 mini CD,现在用的就是 Arch 直接上了,反正都是手工装。于是乎跳过官方文档关于 CD 的配置。
下好 Stage3 的包。这个就是一个没有内核的小型 Linux 系统了,这样核心系统工具不用自己编译了。文档没怎么介绍 Stage2 和 Stage1,那个更折腾的样子。
分区
在装 Arch 之前其实已经预留了别的 Linux 系统的空间,所以我只要稍微分个区。fdisk 和文档推荐的 parted 都试用了一下,感觉 parted 用着舒服点。因为是GPT的分区,配置下 PARTLABEL 方便之后挂载(注:特地查了下,fstab是支持PARTLABEL的)。然而这俩命令都没有更改LABEL的方法。
EFI 分区直接用之前 Arch,想着之后要自己编译内核,就分了个 boot 分区。另外之前用 Arch 时发现 Docker 特占 var 空间,就额外分了个 var 分区。其他直接给 root。
Number Start End Size File system Name Flags
1 1049kB 135MB 134MB fat32 efi boot, esp
2 135MB 672MB 537MB ext4 boot
3 672MB 35.0GB 34.4GB ext4 rootfs
4 35.0GB 52.2GB 17.2GB ext4 var
安装系统
所谓安装系统其实就是解压 Stage3 的压缩包啦。
之后按文档复制几个配置文件。配置下包管理的几个配置文件是关键。主要是 make.conf 和软件包源。
chroot 后选择 profile。profile 给出了常用的几个环境的配置。这里最后我选的是 default/linux/amd64/13.0/desktop/kde。由于 Gentoo 默认使用的 init 是 OpenRC 前几次安装一直想换成 systemd 结果发现 Gentoo 对 systemd 的支持还是差了点(关于 systemd 还是颇有争议的,虽然现在主流的发行版全部使用了 systemd。systemd 的新特性也是一大堆,但是也引发了很多争论)。
编译内核
网上好多人都是在这里倒下了无数次,我也不例外,改来改去花了大概两周才裁剪成想要的样子。不过也可以不裁剪,直接上 genkernel。但想来装 Gentoo 的也都是能折腾的货色,折腾内核这种东西怎么会放过。
由于英文不好,这里参考了金步国先生的翻译Linux-4.4-x86_64 内核配置选项简介。主要配置按照文档要求和配置选项的介绍来就好了,我主要裁剪的是驱动部分。
驱动部分我几乎先删光了全部选项再一点点加上需要的,这也导致后面不少坑。
总之先编译个能用的内核。
安装引导
还是选用常见的 grub2。Arch 的文档对其有详细的介绍。
对了这里还编译了一个initramfs镜像,虽然不知到有啥用,似乎之前编译 systemd 的时候没有它内核启动崩溃了好几次。
桌面环境
开始觉得要是编译个桌面环境那也太慢了,干脆直接用控制台吧。然而1080p的屏幕伤不起。改了控制台配色,一直找不到好的字体。总不能一直就看着这么小的字吧。
还是要装桌面,结果选择困难症又犯了。对比了xfce和ldex,觉得都不好看(想轻量还颜控)。后来看到ldqt,但是还在开发阶段。没用 systemd 导致 Gnome 也不能用,只好上 KED 了。
于是开始了漫长的编译过程(差不多5小时,心疼本本)。
不过装完被 Plasma Desktop 惊艳到了,定制性和外观都无可挑剔。Activity 和 Desktop的设计相当好用,Widgets 和 Panel 的设计也很便捷。总之很和我口味,没有白费我5个小时的编译。
接下来就是漫长的填坑之旅。。。
填坑
你今天掉的坑都是昨天自己挖的。
如果你放弃在 Gentoo 上使用 systemd,那么恭喜你的坑少了一大半。
驱动
恩,第一次启动系统连有线网卡的驱动都没有,谁让自己裁掉了那么多驱动呢。这里有一个技巧,就是先在 Arch 上看看当前系统都用了什么驱动,在 Gentoo 上一个一个装上就好了。
# lspci -k
按照列举的驱动装就好了,其实在内核配置里查找模块的名字大多都可以找到位置,实在找不到的 Google 下也会有的。
触控板驱动
触控板一直不能禁用,才发现触控板被识别成鼠标了,于是重新 Baidu 找到几个内核有关 Synaptic 的选项都 y 了才好的。
显卡驱动
一开始没打算用N卡,就没装 noveau,结果发现显卡虽然没用但是一直开着,贼耗电。然后装上发现还是开着。实在没法子想起以前在 Debian 上装的 bbswitch。就开机默认关闭了 N 卡。
XDM
xdm 是用来启动开机登入界面的,一直以为是用 kdm,结果看了 Arch 的文档才知道换成 sddm 了。配上和 kde 一样的主题,看起来相当舒心。
声卡驱动
按照wiki改好内核选项依旧没有声音,之后配置了module options和.asoundrc后可以有声音,最后装上kmix。
Docker
使用dockerd -D
查看错误信息
定位错误发现docker居然依赖iptables,开启iptables后发现storage device错误,参考check-config.sh修改内核后成功启动。
使用
最后就是吧 Arch 上常用的工具软件搬过来了。大多数软件都直接装,配置文件基本都可以直接复制可用。像火狐和 Virtualbox 这样大型软件就不要自己编译了,确实有点负担不起。
对于包管理,sets 确实是一个很好的设计。license,use,keywords,mask需要了解下概念也都不难理解。确实是设计很好的包管理,就是编译太慢了。