手册:Alpha/安装/配置系统
Alpha 手册 |
---|
安装 |
关于安装 |
选择安装媒介 |
配置网络 |
准备磁盘 |
安装 Stage3 |
安装基本系统 |
配置内核 |
配置系统 |
安装系统工具 |
配置引导程序 |
安装收尾 |
使用Gentoo |
Portage 介绍 |
USE 标记 |
Portage 功能特性 |
Initscript 系统 |
环境变量 |
使用Portage |
文件和目录 |
变量 |
混合使用不同的软件分支 |
额外的工具 |
自定义软件包仓库 |
高级特性 |
网络配置 |
介绍 |
高级配置 |
模块化网络 |
无线 |
添加功能 |
动态管理 |
文件系统信息
关于 fstab
在Linux系统下,系统所用到的所有分区都必须在 /etc/fstab 文件中指明。这个文件包含了这些分区的挂载点(在系统目录树中的位置)、挂载方法和特殊挂载选项(是否自动挂载,是否某个用户可以挂载它等)。
创建 /etc/fstab 文件
/etc/fstab 文件使用一种特殊语法格式。每行都包含六个字段。这些字段之间由空白键(空格键,tab键,或者两者混合使用)分隔。每个字段都有自己的含意:
- #第一个字段显示要挂载的特殊 block 设备或远程文件系统。 有几种设备标识符可用于特殊块设备节点,包括设备文件路径,文件系统标签,UUID,分区标签以及UUID。
- 第二个字段是分区挂载点,也就是分区应该挂载到的地方。
- 第三个字段给出分区所用的文件系统的类型。
- 第四个字段给出的是挂载分区时 mount 命令所用的挂载选项。由于每个文件系统都有自己的挂载选项,我们建议系统管理员阅读 mount 手册(man mount)以获得所有挂载选项的列表。多个挂载选项之间是用逗号分隔的。
- 第五个字段是给dump使用的,用以决定这个分区是否需要dump。一般情况下,你可以把该字段设为
0
(零)。 - 第六个字段是给fsck使用的,用以决定系统非正常关机之后文件系统的检查顺序。根文件系统应该为
1
,而其它的应该为2
(如果不需要文件系统自检的话可以设为0
)。
Gentoo stage 文件默认提供的 /etc/fstab “不”是有效的fstab 文件,它只是提供了几个模板,可用于输入相关值。
root #
nano /etc/fstab
在文本的其余部分,使用默认的块设备 /dev/sd* 文件作为分区标识符。
分区表和 UUID
MBR(BIOS)和GPT都支持“文件系统”标签和“文件系统”的UUID。 这些属性可以在尝试查找和挂载块设备时使用,作为 mount 命令的替代方法,在 /etc/fstab 中定义。文件系统标签和 UUID 由 LABEL 和 UUID 前缀标识,可以使用 blkid 命令查看:
root #
blkid
如果分区中的文件系统被擦除,则文件系统标签和UUID值将随后被更改或删除。
出于唯一性,建议使用 MBR 分区表的读者使用 UUID 来定义/etc/fstab 中的可挂载卷。
LVM 卷文件系统的 UUID 与其 LVM 快照相同,因此应避免使用 UUID 挂载 LVM 卷。
分区卷标和 UUIDs
已经使用 GPT 磁盘的用户有一些更稳定的选项可用于在 /etc/fstab 中定义分区。分区卷标和分区 UUID 可以用来标识块设备的单独分区,而不管为分区本身选择了什么文件系统。分区卷标和 UUID 分别由 PARTLABEL 和 PARTUUID 前缀标识,可以通过运行 blkid 命令在终端中很好地查看分区标签:
root #
blkid
虽然对于分区表不总是正确的,但使用UUID来标识fstab 中的分区,即使将来文件系统更改,也可以保证在寻找某个卷时引导加载程序不会被混淆。对于经常重新启动并定期添加和删除SATA设备时,在 fstab 中定义分区,使用旧的默认分区文件 (/dev/sd*N非常危险) 。
块设备文件的命名取决于许多因素,包括磁盘如何以及以什么顺序加载到系统。它们也可能以不同的顺序显示,具体情况取决于在早期启动过程中内核首先检测到哪些设备。 有了这个说明,除非有人打算不断地解决磁盘排序问题,使用默认块设备文件是一个简单和直接的方法。
让我们来看看如何写下/boot/分区的选项。 这只是一个示例,应根据安装时的具体情况进行修改。 在alpha分区示例中, /boot/ 通常是/dev/sda1 ext4作为文件系统。 它需要在启动期间进行检查,所以我们写下:
/etc/fstab
/etc/fstab 中 /boot 行的示例# 调整与准备磁盘步骤的任何格式差异 /dev/sda1 /boot ext2 defaults 0 2
有些用户不希望/boot/分区自动挂载,以提高系统的安全性。 他们应该用noauto.代替 defaults。这意味着这些用户将需要在每次他们想要使用它时手动挂载这个分区。
增加符合你分区方案的规则,为你的光驱(当然,如果你有其他分区或者驱动器,也为它们加上)添加挂载规则。
下面是/etc/fstab文件的例子:
/etc/fstab
一个 /etc/fstab 例子# 调整与准备磁盘步骤的任何格式差异 /dev/sda1 /boot ext2 defaults,noatime 0 2 /dev/sda2 none swap sw 0 0 /dev/sda3 / ext4 noatime 0 1 /dev/cdrom /mnt/cdrom auto noauto,user 0 0
auto
选项可以使mount 猜测文件系统(推荐对于可移动设备采用这个选项,因为它们可能采用很多不同的文件系统),而 user
选项使得非root用户可以挂载光驱。
大多数用户会添加 noatime
挂载选项来提高性能,因为访问时间没有注册(一般不需要),这将会使系统更快。也推荐使用固态硬盘(SSD)的系统添加该选项。
由于会使性能下降,所以不推荐在 /etc/fstab 定义
discard
挂载选项。一般来说,最好使用作业调度器(例如 cron 或 timer (systemd))定期丢弃块。查看定期 fstrim 作业来获取更多信息。仔细检查/etc/fstab文件,保存并退出以继续。
网络信息
特别注意,以下部分可以帮助读者快速设置他们的系统接入局域网。
对于运行 OpenRC 的系统,更多网络设置的细节参考高级网络配置章节,手册末尾附近有介绍。有更具体网络需求的系统可能需要跳过此章节,然后返回此处继续后续的安装。
更多关于 systemd 具体的网络设置,请参考 systemd 文章的网络部分。
主机名
系统管理员必须要做的事情之一就是命名他们的机器。尽管这看上去很容易,但是很多用户觉得很难起一个合适的主机名。为了加快进度,应该知道所有你所命名的名字都是可以在今后重新修改的。下面的示例使用 tux 作为主机名。
设置主机名(OpenRC 和 systemd)
root #
echo tux > /etc/hostname
systemd
可以使用 hostnamectl 工具在正运行 systemd 的系统设置系统的主机名。
可以将设置主机名为 "tux":
root #
hostnamectl hostname tux
运行 hostnamectl --help 或 man 1 hostnamectl 查看帮助。
网络
配置网络接口有许多可用的方法。本章节只介绍了其中一些方法。你可以选择一个看起来最合适的设置方法。
通过 dhcpcd 使用 DHCP (任何 init 系统)
大多数 LAN 网络都运行 DHCP 服务器。如果是这种情况,则建议使用 dhcpcd 程序获取 IP 地址。
安装:
root #
emerge --ask net-misc/dhcpcd
在 OpenRC 系统中启用和开始服务:
root #
rc-update add dhcpcd default
root #
rc-service dhcpcd start
在 systemd 系统中启用和开始服务:
root #
systemctl enable --now dhcpcd
完成这些步骤后,下次系统启动时,dhcpcd 应该就会从 DHCP 服务器获取 IP 地址。 更多细节请查看 Dhcpcd 文章。
netifrc (OpenRC)
配置网络
在Gentoo Linux安装时,网络已经配置。然而,这是安装的 live 环境本身的配置,并不是新的系统环境的网络配置。现在你所要设置的是 Gentoo 系统的永久网络配置。
更多关于网络配置的详细信息,包括网卡绑定、网桥、802.1Q VLANs和无线网络在内的高级配置会在高级网络配置这一部分介绍.
/etc/conf.d/net 当中收集了所有的网络信息。尽管这个文件采用直接易懂的语法,如果你还是因为觉得不够直观而完全不知道如何手动进行网络配置的话,请不用担心,我们将一一解释。在 /usr/share/doc/netifrc-*/net.example.bz2 中有一个详细注释过的例子,它涵盖了许多种类不同的配置。
首先安装net-misc/netifrc:
root #
emerge --ask --noreplace net-misc/netifrc
系统默认使用DHCP。如果使用DHCP的话,你需要安装一个DHCP客户端。这个将在稍后的安装必要的系统工具部分介绍。
如果你需要配置你的网络连接,不管是因为你是需要指定DHCP选项还是你不使用DHCP,打开 /etc/conf.d/net:;
root #
nano /etc/conf.d/net
设置 config_eth0 和 routes_eth0 输入IP地址信息和路由信息:
假定网络接口名称是 eth0。这个名称非常依赖于系统,如果安装介质足够新,则建议在从安装介质引导时重命名接口。更多信息可以在网络接口命名章节中找到。
/etc/conf.d/net
静态IP定义config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" routes_eth0="default via 192.168.0.1"
要使用DHCP,定义 config_eth0:
/etc/conf.d/net
DHCP 配置config_eth0="dhcp"
请阅读 /usr/share/doc/netifrc-*/net.example.bz2 获取额外的配置文件选项的列表。如果你需要设定特殊的 DHCP 选项,请参考你的 DHCP 客户端的 man 手册页。
如果你有多个网络接口,那么重复之前对于config_eth1,config_eth2等操作步骤。
现在保存配置并退出。
在启动时自动启用网络连接
为了在启动时自动激活网络接口,你必须添加这些到default运行级别。
root #
cd /etc/init.d
root #
ln -s net.lo net.eth0
root #
rc-update add net.eth0 default
如果系统有多个网络接口,那么需要创建适当的net.* 文件,就像我们使用net.eth0一样。
如果在引导系统后,发现网络接口名称(目前写作 eth0
)是错误的,那么执行以下步骤来纠正这一点:
- 用正确的名称更新 /etc/conf.d/net(比如说
enp3s0
或者enp5s0
取代eth0
)。 - 创建符号链接(比如 /etc/init.d/net.enp3s0)。
- 删除旧的符号链接(rm /etc/init.d/net.eth0)。
- 创建新的默认运行级别。
- 删除旧的运行级别,使用 rc-update del net.eth0 default。
hosts 文件
现在你需要告诉Linux有关你的网络的信息。这需要在/etc/hosts文件中定义,它将帮助你将那些无法被域名解析器解析的主机名解析成IP地址。
root #
nano /etc/hosts
/etc/hosts
Filling in the networking information# 定义当前系统 127.0.0.1 tux.homenetwork tux localhost # 可选,定义网络上的其它系统 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny
保存并退出编辑器,继续
系统信息
Root 密码
使用passwd命令设置root密码。
root #
passwd
稍后将为日常操作创建其他常规用户帐户。
配置引导和启动
OpenRC
当在 Gentoo 中使用 OpenRC 时,系统使用/etc/rc.conf配置系服务,启动和关闭。 打开 /etc/rc.conf 并查看文件中的所有注释。查看设置并根据需要进行更改。
root #
nano /etc/rc.conf
接下来,打开/etc/conf.d/keymaps 来处理键盘设置。编辑它就可以设置你的键盘。
root #
nano /etc/conf.d/keymaps
要特别注意keymap这个变量 。如果你选择了错误的KEYMAP,在你敲击键盘的时候会有奇怪的结果。
完成 /etc/conf.d/hwclock 的配置之后,保存并退出。
root #
nano /etc/conf.d/hwclock
如果你机器上的时钟不用UTC,你需要在配置文件加上clock="local"
。否则,你的时钟就有可能出现偏差。
systemd
首先,推荐运行 systemd-firstboot,这样会准备好系统各个组件的正确设置,以便首次启动到新的 systemd 环境。传递以下选项将提示用户设置区域设置、时区、主机名、root 密码和 root shell 值。并且会分配一个随机的机器 ID:
root #
systemd-firstboot --prompt --setup-machine-id
接下来,用户应该运行 systemctl 来重置所有已安装工具的文件为预设的策略值:
root #
systemctl preset-all --preset-mode=enable-only
虽然可以运行完整的预设更改,但这可能会重置在此过程中已配置的任何服务:
root #
systemctl preset-all
这两个步骤将有助于确保从 live 环境平滑过渡到安装过程的首次启动。