让你的 Gentoo 快若刀锋让你的 Gentoo 快若刀锋
- by
Eric Hsu
一. 前言 - 我的兔兔历程
半年多前开始了我与兔兔的亲密接触. 以我一贯保守作风稳中求进的做法, 最初先是在 Fedora Core 上用 vmware 装成功一次
stage3, 接着一次 stage1 (装到 X 成功起来加上一个 Enlightenment),
然后以积累的经验大胆地往硬盘最后面的空闲分区里成功实装了一次 stage1, 这一次, 让我得以对兔兔进行较深入的摸索, 同时因为 FC
还在, 既不影响我正常的工作学习, 又能有个参照对象, 以便我逐一确认 FC 下我的需求在兔兔里都能满足.
在确认兔兔足以完全取代 FC 之后, 我开始了大迁移 - 彻底转向兔兔. 于是 2004 年 05 月 31 日 17:57 stage1
开始, 装到 2004 年 06 月 02 日 18:33 完成一个基本可用的系统, 其间做了大量手写的笔记, 包括每一步骤及其耗时,
每一个遇到的问题及其解决办法, 每一个软件包的安装/卸载, 每一个配置的变动/更新...
这一次的 stage1 安装, 让我一直使用到了十一月底, 累积的笔记达到 25 页 A4 纸.
经验的积累与知识的扩张让我一直心痒痒想把其间学到的点滴经验与知识来一次大整合. gf 的要求与我对 QQ
游戏泡泡大战的需求成了这次重装的契机: 我要把 XP 弄回来, 更重要的是 - 我要打造一个在我现有硬件基础上最为 bleeding edge
的兔兔!
于是我开了这个
帖子, 向 gentoo 论坛上的人们逐一请教, 探讨, 试验并解决了数个问题. 在最后一个关于分区方案的问题被解决之后, 时机成熟, 我开始了全面刻盘备份...
2004 年 12 月 05 日 13:44, 这次旨在打造最为 bleeding edge 的兔兔的 stage1 安装开始了...
前言小结:
如果你现在还是其他发行版的用户, 而你又对兔兔跃跃欲试, 不妨参考我的
稳中求进的做法:
- 用虚拟机装成功一次 stage3
- 在 stage3 成功经验的基础上, 用虚拟机成功安装一次 stage1
- 在虚拟机成功安装 stage1 的基础上, 往硬盘的空闲分区实装一次 stage1, 并与你原有系统双启动. (注意, 为了避免任何数据丢失的惨剧发生, 请务必在实装前, 彻底备份你原系统里的所有重要数据! 因为在进行 fdisk 分区或 mkfs 格式化分区时, 任何一个字符打错, 有可能就让你原有分区彻底丢失, 或是指向错误设备, 格式化掉了存有重要数据的分区 - 例如你把 /dev/hdd5 打成 /dev/hda5...)
- 利用此次实装对 gentoo 进行方方面面探索, 等你觉得确实了解 gentoo 了, 则可以考虑彻底往 gentoo 迁移.
(成功的标准可以定在: 让 X 起来, 毕竟这是桌面应用的基础. 当然, 你可以选择别的标准)
随时准备着把同一件事情再做一次, 因为那时你一定可以做得更好!
二. 正题 - 打造快若刀锋 (bleeding edge) 的 gentoo
.
目标:
(1) 合理的分区结构
(2) 使用目前本星球上最快的 Reiser4 文件系统
(3) 以 gcc 3.4 编译整个系统, nptl 支持
(4)
Utopia: udev, hotplug, dbus, hal, gnome-volume-manager.
. 敬告:
请做好心理准备, 要打造快若刀锋的 gentoo, 我们需要用到很多刀锋级别的东西, 像最新的技术, 最新的软件包, 这同时意味着我们肯定会遇到很多的问题 (有些很可能别人都没遇到过的). 因此, 在跟随本贴前, 请
确认你的心脏不会太弱, 且有足够的勇气, 耐性与准备去面对可能的困难, 且要有自己解决问题的能力. 怕被刀割伤的话, 那就不要玩刀
不过呢, 至少你可以比我幸运一点, 因为我已经在前面给你死过一次了. 跟着我, 至少我能让你不至于死得像我那么难看
- 准备工作
- 分区方案
这是一个很大的话题, 从来没有一个方案是万用的 (如果不算 /boot, swap, / 方案在内的话). 要获得最符合你需求的分区方案, 需要的是对 *nix 系统的理解与经验的积累.
现在我仅以桌面应用为标准, 以及我的经验, 就分区方案给出如下个人建议:
- 分区越少越好
也许你已经读过 Gentoo Handbook: Designing a Partitioning Scheme 又或是 tldp: Linux Partition HOWTO.
你可能也和曾经的我一样迷惑于分区方案的设计... 在这里和仍旧迷惑的你说一声: 只有在 mission critical (任务繁重)
的服务器上才有考虑设计分区方案 (比如单独给出 /var, /tmp 分区) 的必要! 作为桌面用户, 请 KISS (Keep It
Simple, Stupid!) 且, 据知, 当只有一个分区时, 最频繁读/写的区域最终会自动集中到硬盘上最为临近的物理区域, 利于提高硬盘读/写的效率. 而分区多时, 就没有这个好处. 详细讨论可以看这个帖子: Quick Question: partition schema for a 60G disk? [done]
- 单独给 /home 一个分区
你一定会有重装系统的时候, 把 /home 单独分区, 就可以一口气格掉系统分区而不用担心自己 /home 里的数据/设置的备份问题. 重装系统后, fstab 里挂载回 /home 分区, 马上回到自己原来就配置好的, 熟悉的环境, 而无须一切从头.
因此, 一般而言, 有四个分区足矣: /boot, /, swap, /home
下面说说分区格式与大小的问题:
- /boot
ext2, 10M 足矣, 但是实际没法划那么小的分区, fdisk 里 +10M 的话, 最终出来大小大概是 16M.
- /
reiser4, 10G 足矣, 一个 gentoo 系统有 2G 左右就功能很全了. (Redhat/FC
这类预装了好多东西的系统不过也就 2G 多, 何况你完全可以定制的 gentoo). 之所以给到 10G, 那是我积累出来的经验,
我上个系统用了半年, 堆了一大堆东西 (尤其是 /usr/portage/distfiles 下面全是源码包), 全算在一起也不过用了
8.5G (注意, 系统本身大小还是 2G 左右, 其他空间是被非系统的数据所占).
- swap
如果你的内存 512M 或以下, 那就老规矩吧, 内存大小 x2 就是 swap 大小, 如果你的内存有 1G, swap 就不必
x2 了, 给个 256M 或 512M 估计就 OK, 我只有 256M 内存, 因此 1G 或以上的内存最合适给多少 swap
那就需要有经验的朋友给建议了
- /home
根据你的需求给大小. 如果你打算把重要数据放在 /home, 那么请使用岩石般稳定 (rock solid) 的 ext3
文件系统, reiser4 毕竟刚出, 拿自己的数据冒险没必要. 如果你非要像我一样 /home 也使用 reiser4
(我有时会以个人用户帐号在 /home 里装一些应用软件以保持系统本身的 "干净", 我又希望这些软件有最好的性能, 因此用
reiser4), 那建议你也和我一样, 再单独划一个 /data 分区, 且在 /data 分区里使用 ext3. 总之, 要保留重要数据的分区一定使用 ext3 这类稳定的文件系统, 要性能, 也不在乎出问题的地方, 那就直管用 reiser4!
下面是我的分区方案, 以下的步骤中涉及分区的部分都以此为参照:
| Code: |
/dev/hda1 /boot 10M ext2
/dev/hda2 (For winxp) 5G NTFS
/dev/hda3 /
10G reiser4
/dev/hda4 extended
/dev/hda5 swap 512M swap
/dev/hda6 /home 3G reiser4
/dev/hda7 /data 2G ext3
/dev/hda8 /share 20G fat32
/dev/hda9 (空闲空间以备将来使用, 例如可以用来作 stage4 备份的测试)
|
解释: /boot, winxp 分区, /, swap, /home 我就不说了, 前面都解释过了. 我说说 /data, /share, 以及 /dev/hda9 的考虑: