使用 Archlinux 的朋友大概遇到过这样的烦恼,软件安装得比较多的时候,再用 pacman 做任何事情的时候都可以看到硬盘狂转一段时间,然后才有反应。
pacman 官方给了一个 pacman-optimize ,它会把 pacman 数据库文件打包到别的地方,删除,然后再放回去。这样做可能会让这些零碎的文件在硬盘上是连续排列的,但实际效果却不是很好。
虽然用 Archlinux 应该有三年左右了,但我还从来没有看过 pacman 的数据库是什么模样。有一天终于忍不住去看了一下 /var/lib/pacman 下面到底是什么,原来是这么多零碎的小文件啊!
于是解决方案也就有了:把所谓的 pacman 数据库放到 reiserfs 文件系统里。如果你本来在这个地方用的就是 reiserfs 的话,那么不需要做任何事情, pacman 应该就很快了。如果你和我一样用的是 ext4 这样的文件系统,也不必慌张地把整个分区都换成 reiserfs。
新建一个 160 MB 的 reiserfs 文件 pacman_db.fs :
truncate pacman_db.fs --size
160M
mkfs.reiserfs -f
./
pacman_db.fs
把现有的 pacman 数据库复制到这个 reiserfs 里面:
sudo
mount
pacman_db.fs -t
reiserfs /
mnt -o
loop
cp
-a
/
var/
lib/
pacman/*
/
mnt
sudo
umount
/
mnt
接下来修改 /etc/fstab ,加上一行:
/[path_to_pacman_db]/pacman_db.fs /var/lib/pacman reiserfs defaults,loop 0 4
左边的 [path_to_pacman_db] 需要根据实际情况填一下。最右边的 4 应该是比 fstab 中其他条目大一些的数字,表示 fsck 检查时最后处理这个地方。
如果想让这个设置立即生效,执行 sudo mount /var/lib/pacman 即可。否则,重启一下就可以了。现在,使用 pacman -Syu 更新一下系统,是不是比以前快许多?
(责任编辑:IT) |