重新折腾了一遍 Funtoo

这个周末抽时间重新折腾了一遍 Funtoo,得到了一些收益。

起因是周五晚上尝试安装 ck 内核,经过研究了文档,得知了 /proc/config.gz 的内容就是其实就是当前的内核配置文件,只要把这个文件导出来就确定了能保证运行的内核配置。我当前用的是 debian-sources,版本是 4.5。我通过文档,也知道了 make oldconfig 命令可以让你逐项审视新版本内核的配置,我觉得这样有了一定的把握:先获取当前的配置文件,然后在当前的基础上,配置新内核,再用 make menuconfig 来最后检查一下,进行最终调整,之后就是编译了。

前面的步骤都还可以,虽然我对一些配置也不是很确定,不过因为是在已有的基础上,我知道不会让我漏掉什么东西,事情不会变的更坏,所以也没有太单性。但是到了编译这一步,出错了。我一看,说是磁盘没有空间了,用 df 检查一下,果然 / 目录已经没空间了。这时候我非常沮丧,之前我特意把它调整为 20G,觉得肯定不会出现问题,把更多的空间交给 HOME 分区更好。过去也没有遇到问题,没想到在编译内核这里给出了问题。

我上网搜索了一下,有一些通过 Live USB 引导后调整的方式,不过我想一劳永逸的解决问题,看来还是要上 LVM。想到这里,不如干脆重新调整分区表。当然第一步要备份,我找了块空的硬盘,西数的 1T,支持 USB 3.0,之前网上有打折就买了,之后一直没有用,这次比较方便的派上用场。

备份的时候收到了教训:命令行界面确实很容易误操作。我在向 NAS 复制一批刚下载的视频目录时,想把旧的目录删掉,旧的目录和当前目录名字一样,只是以 -old 结尾,结果我一时手快,没有注意,没把旧的删了,把当前的给删了。这时 cp 指令还没有执行完,我去 NAS 看看,丢失了一些文件,非常可惜。我想如果在图形界面,虽然我也没有配置回收站,但不大容易发生这种错误。

我从网上找到了 rsync 来被封的方法,加了 -av 参数,不过奇怪的是,经常会走到一个文件的时候,就在那里卡住。我备份了一些文件后,最后还是直接复制过去。但最后发现两个方法做的都不算好。复制的时候隐藏文件没有复制,而且我的邮件也没有复制全,后来造成了比较严重的问题。

备份了 HOME 和 /etc 后,就按照 Funtoo 上的说明,重新安装。我把 /boot 留着没动,剩下的分成了一个区,在上面用 LVM 管理,创立了两个卷,过去的 ROOT 分成了 30G,剩下的给 HOME。其实我觉得这样我用传统方式问题也不大,不过还是 LVM 以防日后再有麻烦。

使用 LVM 其实并非我开始时想象的那么困难,分区的时候按照文档中的说明进行操作,chroot 后正常安装,只是需要用 genkernel 重新编译内核,编译的时候加上 --lvm 参数就行了。然后我在运行 boot-update 这一步时遇到困难,怎么也无法继续进行,总是提示错误,说是和 /etc/fstab 有关。我对此很费解,检查了几遍文档都没有错,也上网进行了搜索,最终我发现文档竟然有错误,/etc/boot.conf 里根路径的写法和 /etc/fstab 里不一致,虽说实际都是一个东西,但就是这一点导致了 GRUB 安装错误。修正了之后便好了。

剩下的就是一点点 emerge 了,这些没什么好说的。到了安装内核的这一步,虽然我有之前弄的 ck 内核的配置文件,不过心想还是先让机器能启动了再说吧,就没有激进,还是安装了 Debian 内核。然后我遇到了前面说的 boot-update 的问题,我一开始觉得大概时 Debian 内核默认不支持 LVM 吧,于是就按照说明,genkernel 编译了 ck 内核,之后还是有错误,来回几次弄明白了是参数的问题,到最后一只用着 ck 内核当作默认。我并没有感到性能有多大的提升,但是在一次 emerge 计算依赖的时候,系统锁死过一次,怎么也没有反映,鼠标也不动弹了,只好重启,不清楚是不是内核的问题。

之后我慢慢的把之前的配置复制过来,还有过去 emerge 的包,这些我是在周一在公司做的。之前其实没有好好的备份,复制回来的配置文件需要我手动修改属性,也挺讨厌的。不过备份的比较全面,很多东西都很快的就弄好了。在吃饭前我装好了 OfflineIMAP,想把邮件都同步过来。我发现我备份的 Mail 文件夹不全,很多东西都没有复制下来,所以估计要下载的邮件很多,所以我运行了 offlineimap -o,准备在我吃饭的过程中,下载完邮件,结果竟然很快就完成了,我进去一看,心都凉了,OfflineIMAP 清空了我远程服务器上的邮件。我本地本来没有邮件,只剩下了几个文件夹,结果 OfflineIMAP 把本地的空白目录同步到了服务器上,导致了我丢失了几乎全部的邮件。我觉得这基本上已经无解了,不过我目前没有想到我的邮箱中有什么很重要的东西,算是可以自我安慰吧。

我本来计划这次就不通过源码安装 Firefox 和 LibreOffice 了,Portage 上有二进制的包,性能应该差不了多少。结果 Firefox 的二进制包直接去 Mozilla 的网站上下,二、三十 KB 的速度,实在是太感人。LibreOffice 直接无法下载中文 xpi 文件,导致无法安装。我等了很旧,装上了 Firefox 的二进制版本,LibreOffice 就暂时放弃了。

结果今天我在配置 Dropbox 的时候总是配置不成功。后来我我通过 proxychains 调用 dropbox 命令,找到了问题。Dropbox 打开网页,竟然用的是 w3m,而在 w3m 里也无法让我完成认证。这在我之前可从来没发生过,那时候直接在 Firefox 里打开的页面。我估计是二进制的 Firefox 的程序路径不同导致的问题,于是就从源码安装了 Firefox,好在它的编译时间不像 LibreOffice 那样长。安装后,Dropbox 果然也能正常认证了。

通过这次的折腾,我一来解决了分区的问题,而且我对 Linux 系统越来越熟练了,之前我觉得 LVM 在个人电脑上过于遥远,不应该在个人电脑上适用,因此也从来没有尝试过,一致认为它是很复杂的东西。现在我动手操作了一遍,虽然不能说是完全掌握了,但它的神秘感也不存在了。其实这些年的经验告诉我,Linux 系统的组成其实非常简单,它让你有机会学习操作系统的一切,远比 Windows、Mac OS X 这样的系统能让你学到更多。

装完了这个系统,我突然想到,我这次其实可以上 ZFS 的!我上网找了一些别人的博客文章,有一些人也在个人电脑的 Linux 上用 ZFS。虽然心里很痒痒,不过我暂时不打算动了。我看了一些文档,从操作上 ZFS 和 LVM 其实也大差不差,在我需要的逻辑卷这方面也是一致的,底层的一些好处我目前还不是太感兴趣,所以暂时就先保守一些了。不过我想,也许在将来我会再试着折腾折腾吧。

《重新折腾了一遍 Funtoo》有2条评论

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据