当前位置: 首页 > 文档资料 > Gentoo Linux 手册 >

8. 配置您的系统

优质
小牛编辑
127浏览
2023-12-01

8.a. 文件系统信息

fstab 是什么?

在 Linux 系统中, 系统使用的所有分区都必须列在 /etc/fstab 中. 该文件包括了各个分区的挂载点 (它们在文件系统结构中所处的位置), 它们该如何 (特殊的挂载参数) 以及何时被挂载 (是否自动挂载, 普通用户是否允许挂载等).

创建 /etc/fstab

/etc/fstab 使用一种特殊的表达方式. 每一行由六部分 (fields. Cure: 可译成 "字段" 或许更贴切, 不过用 "部分" 就简单易懂很多) 组成, 部分与部分之间由空白隔开 (一些空格, tab, 或是两者的混合). 每一部分都有其自身的含义:

  • 第一部分是分区 (partition) 本身的描述 (到设备文件的路径)
  • 第二部分是分区挂载时的挂载点 (mountpoint)
  • 第三部分说明该分区所用的文件系统类型 (filesystem)
  • 第四部分说明挂载该分区时 mount 命令会用到的参数 (mountoptions). 由于每个文件系统都有其自身的挂载参数, 我们建议您阅读 mount 命令的手册 (man mount) 以获得一个详细的参数列表. 多个挂载参数之间以逗号相隔.
  • 第五部分用来给 dump 程序决定该分区是否需要被 dump. 您可以直接设成 0 (零).
  • 第六部分用在系统非正常关闭的时候, 让 fsck 程序决定各个文件系统以什么顺序进行检查 (check) . 根文件系统 (root filesystem) 应该设成 1, 其他则应该设成 2. (或 0 以标明该文件系统无需被检测).

运行 nano (或您喜欢的编辑器) 来创建您的 /etc/fstab:

代码清单 1: 打开 /etc/fstab
# nano -w /etc/fstab

我们来看看如何把对 /boot 分区的操作写进去. 这仅作为您参考用的例子, 如果您的体系并不需要 /boot 分区 (如 PPC), 请勿照抄哦.

在我们默认的 x86 分区例子中 /boot 是 /dev/hda1 分区, 使用 ext2 文件系统. 它需要在启动的时候被检查 (check), 因此, 我们这么写:

代码清单 2: /etc/fstab 中 /boot 例
/dev/hda1/bootext2defaults12

有些用户不想 /boot 被自动挂载, 那么请将 default 换成 noauto. 这样, 您每次想使用该分区时都必须自己手动挂载.

