archlinux 配置文件详细说明[好东西啊]_Aenon_百度空间
  • 安装相关配置文件:
    • /etc/rc.conf
    • /etc/hosts
    • /etc/fstab
    • /etc/mkinitcpio.conf
    • /etc/modprobe.conf
    • /etc/resolv.conf
    • /etc/locale.gen
    • /boot/grub/menu.lst
    • /etc/lilo.conf
  • 其它配置文件:
    • /etc/conf.d/*
    • /etc/profile

/etc/rc.conf

该文件是Arch Linux主配置文件。在这个文件中你可以设置键盘映射、时区、主机名、网络、运行的后台服务、启动时加载的模块、个人设置等等。你必须把这个文件中所有的设置及其说明都详细的看一下,理解它们的含义,根据自己的情况修改它们:

LOCALE 这个变量可以设置系统语言,所有支持i18n的程序都会使用这个设置。在locale.gen文件中可以查看可用的locale。默认设置为美国英语。

HARDWARECLOCK 如果你的BIOS中设置的是UTC,这里就使用UTC,如果BIOS是本地时间,那么使用”localtime”。如果你机器上有某个操作系统无法处理UTC时间(如windows),那么为了避免时间混乱,你需要把BIOS时间设置为本地时间,同时该变量设置为”localtime”;其它情况下{zh0}使用UTC时间,这可以支持日光节约时间及其它一些有益的功能。

TIMEZONE 指定你的时区。所有的时区设置都在/usr/share/zoneinfo目录下面,该变量的值为这个目录下对应设置文件的相对路径。例如中国用户可以设置成”Asia/Shanghai”,也就是使用/usr/share/zoneinfo/Asia/Shanghai这个设置文件。如果你现在还不知道你所在的地方对应的时区文件,可以稍后完成其它配置之后在网络上搜索一下再进行设置。

KEYMAP 该变量定义启动时加载的键盘映射表。所有可用的键盘映射表在/usr/share/kbd/keymaps下可以找到。请注意该设置只对TTY有效,对X无效。默认的设置为美国标准英语键盘。

CONSOLEFONT 该变量定义在启动时setfont程序加载的控制台字体。所有可用的字体在/usr/share/kbd/consolefonts下面可以找到。

CONSOLEMAP 该变量定义在启动时setfont程序加载的控制台映射。所有可用的映射表在/usr/share/kbd/consoletrans下可以找到。如果你在locale变量中使用了utf8编码并且使用的程序会产生8位输出,那么你需要根据自己的语言选择合适的映射表(如拉丁文使用8859-1)。如果你平时在X下工作,可以忽略这个变量,因为它只对控制台程序有效。

USECOLOR 启用(或者禁用)启动时输出彩色信息。

MOD_AUTOLOAD 如果设置为“yes”,Arch在启动时自动扫描机器硬件并试图自动加载合适的模块,这个功能是通过hwdetect程序完成的。

MOD_BLACKLIST 这是一个数组变量,所有写入该变量的模块在启动的时候将会被禁止加载。例如,如果你不想使用PC扬声器,你可以把pcspkr模块加入到这个变量中。

MODULES 这也是一个数组变量,所有写入该变量的模块在启动的时候都会被自动加载,这可以自动加载那些没有通过modprobe.conf绑定到特定硬件设备的模块。直接把模块名称写入到这个变量当中即可,如果该模块需要输入参数可以在modprobe.conf指定。在模块名称前面加一个”!”可以禁止启动时该模块的加载(这与MOD_BALCKLIST不同!),这样在必要的时候可以临时取消一些模块的加载。在这里加入一些指定的网络模块可以使得系统总是自动按照指定的模块序列检测网卡,这样固定的网络设备具有固定的接口编号,这可以避免每次启动系统后网络接口编号的混乱。当然,这个问题更好的解决办法是在udev中设定固定的接口标签。

USELVM 设置为“YES”时,在系统初始化过程中会调用vgchange程序来xxLVM组。如果你不知道这是什么意思,就不用管它。

HOSTNAME 该变量设置机器主机名(不包含域部分)。这个变量该如何设置xx取决于你的选择,它可以是任何字母、数字、通用特殊字符的组合。当然也不要太出格。如果不明白就使用默认设置好了。

INTERFACES 该变量用来设置网络接口。默认设置及注释掉的说明很好地示范了设置方式。默认是使用DHCP自动配置网络;如果你不使用DHCP,你需要在这个变量中填入一些参数,至于参数的格式,你只要记住一点:该变量的内容与用ifconfig命令手动配置网络时传递的参数相同。

ROUTES 通过该变量来定义静态网络路由。可以参考一下默认网关的定义方式。基本上变量的内容与传递给routes add命令的参数相同。如果你对此不清楚,可以不用修改它。

NET_PROFILES 通过该变量可以在启动时加载不同的网络配置。在多网络环境中可以为每个网络进行不同的配置,然后通过该变量指定一个配置文件,方便地替代 INTERFACES/ROUTES变量中的设置。如果你的机器需要在不同的时间、不同的地点连接不同的网络(如笔记本),你可以在/etc/network-profiles/目录下建立一些不同的配置文件(该目录下有一个设置模板以供参考),然后通过NET_PROFILES变量指定要加载的配置即可。

DAEMONS 该变量中列出的是一些自动启动的脚本名称。所有的脚本都放在/etc/rc.d目录下。在脚本名称前面加一个“!”表示该脚本不会被执行;在脚本名称前面加一个”@”表示该脚本在后台执行,即不等序列中所有的脚本启动完成就直接继续下面的操作。一般情况下默认启动的一些脚本不需要进行修改,只有当你安装了一些服务程序(如sshd)并且希望它能在系统启动时自动运行,你可以把它的服务名称加入到这个变量当中。这一点是Arch与其它发行版不同的地方,其它发行版大多通过不同运行级别的到/etc/init.d/下的链接来完成脚本的自动运行。

/etc/hosts

在这个文件中可以设定所有网络中主机名/ip的对应关系。如果DNS无法解析某个主机名,你可以将该主机名及其IP添加到这个文件中进行正确的解析。一般说来不需要修改这里的内容,只需要把自己机器的主机名+域及机器IP写到该文件即可,因为有一些服务程序(如postfix)如果不能正确解析本机名称会发生错误。如果你不了解相关内容,可以通过man hosts察看相应说明,或者让该文件保持默认即可。

/etc/fstab

该文件保存文件系统及挂载点设置。安装程序已经按照你的选择创建了一个合适的fstab文件,你需要检查一下以确保无误(特别是当你使用LVM,RAID,加密根设备的时候)。

在当前的内核中,对ATA/IDE子系统引入了一个比较重要的变化:使用新的pata(并行ATA)驱动代替旧的IDE子系统,新的驱动下IDE磁盘的名称由had,hdb等变成sda,sdb等,和SCSI、SATA设备名称相同。所以当在/etc/mkinitcpio.conf的HOOKS中使用新的pata驱动时,/etc/fstab中的分区名称要作相应的改动!除了直接使用设备名称,还可以通过/dev/disk/by-uuid/…或者/dev/disk/by-label…的方式来引用正确的分区。仔细检查/etc/mkinitcpio.conf中的HOOKS,如果你使用了pata代替ide,硬盘设备名称形式为sd?;如果没有使用pata,硬盘设备名称形式为hd?。其它用到硬盘设备名称的配置文件也需要进行相应的修改。

/etc/mkinitcpio.conf

该文件用来调整系统初始化虚拟磁盘(即常说的initrd,initramfs)。initrd是一个压缩镜像,内核启动的时候会把它加载到内存当中。使用initrd是为了使系统自举以有能力访问真正的根文件系统。这意味着它必须加载访问IDE、SCSI、SATA、USB/FW等设备所需要的模块。一旦initrd加载了合适的模块(无论是直接通过modprobe命令还是通过udev),它就将系统控制权转交给Arch系统并继续启动过程。所以,initrd中只需要包含访问根文件系统所必须的模块,没有必要把所有要加载的模块都放到initrd当中。大多数要使用的模块在稍后的init进程中由udev加载。

默认情况下,mkinitcpio.conf中的设置是通过HOOKS加载支持全部IDE、SCSI、SATA设备的模块,也就是说默认的initrd几乎适合所有用户。这样做的缺点就是可能会加载许多不需要的模块,启动后通过lsmod命令可以查看所有加载的模块。加载过多的模块并不会对系统产生多大危害,但是许多用户仍然不喜欢这样的结果。这些用户可以修改mkinitcpio.conf文件的HOOKS,去除不需要的模块(如IDE、SCSI、RAID、USB等),然后重新制作initrd。或者有经验的用户可以将需要的模块放在MODULES变量中加载,这可以进一步精简HOOKS。但是要注意察看文件中的注释,因为精简HOOKS是不是一件简单的事情。

如果你正在使用RAID或者加密的根文件系统,你需要设置底部的RAID/CRYPT变量。在维基中可以获取更多关于RAID/LVM、文件系统加密、mkinitcpio方面的内容。

当配置好mkinitcpio.conf文件后,必须以根用户运行mkinitcpio –p kernel26命令来重新制作镜像(除非你正在安装系统当中,此时当安装完内核之后由安装程序自动制作镜像)。

警告:如果mkinitcpio.conf文件设置有错误,系统可能会无法启动!所以在修改该文件的时候一定要非常小心。

在安装内核的时候会自动生成一个备用启动选项,它使用一个安全的默认镜像,当你配置的系统无法启动时可以试着使用该选项启动系统。

请仔细阅读fstab小节中关于pata转变问题的警告!

/etc/modprobe.conf

该文件告诉内核在启动时需要为系统设备加载的模块以及模块所需的参数。例如,为了让内核能够为Realtek8139网卡加载驱动模块并将其初始化为eth0网络接口,在modprobe.conf文件加入一行:alias eth0 8139too。

该文件的语法规则与旧的modules.conf几乎相同(除非你使用一些很怪异的选项)。大多数用户不需要更改这个文件。更多详细信息可以察看:man modprobe.conf。

/etc/resolv.conf

通过该文件来手动设置要使用的域名解析服务器。文件格式为:search domain.tld nameserver 192.168.0.1 nameserver 192.168.0.2。将”domain.tld”及相应的IP换成自己的设置即可。”search domain.tld”表示当主机名不完整时,自动添加相应的域”domain.tld”来进行解析。这样设置后,当你”ping myhost”时实际上就是”ping myhost.domain.tld”。一般来说这些设置不是非常重要:如果你使用DHCP,就没必要修改该文件,当网络启动的时候系统会自动的修改合适的值;如果你使用静态IP,一般只要按照以前记下的网络信息将域名服务器的IP添加进去即可。

/etc/locale.gen

该文件列出了所有支持的locale及字符集。根据你的自己的语言文字,将合适的locale反注释掉,以根用户运行locale-gen命令来生成相应的locale即可,然后在系统中就可以使用这些locale了(例如将/etc/rc.conf中的LOCALE变量设置为对应的locale了,或者在启动X的时候设定合适的locale变量)。

在安装过程中,你不需要手动运行locale-gen。当你手动编辑完locale.gen文件后,安装程序会自动运行该命令。默认情况下所有的locale(包括/etc/rc.conf中默认使用的en_US.utf8)都被注释掉了,为了使你的系统能正常工作,你必须编辑该文件并至少反注释掉在/etc/rc.conf中使用的locale(对中国用户来说一般只保留en_US及zh_CN相关的即可,译者注)。

/boot/grub/menu.lst

GRUB是Arch Linux的默认引导器。你必须检查并修改该文件来适应你的启动设置。关于LILO的用法请参考其它文档。

请确保你自己已经仔细阅读了fstab小节中关于pata转变问题的警告!

配置GRUB非常简单,{zd0}的难题是它使用了不同于/dev/的命名方案。硬盘通过(hd0),(hd1)…的形式命名,设备序号与其在IDE/SCSI总线上的位置相对应,分别对应Arch Linux系统中的sda,sdb…。而且分区编号也是从0开始。在默认的menu.lst文件有有一些转换的例子可以帮助你理解这种用法。

当你掌握了设备命名方法之后,你只要为你的启动选项设定正确的内核、正确的根系统分区,并取一个好听的名字就可以了。如果使用打包好的2.6.x内核,还需要添加一个合适的虚拟磁盘镜像文件。镜像文件的位置必须与内核位置相同。一般情况下使用默认设置即可,你只需要检查一下启动根分区(/boot)和系统根分区(/)的设置是否正确即可(特别是要注意到pata问题)。

如果要为其它的操作系统创建一个启动选项,可以参照下面的例子,它可以启动任何一个分区上的引导扇区。用这种方法可以方便的启动微软所有的操作系统,只要把下面这段代码加入到menu.lst文件的后面并修改相应的启动分区即可。

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

关于利用GRUB启动其它操作系统方面的内容请参考GRUB在线手册。

GRUB配置文件设置正确后,安装程序会提示安装GRUB,一般按照默认选项将其安装到MBR即可。

/etc/conf.d/*

在安装过程中,该目录下的内容并不重要。

一些服务程序脚本在这个目录中会有一个相应的配置文件,其中包含了一些有用的默认值。当一个服务程序启动后,它首先从这个配置文件中读取设置,然后再读取/etc/rc.conf中的设置。这意味着你可以将一些服务公用的设置放在/etc/rc.conf文件中来简化设置。当然如果你喜欢为每个服务程序单独设置变量,也可以在/etc/conf.d分别为它们创建一个配置文件。所有的服务都可以通过简单的脚本进行控制,这是多么美妙的事情。

/etc/profile

当每个用户登录到系统并开始初始化时会运行该脚本。在Arch Linux中该脚本非常简单(同其它方面一样,KISS)。你可以根据自己的需要来编辑它。



郑重声明:资讯 【archlinux 配置文件详细说明[好东西啊]_Aenon_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——