配置文件

在启动刚安装好的系统前,你至少应该看看这些文件

配置文件列表

/etc/rc.conf

这是 Arch Linux 的主配置文件。通过它你可以设置你的键盘、时区、主机名、网络、后台程序、启动时加载的模块,用户设置以及更多。你应该把文件中的设置从头到尾读一遍并搞懂它们:

HARDWARECLOCK(硬件时钟)
如果你的 BIOS 时钟设置的是 UTC 或是 GMT ,这里你都可以设为 UTC,又或者是 localtime,如果你的 BIOS 里是这么设置的话。假如你已经安装了一个操作系统但并不能正确的处理 UTC BIOS 时间,就像 Windows,那就在这里选择 localtime,否则最好还是使用 UTC,这样 daylight savings time(译者注:即日照节约时间。由于纬度的关系,由国家规定将时间拨快一小时,以节约能源)就不是什么问题了,它还有些别的好处。
TIMEZONE(时区)
指定你的时区。时区的相对路径从时区信息文件目录 /usr/share/zoneinfo 开始。例如,german 的时区是 Europe/Berlin,即 /usr/share/zoneinfo/Europe/Berlin。即使不知道你的时区文件确切的名字,现在也不用担心。
KEYMAP(键盘映射)
定义启动时跟随 loadkeys 程序加载的键盘映射。可用的键盘映射位于 /usr/share/kdb/keymaps。注意:这项设置仅对终端有效,而不作用于任何图形化的窗口管理器或 X。
CONSOLEFONT(控制台字体)
定义启动时跟随 setfont 程序加载的控制台字体。可用的字体位于 /usr/share/kdb/consolefonts
USECOLOR(使用颜色)
启用(或禁用)启动时的彩色状态信息显示。
USELVM(使用 LVM)
设为 "YES" 来让系统在初始化时运行 vgchange 从而激活所有 LVM 组。如果你不明白这是什么意思,那就别碰它。
HOSTNAME(主机名)
设置机器的主机名(不包括域的部分)。这完全是你自己的选择,你可以使用字母、数字和一些常用的特殊字符例如破折号。但可别太标新立异了。
MODULES(模块)
在这里你可以定义启动时所需加载模块的名称而无需像 modprobe.conf(如果你在使用 2.4.x 的内核,那就是 modules.conf) 那样让它们绑定硬件设备。加入模块的名称就行了,如果需要,可以在 modprobe.conf 里加入一些选项。在模块名称前加叹号后该模块在启动时将不会被加载。
INTERFACES(接口)
在这里定义你的网络接口。默认部分及其说明已经足以解释清楚了。如果你不使用 DHCP 来设置而希望手工的在 shell 里进行设置,那就记下 ifconfig 命令显示出的与你将会设置的设备名同名的变量值。
ROUTES(路由)
在这里你可以使用任意的名字定义你自己的静态网络路由。可以参考 default gateway(默认网关)。基本上这部分和你使用 route add 命令提交的是一样的,所以如果你不知道该写些什么,推荐阅读 man route
DAEMONS(后台程序)
这部分只列出了 /etc/rc.d 内包含的启动时触发的脚本的名称。如果脚本名前面加了叹号,它将不会被执行。通常来说你是不需要改动默认设置的,但如果你安装了像 sshd 这样的系统服务,那就要经常进行编辑了。

/boot/grub/menu.lst

GRUB 是 Arch Linux 默认的启动管理器如果你使用 GRUB ,那么你应该为你的启动设置检查和修改这个文件,否则你应该看如何 设置 LILO

设置 GRUB 是十分容易的,最大的难处在于它使用了一套和 DevFS 以及 /dev 不同的设备命令方式;大至上,你的硬盘是被分为 (hd0)(hd1) 等等的,IDE/SCSI 总线也使用同样的号码排列,就如 DevFS 子目录的 disc0disc1等。磁盘上的分区为 (hd0,0)(hd0,1),如此类推,0 意味着第一个分区。默认的

menu.lst</codE> 里有一些例子,好让你弄明白。
</p>
<p>
一旦你掌握了设备命令的规则,你需要做的就只是为你的启动环节<strong>选择一个好的抬头</strong>,通过参数的形式为 <code>root
提供正确的分区设备让它在启动时作为 / 被挂载,然后加入一行 kernel,它包括内核所在的分区和路径,以及启动参数。默认的设置应该是正常的了,你只需要检查 rootkernel 两行的信息是否正确。

如需为其它操作系统启动扇区的加载添加启动选项,这个例子可能会有帮助。只需在文件的最后加入这一块,然后根据包含所需启动系统的启动扇区的分区来修改分区设备,你或许就可以成功的启动任何微软的操作系统。

# (1) Other OS
title My Other OS
rootnoverify (hd0,1)
makeactive
chainloader +1

如要需要其它操作系统的高级设置,请查阅 GRUB 在线手册.

/etc/lilo.conf

这是 LILO 启动管理器 的设置文件。如果想在你的系统上使用 LILO,检查这个文件确保它是正确的。查看 LILO 文档获得帮助。

你应当检查的是 root= 这一行是否在映像部分内以及 boot= 是否位于文件的起始位置。root 这一行指定的是启动时作为根文件系统被挂载的设备。如果你不知道这里应该输入些什么,切换到另一个终端键入 mount 看看所列出的当前已挂载驱动器,然后查找显示着挂载在 /mnt 类型上的设备名的那行,这一行开始部分的设备路径就是应该在你的 lilo.confroot 那行输入的路径。