为了提高性能, 许多用户会乐意使用 noatime 作为挂载参数, 由于访问次数 (access times) 不再被记录 (aren't registered) (一般情况下您都不需要记录访问次数这一功能), 这可以带来系统性能的提升. (Cure: 如果开启了这一功能, 也即是没传递 noatime 这一参数, 据我理解, 系统会对每一个文件每次访问都进行计数, 多了这么一道工序, 系统性能当然 要有所下降):

代码清单 3: 改良后的 /etc/fstab 中的 /boot 例
/dev/hda1/bootext2noauto,noatime12

我们继续, 最后会得到这么三行 (分别是 /boot, / 和交换 (swap) 分区):

代码清单 4: /etc/fstab 中的三行
/dev/hda1/bootext2noauto,noatime12
/dev/hda2noneswapsw00
/dev/hda3/ext3noatime01

最后, 还需要为 /proc, tmpfs (必需的) 以及您的 CD-ROM 添加规则 (当然, 如果您还有其他分区, 您还可以为它们也添加):

代码清单 5: 一份完整的 /etc/fstab 例
/dev/hda1/bootext2noauto,noatime12
/dev/hda2noneswapsw00
/dev/hda3/ext3noatime01
 
none/procprocdefaults00
none/dev/shmtmpfsdefaults00
 
/dev/cdroms/cdrom0/mnt/cdromautonoauto,user00

auto 参数会让 mount 程序自动去猜测合适的文件系统 (推荐使用于可移除的媒质, 这样就可以在一个挂载点挂载多种文件系统 (recommended for removable media as they can be created with one of many filesystems); user 参数则允许普通用户挂载光驱.

现在, 利用上面的例子开始创建您自己的 /etc/fstab 吧. 如果您是 SPARC 用户, 您还得把下面这行加到 /etc/fstab 中:

代码清单 6: 往 /etc/fstab 添加 openprom 文件系统
none/proc/openpromopenpromfsdefaults00

如果您需要 usbfs, 就把下面这行加入到 /etc/fstab 中:

代码清单 7: 往 /etc/fstab 添加 usbfs 文件系统
none/proc/bus/usbusbfsdefaults00

请再检查一遍您的 /etc/fstab, 一切无误之后, 保存退出并继续下面的内容.

(break: 18:01 - 18:32 = 31 min)

8.b. 网络信息

主机名, 域名等

用户要做的事情之一就是给她/他的爱机命名. 这看起来无甚难度, 不过许多用户都在给爱机起名这事上头痛. 为了加快我们进度, 请先了解这一点, 无论您现在给它起啥名字, 在以后都是可以改的 (Cure: 所以嘛, 实在没啥好名字就姑且随便一下下, 把其他事情都做完之后, 大把时间慢慢想). For all we care (?), 您就暂时把爱机叫做 tux, 其域为 homenetwork.

下面将以此为例, 首先我们设置主机名:

代码清单 8: 设置主机名
# echo tux > /etc/hostname

然后设置域名:

代码清单 9: 设置域名
# echo homenetwork > /etc/dnsdomainname

如果您有一个 NIS 域 (您要是不知道这是啥就说明您没有), 您要需要定义它:

代码清单 10: 设置 NIS 域名
# echo nis.homenetwork > /etc/nisdomainname

下面把 domainname 脚本添加到默认运行级别中:

代码清单 11: 把 domainname 脚本添加到默认运行级别中
# rc-update add domainname default

配置您的网络

在您说出 "嘿, 我们不是早就配置好网络了嘛" 之前, 您应该了解一点, 在安装 gentoo 期间我们配置的网络仅仅为安装服务. (Cure: 那时的配置重启就没了). 现在我们要做的事情是为您的 Gentoo 系统配置一个持久可用的网络.

所有的网络信息都写在 /etc/conf.d/net 里了. 它使用一种简单易懂却不是那么直观 (a straightforward yet not intuitive syntax) 的表达方式 -- 如果您不知道如何手工设置网络的话就会这么觉得. 不过不用担心, 我们会向您解释所有东西的:)

首先用您喜欢的编辑器打开 /etc/conf.d/net (以下使用 nano 为例):

代码清单 12: 打开 /etc/conf.d/net 来编辑
# nano -w /etc/conf.d/net

您看到的第一个变量是 iface_eth0, 它使用如下的表达式:

代码清单 13: iface_eth0 表达式
iface_eth0=" broadcast netmask "

如果您使用 DHCP (自动 ip 获取), 您只需把 iface_eth0 的值设为 dhcp. 如果您使用 rp-pppoe (如 ADSL 用户), 只需设成 up. 如果您需要手工地设置您的网络, 可又不熟悉上面提到的术语 (terms), 请阅读理解网络术语这一部分 -- 如果您还没读过的话...

我们来看看三个例子: 例一使用 DHCP; 例二使用静态 IP (192.168.0.2), 其子网掩码为 255.255.255.0, 广播地址为 192.168.0.255 以及网关为 192.168.0.1; 例三则仅仅把网络接口 (interface) 激活, 以便随后使用 rp-pppoe:

代码清单 14: /etc/conf.d/net 例
(使用 DHCP)
iface_eth0="dhcp"
有些网络管理员会要求您使用 DHCP 服务器提供的主机名和域名. 这种情况下, 加入下面的内容让 dhcpd 使用它们.这将覆盖您自己的主机名和域名设置.
dhcpcd_eth0="-HD"
如果您打算使用 NTP 来同步您的时间, 请使用 -N 参数以防止 dhcpd 覆盖您的文件 /etc/ntp.conf.
dhcpcd_eth0="-N"

(使用静态 IP)
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"

(使用 rp-pppoe)
iface_eth0="up"

如果您有多个网络接口, 那就创建更多的 iface_eth 变量即可, 如 iface_eth1, iface_eth2 等等. 至于 gateway 变量您应该只设置一次, 因为每台电脑只能有一个网关.

现在保存退出并继续下面的内容.

启动时自动连接网络

要让您的网络接口在启动时自动激活, 您需要把它们添加到默认运行级别中. 如果您用的是 PCMCIA 的网络接口, 请跳过这一部分操作, 因为 PCMCIA 接口是由 PCMCIA 初始化脚本来启动的.

代码清单 15: 把 net.eth0 添加到默认运行级别
# rc-update add net.eth0 default

如果您有多个网络接口, 您需要为他们创建合适的初始化脚本, 如 net.eth1, net.eth2 等. 您可以使用 ln 来做到:

代码清单 16: 创建更多的初始化脚本
# cd /etc/init.d
# ln -s net.eth0 net.eth1
# rc-update add net.eth1 default

记录下网络信息

您现在需要告诉 Linux 网络情况. 这些信息写在 /etc/hosts 中, 一些域名服务器未能解释的主机名, 都可以经由这文件协助把主机名解释成 IP 地址. 例如, 您的内部网络由三台机器组成, 它们的主机名分别是 jenny(192.168.0.5), benny(192.168.0.6) 以及 tux(192.168.0.7 - 本机), 您需要在 /etc/hosts 中写入:

代码清单 17: 打开 /etc/hosts
# nano -w /etc/hosts

代码清单 18: 填入网络信息
127.0.0.1 localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
192.168.0.7 tux.homenetwork tux

如果您的机器是仅有的一台 (又或者您的域名服务器可以处理所有的域名解释), 那么下面这么一行就足够了:

代码清单 19: 光棍机 (lonely PC) 或全副武装机 (fully integrated) 用的 /etc/hosts
127.0.0.1localhost

保存, 退出, 继续.

如果您没有 PCMCIA, 您可以跳到系统信息. PCMCIA 用户则请阅读下面关于 PCMCIA 的部分.

可选: 让 PCMCIA 工作起来

注: pcmcia-cs 仅于 x86, amd64 以及 ppc 平台上可用

PCMCIA 用户应首先安装 pcmcia-cs 包. "USE=-X" 用来避免在这个时候安装 xorg-x11:

代码清单 20: 安装 pcmcia-cs
# USE="-X" emerge pcmcia-cs

安装完毕, 则将 pcmcia 添加到默认运行级别:

代码清单 21: 把 pcmcia 添加到默认运行级别
# rc-update add pcmcia default

8.c. 系统信息

Gentoo 使用 /etc/rc.conf 作为整体的, 系统级范围的配置. 打开 /etc/rc.conf 然后享受里面的注释吧:)

代码清单 22: 打开 /etc/rc.conf
# nano -w /etc/rc.conf

如您所见, 该文件注释完好以帮助您设定所需的参数. 请万分注意 KEYMAP 的设定: 一旦您选择了错误的 KEYMAP, 往键盘上敲字儿的时候您就郁闷啦 (you will get weird results).

注: 使用基于 USB (USB-base) 的 SPARC 系统或使用克隆 SPARC 的系统的用户应选择一个 i386 的 (如 "us"), 而非 "sunkeymap" 的 keymap

PPC 在大部分系统上使用 x86 keymaps. 想要在启动时使用 ADB keymaps 的用户, 需要在他们的内核中启用 ADB 键码发送 (ABD keycode sending) 选项, 并在 rc.conf 中设定一个 mac/ppc keymap.

配置好 /etc/rc.conf 之后, 保存退出, 继续下一部分配置启动器 (Bootloader).