`
jythoner
  • 浏览: 602494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

archlinux 配置文件详细说明

阅读更多
安装相关配置文件:
/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”;其它情况下最好使用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程序来激活LVM组。如果你不知道这是什么意思,就不用管它。

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

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非常简单,最大的难题是它使用了不同于/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)。你可以根据自己的需要来编辑它。
分享到:
评论
2 楼 jythoner 2009-06-24  
ybbkd2 写道
关注你,觉得你的blog很有意思,最近工作没?
难道是想从开发又转到测试或系统工程师?
有空聊聊 ybbkd2@hotmail.com

呵呵,感谢关注。
最近又回到ibm做外包了,想在ibm闭关修炼一年,然后再换更高级的工作。在这时间充裕,又有钱拿。明天早晨加你,慢慢聊,hoho
1 楼 ybbkd2 2009-06-23  
关注你,觉得你的blog很有意思,最近工作没?
难道是想从开发又转到测试或系统工程师?
有空聊聊 ybbkd2@hotmail.com

相关推荐

    安装Archlinux时相关配置文件说明

    安装Archlinux时相关配置文件说明: /etc/rc.conf /etc/hosts /etc/fstab /etc/mkinitcpio.conf /etc/modprobe.conf /etc/resolv.conf /etc/localce.gen /boot/grub/menu.lst /etc/libo.con /etc/conf.d/* /etc/...

    inode-client.tar.gz

    iNodeClient客户端的Archlinux构建脚本,包含PKGBUILD、ncurses5依赖、systemd配置文件 软件本体在这里下载: https://download.csdn.net/download/chaikau/12289335 解压后将软件本体也放到目录中: ...

    workbench:工作站安装套件

    计划在将来配置对服务器上的用户配置文件(例如profile , bash , vim )有用的角色,以支持CentOS / RHEL。 安装 配置文件是 。 根据需要对其进行编辑后,运行 ansible-playbook install.yml 开始安装过程。 ...

    telegram-pi-bot:在Raspberry pi上运行的python-telegram-bot设置

    通过JSON配置文件配置的Webhooks 配置端点以调用给定命令 与IFTTT Maker频道完美搭配 基本的多语言支持 en pt-br 建立 硬件要求 树莓派 电源线 MicroSD卡 网络连接 安装东西 这是ArchLinux上完整设置的指南,如果您...

    go_pkg.tar.gz

    树莓派(archlinux)中vim配置YouCompleteMe插件不是一般的麻烦,特别是执行git submodule update --init --recursive 太慢了,所以我把已经离线好的文件整理打包,需要的可以下载下来,按照说明放到相应位置。...

    vim-IDE.zip

    树莓派(archlinux)中vim配置YouCompleteMe插件不是一般的麻烦,特别是执行git submodule update --init --recursive 太慢了,所以我把已经离线好的文件整理打包,需要的可以下载下来,按照说明放到相应位置。...

    dotfiles:我的个人dotfiles

    i3 / Linux配置文件(Tokyo Rice) 我在Linux上使用i3进行设置时的各种配置文件(第一!)。 Arch用户可以直接运行install-packages.sh。 对于其他发行版,您可以查看文件并手动安装依赖项。 另外,如果您想获取大...

    Profiles:一个简单的客户端模块,允许您即时切换设置

    - 对于那些想要最新的未发布功能的人- 对于那些想要帮助的人编译安装 Java Java JDK 用于编译配置文件。 下载并安装 Java JDK。 。 向下滚动,接受Oracle Binary Code License Agreement for Java SE并下载(如果您...

    braus:一个简单的应用程序,可在打开任何URL时选择浏览器

    如果您有多个浏览器或配置文件,并且希望能够在某些浏览器中打开某些链接,则此功能特别有用。 对于Web开发人员非常有用,但对于其他许多人也非常有用。 GNU / Linux替代了诸如Choosy / Browserchooser之类的应用...

    usb-multiboot:这是关于如何使用 Syslinux 为多个操作系统创建可启动 USB 驱动器的文档

    使用 Syslinux 设置具有多个操作系统的可启动 USB 驱动器准备 U 盘分区创建文件系统在设备上安装 Syslinux bootloader 复制所需的 c32 模块安装 Syslinux 写 MBR 部署示例配置测试样本配置安装 Memtest86+ 安装 ...

    cloud:VPS的Ansible设置

    系统总览全盘加密LVM on LUKS分区方案普利茅斯支持良好的启动屏幕特殊配置具有条的自定义i3窗口管理器具有自动oh-my-zsh集成的z-shell rxvt-unicode和kitty真彩终端带Vim绑定的tmux其他安全功能使用firejail对敏感和...

    .dotfiles:这里没有〜的地方!

    目录屏幕截图介绍该存储库包含我的个人配置文件(也称为dotfiles )。 软件包列表可以在~/.pkglist/ 。 要安装所有官方软件包,您可以使用例如cat .pkglist/pacman | pacman -S - cat .pkglist/pacman | pacman -S -...

Global site tag (gtag.js) - Google Analytics