大多数情况下,boot 这行的默认设置应当是ok的,除非你想为多个操作系统做一些自作聪明的启动管理设置。这里涉及的设备应当与 root 的那行一样有着相同的盘号,但不是以 part1 结尾或仅仅是一个 disc。这一步涉及整个盘片,而不仅仅是一个分区,因为它将按你通常要的那样指示着 LILO 写入 MBR(主引导记录)。如果不是,你可以在稍后修复这可覆写的启动扇区。

为预防一些悲剧的发生,你应当确认你知道如何恢复其它操作系统的启动扇区,例如使用 Windows 的 FIXBOOT/FIXMBR 工具。

从安全角度来说,你应该保留 prompt 行下面的 lba32 选项,这将避免很多问题。

有时候(取决于你的 BIOS)LILO 将不会在启动时运行而且会不停的弹出一个错误。多数情况下你可以通过移去 lba32 这一项解决,又或者你的硬件设置有些特别,这意味可能是你的 CD-ROM 驱动器是主盘而硬盘驱动器是从盘,而你的 BIOS 又对此非常敏感从而拒绝启动。为避免这种情况,你可以试试在 IDE 总线上把安装盘设置为主盘。如果你有一个 IDE 和 SCSI 混合的系统而情况又持续的话,那你可能需要用 LILO 里的 diskbios 选项作一些尝试;系统内的磁盘驱动器按 BIOS 进行顺序编号,从 0x80 开始。如果足够幸运,那 SCSI 控制器将会告诉你哪个驱动器有着哪个 BIOS ID,可是通常没有那么的走运。驱动器如何编号取决于你的 BIOS,所以最坏的情况下你只能猜了。典型的如下:

boot=/dev/discs0/disc0/disc
disk=/dev/discs0/disc0/disc bios=0x80

disk 选项为 linux 的已知磁盘设备映射 BIOS ID。注意:这仍不能保证它们能正常工作,也许还会出错,但这总比你单单的重新整理硬件好。在这部分,可能出错以及需要特别处理的东西实在是太多了。多数情况下问题都可以通过 lba32 选项解决。旧式的硬盘在进行映射前往往都需要特别关注

读这节的时候别烦躁,我(Dennis)就试过在一个奇怪的系统上因为这个问题犯错,弄懂它们是个好主意。你也可能不会遇到这些问题,但如果有,那就用 GRUB吧 :)

如何仅使用拯救磁盘重建 LILO 启动扇区会在稍后解释。

/etc/hosts

这里你可以设置如何在你的网络上为其它计算机绑定主机名/IP。如果主机名不是 DNS 的一部分,你可以把它加进去。通常来说你不需要改变任何东西,但你可能想要在文件内加入系统的主机名和主机名 + 域名,为你的网络接口解析这个 IP。如果你不知道你在干什么,那在阅读 man hosts 前就不要做什么改动。

/etc/fstab

你的文件系统设定及挂载点在这里进行设置。安装程序应该已经为你创建了必要的项目,但你还是应该检查一下确保它的正确性。

/etc/modprobe.conf

仅适用于 2.6.x 内核

这个文件告诉内核它需要加载系统的哪些设备。例如,需要内核在启用网络的时候加载你的 Realtek 8139 以太网模块(如,设置 eth0),用这一行:

alias eth0 8139too

这个文件的设置语法几乎与旧的 modules.conf 一样,除非你使用了一些奇怪地选项如 post-install,那你就需要花些时间阅读 man modprobe.conf了。

/etc/modules.conf

仅适合于 2.4.x 内核

这个文件告诉内核它需要加载系统的哪些设备。例如,需要内核在启用网络的时候加载你的 Realtek 8139 以太网模块(如,设置 eth0),用这一行:

alias eth0 8139too

/etc/resolv.conf

利用这个文件设置你将要用到的 nameserver(即域名服务器)。设置如下:

search domain.tld
nameserver 192.168.0.1
nameserver 192.168.0.2

用你的设置替换 domain.tld 和 ip 地址。search 域指定了自动为非法主机名添加的域。设置了这一项,ping myhost 将会如上所设的那样成为 ping myhost.domain.tld。这些设定通常不太重要,大多数人都不管它。如果你使用的是 DHCP,当网络启用时,这个文件会自动被填上正确的值,这意味着你完全可以也应该很高兴的跳过它

/etc/conf.d/*

设置过程中,这个文件是完全不重要的,提起它只是因为有趣。

部分后台程序脚本在这个目录下对应着一个配置文件,它包含着一些或多或少有用的默认值。当一个后台程序启用时,它会首先在这个目录下查找它的配置文件的设定,然后是 /etc/rc.conf。这意味着你只需在 rc.conf 内设置适当的变量值就可以轻而易举的集中所有后台程序的控制选项,又或者你更喜欢分开多个文件进行设置。如果都是简单的脚本,生活是不是很棒?

/etc/profile

这个脚本是每个用户登入初始化系统时运行的。在 Arch Linux 下它是很简洁的(多数设置是),你可以根据自己的需要编辑或定制它。

特别指出,如果你要改变你的语言设定(默认的是英语),你可以在 /etc/profile 加入这行 export LANG=my_locale。使用 locale -a 命令可以获得系统可用 locales 的列表,选择一个最适合你替换 LANG 的值。