Gentoo Linux 手册:安装Gentoo

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Full/Installation and the translation is 100% complete.

Contents

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


介绍

欢迎

首先,欢迎使用Gentoo!您将会进入一个选择自由和性能至上的世界。Gentoo的一切都是为了自由选择。在安装Gentoo时就数次明确表明了这一特点——用户可以自己选择想要编译的一切内容、选择安装Gentoo的方式、选择想用的系统日志程序等等。

Gentoo 是一个快速、现代化的元发行版,它的设计简洁、灵活。Gentoo 围绕自由软件建立,它不会对它的用户隐瞒“引擎盖下的细节”。Gentoo 所使用的软件包维护系统 Portage 是用 Python 编写的,这意味着用户可以轻松地查看和修改它的源代码。 Gentoo 的软件包管理系统使用源代码包(虽然也支持预编译软件包),并通过标准的文本文件配置Gentoo。换句话说,开放无处不在。

“自由选择”是 Gentoo 运行的关键,这点很重要,大家要理解。我们尽量不强迫用户去做任何他们不喜欢的事情。如果有人有不同看法,请上报bug report

安装步骤

Gentoo的安装可以被分成10个步骤,分别对应后续的章节。执行完每个步骤,都会让系统进入某种确定的状态:

步骤 结果
1 用户处于一个准备好安装Gentoo的工作环境中。
2 用于安装Gentoo的互联网连接已经准备完毕。
3 硬盘已经为Gentoo的安装初始化完毕。
4 安装环境已经准备好,用户准备chroot到新环境中去。
5 那些在所有Gentoo安装中都相同的核心软件包已经安装完毕。
6 Linux内核已经安装完毕。
7 用户已经配置好大部分的Gentoo系统配置文件。
8 必要的系统工具已经安装完毕。
9 合适的启动引导程序 (Bootloader) 已经安装配置完毕。
10 登录系统,你就可以在已经全新安装完毕的Gentoo Linux系统中尽情探索了!

当面临选择的时候,手册上会尽量说明每个选择的利弊。虽然手册会以默认选择(标题中有 “默认Default:” 标记)继续描述下去,但其他可能的选择同样也会在文档中说明(标题中有 “可选Alternative:” 标记)。请不要认为默认选择是Gentoo的推荐,这只不过是Gentoo认为大多数用户会使用的选择。

有时候你也可以进行一些可选的步骤。这样的步骤会被标注为“可选Optional:”,当然这些步骤对于安装Gentoo来说就不是必须的。然而,有些可选的步骤依赖于你先前所做出的决定。我们将会在你需要做这样决定以及可选步骤出现的时候提醒你。

选择合适的方法安装Gentoo

Gentoo可以以许多不同的方式安装。 它可以从官方Gentoo安装介质(如我们的CD和DVD)下载和安装。 安装介质可以安装在USB盘上或通过网络引导环境访问。 或者,Gentoo可以从非官方介质安装,如已安装的发行版或非Gentoo可启动磁盘(如Knoppix)。

本文讲解了如何使用Gentoo官方安装光盘或者在某些情况下使用网络启动来安装Gentoo。

Note
需要其他安装方式的帮助(包括使用非Gentoo的Linux引导光盘)请阅读我们的 Alternative Installation guide.

我们也提供一个 Gentoo Installation Tips and Tricks 它可能值得一看。

遇到麻烦

如果在安装(或安装文档中)发现问题,请访问我们的bug跟踪系统 并确认这个Bug是否已经被提交。如果没有提交,请为它创建一个错误报告以方便我们的后续处理。不要害怕和被分配解决这个问题的开发人员交流——他们(通常)不吃人。

需要注意的是,虽然你当前阅读的文档是针对某一特定的硬件架构,但是它还是会包含对其他平台架构的引用。这是因为Gentoo手册中的绝大部分的源代码是对所有硬件架构都适用的(目的是减少重复劳动和节省有限的开发资源)。我们会努力把这种负面影响减少到最小以避免造成混淆。

如果你不能确定你的问题是否是使用者的操作问题(尽管你已经仔细地阅读了文档但仍然出了错)还是一个软件问题(尽管我们已经仔细地测试了安装步骤/文档但仍然出了错)。请联系我们: irc.freenode.net 上的 #gentoo。当然,如果你有其他方面的关于Gentoo的问题,我们也欢迎你来这里讨论。

说到这里,如果还有任何额外的Gentoo问题,看看我们Frequently Asked Questions ,或者Gentoo论坛 上的 FAQs




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


硬件需求

在开始之前,我们先列出在一台 amd64 的主机上成功安装Gentoo所必须的硬件需求。


Minimal CD LiveDVD
CPU Any AMD64 CPU or EM64T CPU (Core i3, i5, and i7 are EM64T)
Memory 256 MB 512 MB
Disk space 2.5 GB (excluding swap space)
Swap space At least 256 MB

The AMD64 project is a good place to be for more information about Gentoo's amd64 support.


使用Gentoo Linux安装光盘

最小化安装CD

Note
As of April 20, 2017 the official Minimal CDs are incapable of booting in UEFI mode. They boot in BIOS (MBR) mode only. Readers looking to make their system UEFI bootable must download the latest Hybrid ISO (LiveDVD).

Gentoo最小化安装CD是一张包含有完整Gentoo环境的可引导CD。它允许用户从CD引导进入Linux。在引导过程中将检测硬件并加载适当的驱动。这张CD由Gentoo开发人员维护,能让任何有Internet连接的人来安装Gentoo。

最小化安装CD叫做install-amd64-minimal-<release>.iso

偶尔用到的Gentoo LiveDVD

有时候需要用一张由Gentoo Ten项目特制的DVD来安装Gentoo。接下来的介绍是针对最小化安装CD的,因此可能会有一点不同。不管怎么样,LiveDVD(或任何其他可引导的Linux环境)支持通过在终端调输入 sudo su - 或者 sudo -i 来获取所需权限。

stage又是什么?

A stage3 tarball is an archive containing a minimal Gentoo environment, suitable to continue the Gentoo installation using the instructions in this manual. Previously, the Gentoo Handbook described the installation using one of three stage tarballs. While Gentoo still offers stage1 and stage2 tarballs, the official installation method uses the stage3 tarball. If you are interested in performing a Gentoo installation using a stage1 or stage2 tarball, please read the Gentoo FAQ on How do I install Gentoo using a stage1 or stage2 tarball?

Stage 文件更新比较频繁并且不在安装 CD中提供,但可以在任意一个Gentoo官方镜像站 releases/amd64/autobuilds/ 路径下选择下载。

下载并刻录 CD

下载 CD 安装媒介

Gentoo Linux使用最小化安装CD做为默认安装媒介,它带有一个可引导的非常小的Gentoo Linux环境,以及安装Gentoo Linux所需的相关工具。 CD镜像本身可以从官方下载页(推荐)或任意一个镜像站下载。

在这些镜像站上,最小化安装CD可以通过以下方式找到:

  1. 进入 releases/ 目录
  2. 选择相应的架构, 如 amd64/
  3. 选择 autobuilds/ 目录
  4. 对于 amd64x86 平台的用户,请选择 current-install-amd64-minimal/current-install-x86-minimal/ 目录。如果需要所有其它平台的,请进入 current-iso/ 目录。
附注
一些架构例如armmips,和s390 是没有最小化安装 CD 的。 这是因为 Gentoo 发行工程项目 ( Gentoo Release Engineering project ) 不支持构建这些平台的.iso文件。

Inside this location, the installation media file is the file with the .iso suffix. For instance, take a look at the following listing:

CODE releases/中的文件样本amd64/autobuilds/current-iso/
[DIR] hardened/                                          05-Dec-2014 01:42    -   
[   ] install-amd64-minimal-20141204.iso                 04-Dec-2014 21:04  208M  
[   ] install-amd64-minimal-20141204.iso.CONTENTS        04-Dec-2014 21:04  3.0K  
[   ] install-amd64-minimal-20141204.iso.DIGESTS         04-Dec-2014 21:04  740   
[TXT] install-amd64-minimal-20141204.iso.DIGESTS.asc     05-Dec-2014 01:42  1.6K  
[   ] stage3-amd64-20141204.tar.bz2                      04-Dec-2014 21:04  198M  
[   ] stage3-amd64-20141204.tar.bz2.CONTENTS             04-Dec-2014 21:04  4.6M  
[   ] stage3-amd64-20141204.tar.bz2.DIGESTS              04-Dec-2014 21:04  720   
[TXT] stage3-amd64-20141204.tar.bz2.DIGESTS.asc          05-Dec-2014 01:42  1.5K

在上面的例子中, install-amd64-minimal-20141204.iso文件是最小化安装CD。但可以看到,还有其他相关文件存在:

  • .CONTENTS 文件是一个文本文件,它列出了安装CD中的所有文件。这个文件可用于在下载前确认安装CD是否包含特定的固件和驱动程序。
  • .DIGESTS 文件包含了ISO文件的Hash值,有不同的Hash格式/算法。这个文件可以用来验证已下载的ISO文件有没有损坏。
  • .DIGESTS.asc 文件不仅包含了ISO文件的Hash值(和 .DIGESTS 文件一样),还包含了它的加密签名。这个文件即可用于验证已下载的ISO文件是否损坏,也可验证文件确实是由Gentoo发行工程组(Gentoo Release Engineering Team)发布而没有被篡改。

现在可以先忽略当前位置的其他文件——它们在安装的后续步骤中会被提到。下载 .ISO,另外如果想要验证下载的文件,同时下载ISO文件对应的 .DIGESTS.asc.CONTENTS 文件不需要下载,因为安装指南后续不会用到这个文件。 .DIGESTS 这个文件和.DIGESTS.asc 文件包含相同的信息,除此以外后者还包含有上面文件的数字签名。

校验下载的文件

附注
这是一个可选步骤,并不是安装 Gentoo Linux 所必须的。但是,仍然推荐这么做,以此来确保下载的文件没有损坏,及确保下载文件确实由 Gentoo发行工程组( Gentoo Release Engineering Team ) 提供。

通过 .DIGESTS.DIGESTS.asc 文件,可以使用合适的工具来校验 ISO 文件的有效性。校验通常有两个步骤:  

  1. 首先,验证加密签名,确保安装文件是由Gentoo发行工程组( Gentoo Release Engineering team ) 提供
  2. 如果加密签名是有效的,就验证它的文件校验值 (比如 SHA512,WHIRLPOOL),以此来确认下载的文件没有损坏。

在微软 Windows 操作系统上校验

在微软 Windows 系统上,已经安装了用来验证校验和及加密签名的工具的可能性很低。

首先验证文件数字( GPG )签名,可以使用类似 GPG4Win 这样的工具。安装完工具后,需要导入 Gentoo 发行工程组(Gentoo Release Engineering Team)的公钥。 公钥列表在: 数字签名页。 一但导入完成,用户就可以验证 .DIGESTS.asc 文件的数字签名。

重要
这并不验证 .DIGESTS 文件是否正确,只是验证.DIGESTS.asc 文件。这同时也意味着 .DIGESTS.asc 文件所包含的校验和的值也一起被验证了,这就是为什么上面的说明只要求下载 .DIGESTS.asc 文件。

可以使用 Hashcalc 应用 来计算校验和,当然还有许多其他工具也可以用。在大多数情况下,这些工具将向用户显示计算出来的校验值,用户需要将它和 .DIGESTS.asc 文件中的值进行比对验证。

在已有的 Linux 系统上校验

在 Linux 系统上,最常用的验证加密签名的方法就是使用 app-crypt/gnupg 这个软件。安装了这个程序,就可以使用以下命令来验证 .DIGESTS.asc 文件中的数字(GPG)签名。

首先,下载 数字签名页 中正确的密匙:

user $gpg --keyserver hkp://keys.gnupg.net --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net
gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   3  signed:  20  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:  20  signed:  12  trust: 9-, 0q, 0n, 9m, 2f, 0u
gpg: next trustdb check due at 2018-09-15
gpg: Total number processed: 1
gpg:         new signatures: 1

下一步验证 .DIGESTS.asc 文件的数字(GPG)签名:

user $gpg --verify install-amd64-minimal-20141204.iso.DIGESTS.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET
gpg:                using RSA key 0xBB572E0E2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910

为了绝对确定所有文件都是有效的,验证上面显示的密匙指纹信息是否和 数字签名页 的密匙指纹信息一致。

确认数字签名有效后,接下来就是验证校验值,以确保下载的ISO文件没有损坏。 .DIGESTS.asc 文件包含了多个哈希算法,所以验证正确校验和的方法之一是先找到登记在文件 .DIGESTS.asc 中的相应的校验值。例如,获取 SHA512 的校验值:

user $grep -A 1 -i sha512 install-amd64-minimal-20141204.iso.DIGESTS.asc
# SHA512 HASH
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-amd64-minimal-20141204.iso
--
# SHA512 HASH
0719a8954dc7432750de2e3076c8b843a2c79f5e60defe43fcca8c32ab26681dfb9898b102e211174a895ff4c8c41ddd9e9a00ad6434d36c68d74bd02f19b57f  install-amd64-minimal-20141204.iso.CONTENTS

在上面的输出中,显示了两个SHA512校验和:一个用于文件:install-amd64-minimal-20141204.iso,一个用于与之对应的 .CONTENTS 文件。只有第一个校验值有用,因为要用它来和下面计算出来的 SHA512 的校验值进行比较:

user $sha512sum install-amd64-minimal-20141204.iso
364d32c4f8420605f8a9fa3a0fc55864d5b0d1af11aa62b7a4d4699a427e5144b2d918225dfb7c5dec8d3f0fe2cddb7cc306da6f0cef4f01abec33eec74f3024  install-amd64-minimal-20141204.iso

如果两个校验值匹配,那么表明文件没有损坏,安装可以继续进行。损坏的文件会导致安装出现问题,请重新下载。

刻录光盘

当然,只是下载一个 ISO 文件是无法开始 Gentoo Linux 的安装的。需要将这个ISO文件刻录成一张用来启动的 CD 光盘,是要将 ISO 文件里的内容而不是 ISO 文件本身刻录到CD光盘上。下面介绍了一些常见的方式 - 这里可以找到其他更复杂的方式:关于刻录ISO文件的FAQ.

在微软 Windows上刻录

在微软 Windows 上有许多工具支持将 ISO 文件刻录到 CD 光盘。

  • 使用 EasyCD Creator,选择菜单“文件从CD镜像刻录CD”(File,Record CD from CD image)。然后选择“文件类型”(Files of type)为“ISO镜像文件”(ISO image file)。找到ISO文件所在位置,点击“打开”(Open)。点击“开始刻录”(Start recording)后 ISO 镜像将会正确地刻录到 CD-R 光盘上。
  • 使用 Nero Burning ROM,取消自动弹出的向导,从“文件”(File)菜单选择“刻录镜像”(Burn Image)。 选择要刻录的镜像文件然后点击“打开”(Open)。选择“刻录”(Burn)按键,然后等待 CD 光盘刻录完成。

在已有的 Linux 系统上刻录

在 Linux 系统上,可以通过 cdrecord 命令将ISO文件刻录到CD光盘上,这个命令由 app-cdr/cdrtools 软件包提供。

例如,将ISO文件刻录到 /dev/sr0 设备的 CD 光碟上(这是系统上的第一个 CD 设备-在必要时将其替换为正确的设备):

user $cdrecord dev=/dev/sr0 install-amd64-minimal-20141204.iso

喜欢使用图形化界面的用户可以使用 K3B ,它由 app-cdr/k3b 软件包提供。在 K3B 软件中,选择“工具”Tools)菜单,然后选择“刻录CD镜像”(Burn CD Image)。然后按照 K3B 提供的使用说明操作。

启动CD光盘

Booting the installation media

Once the installation media is ready, it is time to boot it. Insert the media in the system, reboot, and enter the motherboard's firmware user interface. This is usually performed by pressing a keyboard key such as DEL, F1, F10, or ESC during the Power-On Self-test (POST) process. The 'trigger' key varies depending on the system and motherboard. If it is not obvious use an internet search engine and do some research using the motherboard's model name as the search keyword. Results should be easy to determine. Once inside the motherboard's firmware menu, change the boot order so that the external bootable media (CD/DVD disks or USB drives) are tried before the internal disk devices. Without this change, the system will most likely reboot to the internal disk device, ignoring the external boot media.

重要
如果想安装使用 UEFI 引导的 Gentoo ,建议立即使用UEFI启动。如果不用 UEFI 来启动,可能就要在最后完成 Gentoo Linux 的安装之前制作一个可以启动的 UEFI U盘(或其他介质)。

If not yet done, ensure that the installation media is inserted or plugged into the system, and reboot. A boot prompt should be shown. At this screen, Enter will begin the boot process with the default boot options. To boot the installation media with custom boot options, specify a kernel followed by boot options and then hit Enter.

At the boot prompt, users get the option of displaying the available kernels (F1) and boot options (F2). If no choice is made within 15 seconds (either displaying information or using a kernel) then the installation media will fall back to booting from disk. This allows installations to reboot and try out their installed environment without the need to remove the CD from the tray (something well appreciated for remote installations).

Specifying a kernel was mentioned. On the Minimal installation media, only two predefined kernel boot options are provided. The default option is called gentoo. The other being the -nofb variant; this disables kernel framebuffer support.

The next section displays a short overview of the available kernels and their descriptions:

Kernel choices

gentoo
Default kernel with support for K8 CPUs (including NUMA support) and EM64T CPUs.
gentoo-nofb
Same as gentoo but without framebuffer support.
memtest86
Test the local RAM for errors.

引导选项可以配合内核进一步调整引导过程的行为。

Hardware options

acpi=on
This loads support for ACPI and also causes the acpid daemon to be started by the CD on boot. This is only needed if the system requires ACPI to function properly. This is not required for Hyperthreading support.
acpi=off
Completely disables ACPI. This is useful on some older systems and is also a requirement for using APM. This will disable any Hyperthreading support of your processor.
console=X
This sets up serial console access for the CD. The first option is the device, usually ttyS0 on x86, followed by any connection options, which are comma separated. The default options are 9600,8,n,1.
dmraid=X
This allows for passing options to the device-mapper RAID subsystem. Options should be encapsulated in quotes.
doapm
This loads APM driver support. This also requires that acpi=off.
dopcmcia
This loads support for PCMCIA and Cardbus hardware and also causes the pcmcia cardmgr to be started by the CD on boot. This is only required when booting from PCMCIA/Cardbus devices.
doscsi
This loads support for most SCSI controllers. This is also a requirement for booting most USB devices, as they use the SCSI subsystem of the kernel.
sda=stroke
This allows the user to partition the whole hard disk even when the BIOS is unable to handle large disks. This option is only used on machines with an older BIOS. Replace sda with the device that requires this option.
ide=nodma
This forces the disabling of DMA in the kernel and is required by some IDE chipsets and also by some CDROM drives. If the system is having trouble reading from the IDE CDROM, try this option. This also disables the default hdparm settings from being executed.
noapic
This disables the Advanced Programmable Interrupt Controller that is present on newer motherboards. It has been known to cause some problems on older hardware.
nodetect
This disables all of the autodetection done by the CD, including device autodetection and DHCP probing. This is useful for doing debugging of a failing CD or driver.
nodhcp
This disables DHCP probing on detected network cards. This is useful on networks with only static addresses.
nodmraid
Disables support for device-mapper RAID, such as that used for on-board IDE/SATA RAID controllers.
nofirewire
This disables the loading of Firewire modules. This should only be necessary if your Firewire hardware is causing a problem with booting the CD.
nogpm
This disables gpm console mouse support.
nohotplug
This disables the loading of the hotplug and coldplug init scripts at boot. This is useful for doing debugging of a failing CD or driver.
nokeymap
This disables the keymap selection used to select non-US keyboard layouts.
nolapic
This disables the local APIC on Uniprocessor kernels.
nosata
This disables the loading of Serial ATA modules. This is used if the system is having problems with the SATA subsystem.
nosmp
This disables SMP, or Symmetric Multiprocessing, on SMP-enabled kernels. This is useful for debugging SMP-related issues with certain drivers and motherboards.
nosound
This disables sound support and volume setting. This is useful for systems where sound support causes problems.
nousb
This disables the autoloading of USB modules. This is useful for debugging USB issues.
slowusb
This adds some extra pauses into the boot process for slow USB CDROMs, like in the IBM BladeCenter.

Logical volume/device management

dolvm
This enables support for Linux's Logical Volume Management.

Other options

debug
Enables debugging code. This might get messy, as it displays a lot of data to the screen.
docache
This caches the entire runtime portion of the CD into RAM, which allows the user to umount /mnt/cdrom and mount another CDROM. This option requires that there is at least twice as much available RAM as the size of the CD.
doload=X
This causes the initial ramdisk to load any module listed, as well as dependencies. Replace X with the module name. Multiple modules can be specified by a comma-separated list.
dosshd
Starts sshd on boot, which is useful for unattended installs.
passwd=foo
Sets whatever follows the equals as the root password, which is required for dosshd since the root password is by default scrambled.
noload=X
This causes the initial ramdisk to skip the loading of a specific module that may be causing a problem. Syntax matches that of doload.
nonfs
Disables the starting of portmap/nfsmount on boot.
nox
This causes an X-enabled LiveCD to not automatically start X, but rather, to drop to the command line instead.
scandelay
This causes the CD to pause for 10 seconds during certain portions the boot process to allow for devices that are slow to initialize to be ready for use.
scandelay=X
This allows the user to specify a given delay, in seconds, to be added to certain portions of the boot process to allow for devices that are slow to initialize to be ready for use. Replace X with the number of seconds to pause.
Note
The bootable media will check for no* options before do* options, so that options can be overridden in the exact order specified.

Now boot the media, select a kernel (if the default gentoo kernel does not suffice) and boot options. As an example, we boot the gentoo kernel, with dopcmcia as a kernel parameter:

boot:gentoo dopcmcia

接下来迎接用户的是一个引导屏幕和进度条。如果用来安装系统的是一个非US键盘,确保马上按Alt + F1来切换到详细模式并遵照提示。如果在10秒钟内什么都没有选,则接受默认(US键盘)并继续引导过程。一旦引导过程完成,用户将自动以root超级用户身份登录到“Live”Gentoo Linux环境。当前控制台将显示一个root提示符,并且可以通过按Alt + F2Alt + F3Alt + F4切换到其他控制台。按Alt + F1返回到启动时的那个。


额外的硬件配置

当安装光盘启动时,它会尝试检测所有的硬件设备并加载合适的内核模块来支持硬件。在绝大多数的情况下,它工作得很好。然而,在某些情况下它可能没有自动加载系统所需的内核模块。如果 PCI 自动检测错过了一些系统硬件,相应的内核模块就必须手动加载了。

下面例子手工加载了 8139too 模块(它提供对某些类型的网卡的支持):

root #modprobe 8139too

可选:用户账号

如果其他人需要访问安装环境,或者需要以非 root 用户的身份在安装 CD 上运行命令(例如出于安全原因使用没有 root 特权的 irssi 聊天),这时就需要创建额外的用户帐户,并将 root 用户密码设为强密码。

使用 passwd 命令来修改 root 用户密码:

root #passwd
New password: (Enter the new password)
Re-enter password: (Re-enter the password)

要创建一个用户账户,先输入他们的信息,然后设置密码。用 useraddpasswd 命令来完成这些操作。

在下面的例子中,创建了一个名为“john”的用户。

root #useradd -m -G users john
root #passwd john
New password: (Enter john's password)
Re-enter password: (Re-enter john's password)

使用 su 命令可以从 root 用户(当前用户)切换到新建的用户:

root #su - john

可选:在安装时查看文档

TTYs

要在安装期间查看 Gentoo 安装手册,首先要按照上面的方法创建一个新的用户帐户。然后按 Alt+F2 进入一个新的终端。

在安装期间, 可以用 links 命令来浏览 Gentoo 安装手册 - 当然,只有在互联网连接可用的时候才行。

要回到原来的终端,请按 Alt+F1

GNU Screen

The GNU Screen utility is installed by default on official Gentoo installation media. It may be more efficient for the seasoned Linux enthusiast to use screen to view installation instructions via split panes rather than the multiple TTY method mentioned above.

可选:启动SSH服务

要在安装期间允许其他用户访问你的系统(可能是为了在安装过程中提供技术支持,甚至远程安装),需要添加一个用户账户(就像之前的文档描述的那样)同时 SSH 服务也要启动。

要启动SSH服务,执行以下命令:

root #service sshd start
附注
如果用户登录到系统,他们将得到一个本系统主机密钥需要确认的信息(也就是我们说的密匙指纹)。在人们第一次登录到系统的时候,这是很正常的。但是,以后当系统设置好,并有人登录到新安装的系统时,SSH客户端会警告主机密钥已被更改。这是因为现在用户登录 - 对于SSH来讲 - 是一个不同的服务器(即新安装的Gentoo系统,而不是现在正在使用的安装系统环境)。请按照屏幕上的指示,去替换用户端的主机密钥

网络需要能正常工作,sshd 才能使用。请参照 配置网络 的内容继续安装。




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


自动网络检测

它能够自动检测到么?

如果系统接入到一个有DHCP服务器的以太网络,网络配置非常可能会自动设置。这样的话,安装CD所包含的很多网络命令,比如sshscppingirssiwgetlinks,以及其他的一些, 都可以立即工作。

识别接口名称

ifconfig命令

如果网络已配置,ifconfig命令应该会列出一个或多个网络接口(围绕着lo)。在下面的示例中显示为eth0

root #ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

作为预测的网络接口名称控制的结果, 系统的接口名称可以和旧的eth0命名规则很不一样。近期的安装媒介可能显示常规网络接口名字像是eno0ens1enp5s0。查看ifconfig输出中找到有你本地网络相关的IP地址的接口。

Tip
如果使用标准的ifconfig命令没有显示出接口,尝试使用带有-a选项的相同的命令。这个选项强制这个工具去显示系统检测到的所有的网络接口,不管他们是up或down状态。如果ifconfig -a没有提供结果,则硬件有错误或者接口驱动没有加载到内核中。这些情况都超过本手册的范围。联系#gentoo需求支持。

ip命令

作为ifconfig的一个备选,ip命令可以用来识别接口名称。下面的示例展示了ip addr(由于是另外一个系统,所以显示的信息不同于前一个示例)的输出:

root #ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

上面的输出读起来可能比另外的更乱一点。在上面的示例中,接口名称直接跟在数字后面;它是eno1

在本文档的其余部分,手册中假设要操作的网络接口叫作eth0

可选:配置代理

如果要通过代理访问互联网,则在安装过程中需要设置代理信息。定义一个代理十分容易:只需要定义一个包含代理服务器信息的变量即可。

大多数情况下,只要将这个变量定义为代理服务器主机名。作为示例,我们假定代理叫作proxy.gentoo.org并且端口为8080。

设置一个HTTP代理(用于HTTP或HTTPS流量):

root #export http_proxy="http://proxy.gentoo.org:8080"

设置一个FTP代理:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

设置一个RSYNC代理:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

如果代理要求用户名和密码,针对变量使用下面语言:

CODE 添加用户名/密码到代理变量
http://username:password@proxy.gentoo.org:8080

测试网络

尝试ping你的ISP的DNS服务器(可在/etc/resolv.conf中找到)和选择一个网站。这可确信网络正常工作并且网络包可以到达网络,DNS名称解析能正常工作等等。

root #ping -c 3 www.gentoo.org

如果这些都工作,则本章节中其余的部分可跳过,直接跳到安装介绍的下一步骤(准备磁盘)。

自动网络配置

如果网络没有立即工作,一些安装媒介允许用户使用net-setup(针对常规或无线网络),pppoe-setup(针对ADSL用户)或pptp(针对PPTP用户)。

如果安装媒介没有包含这些工具,继续手动配置网络

默认:使用net-setup

如果网络没有自动配置,最简单的方式是运行net-setup脚本来设置:

root #net-setup eth0

net-setup将会询问关于网络环境的一些问题。当所有这些完成后,网络连接就应该工作。以前面的方式测试网络连接。如果测试通过,恭喜!跳过本章节剩余部分并继续准备磁盘

如果网络还是不能工作,继续手动配置网络

可选:使用PPP

假设需要使用PPPoE连接到互联网,安装CD(任何版本)包含ppp来使这件事变得容易。使用提供的pppoe-setup脚本来配置连接。设置过程中将询问已连接到你的ADSL调制解调器的以太网设备、用户名和密码、DNS服务器的IP地址,以及是否需要一个简单的防火墙。

root #pppoe-setup
root #pppoe-start

如果还是有什么错误,再次在etc/ppp/pap-secrets/etc/ppp/chap-secrets中检查用户名和密码都是正确的,并且确保使用了正确的以太网设备。如果以太网设备不存在,则需要加载合适的网络模块。如果是那样,继续手动网络配置将解释如何加载合适的网络模块。

如果所有事都还,继续准备磁盘

可选:使用PPTP

如果需要PPTP支持,使用安装CD提供的pptpclient。但是首先确保配置是正确的。编辑/etc/ppp/pap-secrets/etc/ppp/chap-secrets让它包含正确的用户名/密码组合:

root #nano -w /etc/ppp/chap-secrets

如果需要,继续调整/etc/ppp/options.pptp

root #nano -w /etc/ppp/options.pptp

当所有事都已完成,运行pptp(带着一些options.pptp无法设定的选项)来连接到服务器:

root #pptp <server ip>

现在继续准备磁盘

手动配置网络

加载适当的网络模块

安装光盘在启动时,会尝试检测所有硬件设备并加载适当的内核模块(驱动程序)以支持你的硬件。绝大多数情况下,它都做得非常好。尽管如此,在某些情况下它可能还是无法自动载入你所需要的内核模块。

如果net-setuppppoe-setup都失败,则可能是网络没有立即被找到。也就是说用户可能需要手动加载合适的内核模块。

要找出什么内核模块提供网络,使用ls命令:

root #ls /lib/modules/`uname -r`/kernel/drivers/net

如果找到一个针对网络设备的驱动,使用modprobe来加载内核模块。比如,要加载pcnet32模块:

root #modprobe pcnet32

要检查网卡现在是否检测到,使用ifconfig。一个检测到的网卡应该在结果中像这样(再一次,这里的eth0只是一个示例):

root #ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

不过如果你得到如下错误信息,说明没有检测到网卡:

root #ifconfig eth0
eth0: error fetching interface information: Device not found

系统中可用网络接口命名可以通过/sys文件系统列出。

root #ls /sys/class/net
dummy0  eth0  lo  sit0  tap0  wlan0

在上面的示例中,找到了6个接口。eth0是最像(有线)以太网络适配器,而wlan0是无线的。

假设现在网络已经检测到了,重新尝试net-setuppppoe-setup(现在应该工作了),但是对于铁杆的人,我们还是要解释如何手动配置网络。

基于你的网络从下面的章节中选择一个进行设置:

使用DHCP

DHCP(动态主机配置协议)使自动接受网络信息(IP地址、掩码、广播地址、网关、名称服务器等)变得容易。这只在网络中有DHCP服务器(或者如果ISP提供商提供一个DHCP服务)时有用。要使一个网络接口自动接受信息,使用dhcpcd

root #dhcpcd eth0

一些网络管理员要求你使用DHCP服务器所提供的主机名和域名。 这种情况下请用:

root #dhcpcd -HD eth0

如果这个工作的话(试着ping一些Internet服务器,像Google),则所有事情都设置好了并可以继续。跳过剩下的章节并继续到准备磁盘

准备无线网络链接

附注
可能只有特定的架构支持iwconfig命令。如果这个命令不可用,检查net-wireless/wireless-tools包是否可用于当前架构。除非安装net-wireless/wireless-tools包,否则iwconfig命令将一直不可用。

当使用一块无线(802.11)网卡,在继续之前需要先配置无线设置。要查看当前无线网卡的设置,你可以使用iwconfig。运行iwconfig可能会显示如下:

root #iwconfig eth0
eth0      IEEE 802.11-DS  ESSID:"GentooNode"                                   
          Mode:Managed  Frequency:2.442GHz  Access Point: 00:09:5B:11:CC:F2    
          Bit Rate:11Mb/s   Tx-Power=20 dBm   Sensitivity=0/65535               
          Retry limit:16   RTS thr:off   Fragment thr:off                       
          Power Management:off                                                  
          Link Quality:25/10  Signal level:-51 dBm  Noise level:-102 dBm        
          Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx          
          excessive retries:237 Invalid misc:350282 Missed beacon:84            

To check for a current connection:

root #iw dev wlp9s0 link
Not connected.

or

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Note
Some wireless cards may have a device name of wlan0 or ra0 instead of wlp9s0. Run ip link to determine the correct device name.

对于大多数用户,只有两个设置需要去更改:ESSID(也称作无线网络名称)或WEP密钥。If the ESSID and Access Point address listed are already those of the environment's access point and the environment is not not using WEP,则无线配置已经可以工作。

要改变ESSID或添加一个WEP密钥,执行下面的命令。

  • 设置网络名称为GentooNode
root #iwconfig eth0 essid GentooNode
  • 设置一个WEP密钥:
root #iwconfig eth0 key 1234123412341234abcd
  • 设计一个ASCII WEP密钥,添加密钥前缀s:
root #iwconfig eth0 key s:some-password
附注
如果无线网络配置为WPA或WPA2,则需要使用wpa_supplicant。关于为Gentoo Linux配置无线网络的更多信息,请阅读Gentoo手册中的无线网络章节

再次使用iwconfig确认无线设置。如果无线已经工作,继续按下一章节(了解网络术语)配置IP级别的网络选项或者使用前面描述的net-setup工具。

网络术语解读

附注
如果IP地址、广播地址、掩码和名称服务器这些全都了解,则可以跳过这个子章节,进入到使用ifconfigroute

如果以上所做的全部失败,你将不得不手动配置你的网络。这其实一点也不难。不过,你需要熟悉一些网络术语,才能配置好网络令自己满意。读完本节之后,你将了解到什么是网关,子网掩码是作什么用的,广播地址是如何形成的,以及为什么需要名称服务器。

在网络中,主机通过它们的IP地址(互联网协议地址)来标识。这个地址被看为是由四个0到255的数字来组成。很好,至少在使用IPv4(IP版本4)时。实事上,这样的一个IPv4地址包括32个位(1和0)。让我们来看一个示例:

CODE 一个IPv4地址示例
IP地址(数字):   192.168.0.2
IP地址(位):     11000000 10101000 00000000 00000010
                   -------- -------- -------- --------
                      192      168       0        2
附注
比IPv4更成功的IPv6使用128位(1和0)。在这章节中,我们只关注IPv4地址。

在所有可访问到的网络里,这样的IP地址跟主机是一一对应的(比如你能够连接到的每台主机必须拥有一个唯一的IP地址)。为了区别一个网络内部和外部的主机,IP地址被分为两个部分:网络部分和主机部分。

由一堆1后面跟着一堆0的掩码写出了网络的分离。IP映射到1的部分是网络部分,剩下的是主机部分。通常,掩码可以写成IP地址。

CODE 网络/主机分离示例
IP地址:       192      168       0        2
            11000000 10101000 00000000 00000010
掩码:      11111111 11111111 11111111 00000000
               255      255      255       0
           +--------------------------+--------+
                       网络              主机

换句话说,192.168.0.14是示例网络的一部分,但192.168.1.2不是。

广播地址是一个拥有相同网络部分,但是主机部分全是1的IP地址。网络上的每一个主机都监听这个IP地址。它的真正用途是用来广播包。

CODE 广播地址
IP地址:       192      168       0        2
            11000000 10101000 00000000 00000010
广播:      11000000 10101000 00000000 11111111
               192      168       0       255
           +--------------------------+--------+
                       网络              主机

为了能在互联网上冲浪,网络中的每个主机必须知道哪个主机共享着互联网连接。这个主机叫作网关。它同样是一台常规主机,它有一个常规IP地址(比如192.168.0.1)。

之前我们说每台主机都有它自己的IP地址。要通过名称来到达这台主机(代替一个IP地址)我们需要一个服务去翻译一个名称(比如dev.gentoo.org)到一个IP地址(64.5.62.82)。这样的服务叫做名称服务。要使用这样的服务,需要在/etc/resolv.conf中定义所需的名称服务器。

有些情况下,网关同时也是名称服务器。不然的话,需要在这个文件中添加ISP提供的名称服务器。

总结一下,在继续之前需要下面的信息:

网络项目 示例
系统IP地址 192.168.0.2
掩码 255.255.255.0
广播 192.168.0.255
网关 192.168.0.1
名称服务器 195.130.130.5, 195.130.130.133

使用ifconfig和route

设置网络由三步组成:

  1. 使用ifconfig指派一个IP地址
  2. 使用route设置到网关的路由
  3. 通过/etc/resolv.conf设置名称服务器的IP完成

要指派一个IP地址,需要IP地址、广播地址和掩码。运行下面的命令,替换${IP_ADDR}为正确的IP地址、${BROADCAST}为正确的广播地址以及${NETMASK}为正确的掩码:

root #ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up

使用route设置路由。替换${GATEWAY}为正确的网络IP地址:

root #route add default gw ${GATEWAY}

现在打开/etc/resolv.conf

root #nano -w /etc/resolv.conf

使用下面的模板填入名称服务器。确保替换${NAMESERVER1}${NAMESERVER2}为合适的名称服务器地址:

CODE 用于/etc/resolv.conf的默认模板
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2}

就是这样。现在通过ping一些互联网服务器(像Google)来测试网络。如果这个工作的话,再次恭喜。继续到准备磁盘




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


块设备简介

块设备

让我们来好好看看Gentoo Linux以及普通Linux中有关磁盘方面的知识,包括Linux文件系统,分区和块设备。一旦磁盘和文件的来龙去脉都了解了,我们将设置分区和文件系统的安装Gentoo Linux。

首先,让我们来看看块设备。最著名的块设备可能是代表Linux系统第一块磁盘的/dev/sda。SCSI和SATA磁盘全标为/dev/sd*;甚至IDE磁盘在libata内核框架下也标为/dev/sd*。当使用老设备框架时,第一个IDE磁盘是/dev/hda

上面的块设备代表的抽象接口的磁盘。用户程序可以使用这些块设备来与你的磁盘进行交互,而无需担心驱动器到底是IDE,SCSI还是其他什么东西。该程序可以把磁盘当作一系列连续的,可随机访问的512字节块的存储。


分区表

虽然理论上可以用一整块磁盘来安装一个Linux系统(比如当创建一个btrfs RAID时),但是实践中几乎从不这样做。实际上,一块磁盘可以被分成小一些的、更容易管理的块设备。在amd64系统里,这被称为分区。有两个标准的分区技术可以被使用:MBR和GPT。

MBR

主引导记录MBR (Master Boot Record)对分区的起始扇区和长度使用32比特的标识符,它支持三种分区类型:主分区、扩展分区和逻辑分区。主分区把它们的信息存储在主引导记录里一个非常小的空间里,通常是512字节,因为这个空间太小了,所以系统只支持四个主分区。(例如从 /dev/sda1/dev/sda4

为了支持更多的分区,其中一个主分区可以被标识成扩展分区,然后这个分区就可以包含逻辑分区了(分区里的分区)。

每个分区的尺寸被限制在2TB,这是由于32比特的标识符造成的。另外MBR不提供任何的MBR备份,所以一旦被某个应用或者用户误写覆盖了,所有的分区信息将会丢失。

GPT

GTP(GUID Partition TQable)为分区使用64比特标识符,它用来存储分区信息的空间也远比MBR的512字节要大,GPT磁盘它也不对分区的数量作限制。分区的大小限制可以达到8ZB。 译者注: 1ZiB = 1,024 EiB 1ZiB = 1,048,576 (1024)PiB 1ZiB = 1,073,741,824 (1024)TiB 1ZiB = 1,099,511,627,776 (1024)GiB 1ZiB = 1,125,899,906,842,624 (1024)MiB 1ZiB = 1,152,921,504,606,846,976 (1024)KiB 1ZiB = 1,180,591,620,717,411,303,424 (1024)B

当操作系统和系统固件之间的软件接口是UEFI (相对于BIOS)时,GPT几乎是必选的,因为这里MBR会引起很多兼容性问题。

GPT还利用校验和和冗余。 它携带CRC32校验和以检测报头和分区表中的错误,并在磁盘的末尾有一个备份GPT。 此备份表可用于恢复磁盘开头附近主GPT的损坏。

GPT还是MBR

依据上面的描述,人们大概会认为使用GPT应该总是被推荐的方法,尽管还有一些注意事项。

在一台基于BIOS的计算机上使用GPT虽然是能够工作的,但是那样你就不能与微软的Windows操作系统进行双重引导了,原因是微软的Windows如果检测到一个GPT分区标签,它就会以UEFI模式进行引导。

一些存在bug的BIOS或者配置成以BIOS/CSM/legacy模式进行引导的EFI也对从GPT标签的磁盘进行引导支持不好。如果您也碰到了这种情况,有一个可能的凑合办法:在被保护的MBR分区上加上boot/active标志,您可以使用带有 -t dos选项的fdisk 命令强制它使用MBR格式读取分区表。

在这个例子中,我们用 fdisk 并敲击 a键来切换分区的(是否是活动的)标记。敲击 1键来选择第一个分区,然后敲击w键来将所作改动写入磁盘,最后退出 fdisk这个程序。

user $fdisk -t dos /dev/sda
Welcome to fdisk (util-linux 2.24.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
  
Command (m for help): a
Partition number (1-4): 1
  
Command (m for help): w

使用UEFI

当在一个使用了UEFI(替代BIOS)进行引导作业的系统上安装Gentoo时,很重要的一点是一个EFI的系统分区 (ESP)需要被创建。 分区工具parted的简介如下:

EFI系统分区也需要是一个FAT32分区(在Linux系统里也被称为“vfat”)。见UEFI specification 。这一章节末尾的指导中以“ext2”分区格式为例作为了/boot/ 的文件系统。请确保EFI分区使用“vfat”,就像这样:

root #mkfs.fat -F 32 /dev/sda2
Warning
如果引导分区(ESP)没有使用FAT32(vfat)文件系统,系统的UEFI固件很可能将无法找到引导或Linux内核来启动系统!

高级存储

Btrfs RAID

如上所述,btrfs具有跨多个设备创建文件系统的能力。 以这种方式生成的Btrfs文件系统可以采用以下模式:raid0,raid1,raid10,raid5和raid6。 RAID模式5和6已显着改进,但仍被认为不稳定。 创建多设备文件系统后,可以使用几个命令添加新设备并删除旧设备。 Btrfs比其他文件系统有更多交互,对于初学者不那么友好。

ext4文件系统可以转换成btrfs文件系统,这对于那些想要安装Gentoo并使用一个稳定的,良好测试的文件系统,并增加他们关于新的文件系统的知识,如btrfs。通过这个实验可能是有用的。

LVM

amd64 安装CD提供对逻辑卷管理器(LVM)的支持。 LVM增加了分区设置提供的灵活性。 下面的安装说明将集中在“常规”分区,但是很好的知道LVM是支持的,如果该路由是所需的。 有关详细信息,请参阅LVM文章。 新手注意:完全支持LVM不在本指南的范围之内。

默认分区方案

一直到这份指南的末尾,下面的分区方案将被使用。

分区 文件系统 大小 描述
/dev/sda1 (bootloader) 2M BIOS boot partition
/dev/sda2 ext2 (or fat32 if UEFI is being used) 128M Boot/EFI system partition
/dev/sda3 (swap) 512M or higher Swap partition
/dev/sda4 ext4 Rest of the disk Root partition

如果这足够了,读者转到GPT分区,他们可以立即跳转到Default: Using parted to partition the disk。 那些仍然对MBR感兴趣(嘿 - 有!)和使用示例布局可以跳转到Alternative: Using fdisk to partition the disk.。

fdiskparted 都是分区实用程序。 fdisk是众所周知的,稳定的,并且推荐用于MBR分区布局,而parted 是支持GPT分区的第一个Linux块设备管理实用程序之一。 喜欢fdisk的用户界面的用户可以使用 gdisk (GPT fdisk)作为parted的替代。

在进行创建分区的指导之前,关于分区方案和常见陷阱我们会先介绍更多的细节。

设计一个分区方案

How many partitions and how big?

The number of partitions is highly dependent on the environment. For instance, if there are lots of users, then it is advised to have /home/ separate as it increases security and makes backups easier. If Gentoo is being installed to perform as a mail server, then /var/ should be separate as all mails are stored inside /var/. A good choice of filesystem will then maximize the performance. Game servers will have a separate /opt/ as most gaming servers are installed there. The reason is similar for the /home/ directory: security and backups. In most situations, /usr/ is to be kept big: not only will it contain the majority of applications, it typically also hosts the Gentoo ebuild repository (by default located at /usr/portage) which already takes around 650 MB. This disk space estimate excludes the packages/ and distfiles/ directories that are generally stored within this ebuild repository.

It very much depends on what the administrator wants to achieve. Separate partitions or volumes have the following advantages:

  • 为每个分区或者卷选择性能最好的文件系统。
  • 当一个失控的工具持续向一个分区或卷写文件时,也不至于让整个系统由于无可用空间而无法运行。
  • 如果有必要,可以简化文件系统检查,多个检查可以并行的完成(其实在这一点上,有多个磁盘比多个分区更有优势)。
  • 可以通过在挂载一些分区或卷时使用只读、nosuid(忽略setuid属性)、noexec(忽略可执行属性)等来增加安全性。

不过,多个分区同样也有劣势。如果不能合理的配置,系统可能会在一个分区上有很多空闲空间,而其他分区却没有空间。另外一个麻烦是独立的分区——尤其是像/usr//var/这样的重要挂载点——经常需要管理员在引导时通过一个initramfs来在其他引导脚本启动前挂载这些分区。在不同的情况下,结果也可能不同。

另外对于SCSI和SATA还有一个最多15分区的限制,除非使用GPT标签。

那么swap空间呢?

对于swap空间,没有一个完美值。swap空间的目的是当内存(RAM)有压力时为内核提供磁盘存储。一个swap空间允许内核将看过来稍后不会被访问的内存页面移动到磁盘(swap或者page-out)、施放内存。当然,如果那块内存突然要使用到,需要花一些时间(相比较内存,硬盘是非常慢的)将这些页面需要放回到内存中(page-in)。

When the system is not going to run memory intensive applications or the system has lots of memory available, then it probably does not need much swap space. However, swap space is also used to store the entire memory in case of hibernation. If the system is going to need hibernation, then a bigger swap space is necessary, often at least the amount of memory installed in the system.


什么是BIOS引导分区?

BIOS引导分区是一个非常小的分区(1到2MB),引导器软件如GRUB2可以将不适于存放在引导扇区(MBR中只有几百个字节)里并且不能存放在其它位置的额外数据存放于此。

这种分区并不总是需要的,但是考虑到低地址空间消耗以及记录大量不同的分区的难度,我们建议最好还是创建一个。

为了完整,当GPT分区方案与GRUB2一起使用,或者当MBR分区方案与GRUB2一起使用且第一个分区开始于磁盘上1MB位置之前时,BIOS引导分区是需要的。

默认:使用parted对磁盘进行分区

在这一章里,之前提到的分区方案范例将被使用:

Partition Description
/dev/sda1 BIOS boot partition
/dev/sda2 Boot partition
/dev/sda3 Swap partition
/dev/sda4 Root partition

您可以根据您的实际需要调整您的分区方案。

使用parted查看当前分区布局

这个parted应用为磁盘分区提供了一个简单的接口,而且它支持很大的分区空间(超过2TB)。用 parted 来搞磁盘吧(在我们的例子中,它是/dev/sda)。我们建议您让parted 来优化分区对齐:

root #parted -a optimal /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

对齐意思就是分区在磁盘上开始于一个众所周知的边界,从而确保操作系统层面(从磁盘获取页面)使用最少的磁盘内部开销。没有对齐的分区可能需要磁盘去抓取两个页面而不是一个,即使操作系统只请求了一个页面。

要了解parted支持的所有选项,敲 help 然后回车。

设置GPT标签

大部分x86amd64架构的磁盘是以“msdos”标签被准备出来的。如果使用 parted,在磁盘上设置一个GPT标签的命令为mklabel gpt:

Warning
改变分区类型将会移除磁盘上的所有分区,磁盘上的所有数据也将丢失。
(parted)mklabel gpt

为了让磁盘使用MBR分区布局,使用 mklabel msdos命令。

使用parted移除全部分区

如果这一步(之前用过 mklabel 操作或磁盘本来就是崭新的),首先请移除磁盘上所有已经存在的分区。输入print命令可以查看当前的分区信息,rm <N>N是需要移除的分区号码。

(parted)rm 2

对其它不需要的分区采取同样的操作。但是在这里请确保不要犯任何错误,因为parted是立即执行改变的,这一点不像fdisk是分步操作,允许用户在保存或者退出fdisk时可以"undo"。

创建分区

Now parted will be used to create the partitions with the following settings:

  • 要使用的分区类型。通常是“Primary”。如果您用的是msdos分区标签,请注意最多只有4个主(Primary)分区能够被使用。如果您需要使用多于4个分区,请使用其中的一个主分区将其转换为扩展分区以便在其中创建足够使用的逻辑分区。
  • 分区的开始位置(可以被表示为MB, GB, ...)
  • 分区的结束位置(可以被表示为MB, GB, ...)

首先,要告诉parted我们工作要使用的容量单位是megabytes(实际上是mebibytes,其标准缩写符号是MiB,但是我们会通篇使用MB因为它用得更普遍一些)

(parted)unit mib

现在我们创建一个2MB的分区,它后面将被GRUB2引导器使用。使用mkpart 完成这个操作,并且通知 parted 从1MB开始到3MB结束(创建一个大小为2MB的分区)。

(parted)mkpart primary 1 3
(parted)name 1 grub
(parted)set 1 bios_grub on
(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub

同样地创建引导分区(128MB),交换分区(在这个例子中是512MB)和使用了剩下所有磁盘空间根分区(结束位置被标记为-1,意味着磁盘尾部减去1MB,那里是分区最远能够所达之处)

(parted)mkpart primary 3 131
(parted)name 2 boot
(parted)mkpart primary 131 643
(parted)name 3 swap
(parted)mkpart primary 643 -1
(parted)name 4 rootfs

当使用UEFI接口来引导系统时(取代BIOS),要将引导分区标识为EFI系统分区。当“boot”选项在这个分区被设置时,Parted可以自动完成此事。

(parted)set 2 boot on

分区结果看起来就像下面这样:

(parted)print
Model: Virtio Block Device (virtblk)
Disk /dev/sda: 20480MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
  
Number   Start      End      Size     File system  Name   Flags
 1       1.00MiB    3.00MiB  2.00MiB               grub   bios_grub
 2       3.00MiB    131MiB   128MiB                boot   boot
 3       131MiB     643MiB   512MiB                swap
 4       643MiB     20479MiB 19836MiB              rootfs
附注
在UEFI安装时,引导标志将出现在引导分区(ESP)。

使用 quit 命令退出parted。

备选:使用fdisk对磁盘进行分区

Note
虽然最近的fdisk 应该也支持GPT, 但它仍然有一些问题。下面给出的指导假定我们的分区方案使用的是MBR。

下面的部分解释了怎样使用fdisk来创建范例分区布局,范例分区布局我们在前面已经提到过了。

Partition Description
/dev/sda1 BIOS boot partition
/dev/sda2 Boot partition
/dev/sda3 Swap partition
/dev/sda4 Root partition

请您根据自己的实际需要来调整您的分区布局。

查看当前分区布局

fdisk是一个流行的和强大的分区工具。用fdisk向磁盘开火吧!(在我们的例子里,我们使用/dev/sda):

root #fdisk /dev/sda
Note
如要支持GPT,需要增加 -t gpt选项。建议您一定要仔细研究fdisk的输出,因为最近的 fdisk开发改变了它的以MBR作为缺省设置的行为。后面的指南假定我们使用的是MBR布局。

使用 p 键来显示磁盘当前的分区配置。

Command (m for help):p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        14    105808+  83  Linux
/dev/sda2            15        49    264600   82  Linux swap
/dev/sda3            50        70    158760   83  Linux
/dev/sda4            71      2184  15981840    5  Extended
/dev/sda5            71       209   1050808+  83  Linux
/dev/sda6           210       348   1050808+  83  Linux
/dev/sda7           349       626   2101648+  83  Linux
/dev/sda8           627       904   2101648+  83  Linux
/dev/sda9           905      2184   9676768+  83  Linux

这块特定的磁盘被配置为容纳了7个Linux文件系统(每一个文件系统各对应于一个被标识为“Linux”的分区)以及一个交换分区(被标识为“Linux swap”)

使用fdisk移除全部分区

首先从这个磁盘移除所有现存的分区。按 d来删除一个分区。例如删除一个已经存在的 /dev/sda1

Command (m for help):d
Partition number (1-4): 1

这个分区已经计划被删除了,当您用p键打印分区清单时它将不会被显示了,但此时它还未被实际删除,直到改变被真正保存。这将允许用户在操作错误后中止——此时,敲击q键并回车可以立即防止分区被删除。

重复敲击 p来打印分区清单,然后敲击 d键和分区号码来删除它。最终,分区表将变得空空如也。

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
Device Boot    Start       End    Blocks   Id  System

现在在内存中的分区表已经空了,我们是时候来创建分区了。

创建BIOS引导分区

首先创建一个很小的BIOS引导分区。敲击 n 键来创建一个新分区,然后敲击p 键来选择是主分区类型,后面跟一个1 键来选择是第一个主分区。当提示“first sector”选项时,请确保它开始于2048(这是引导器所必须的)然后敲回车。当提示“last sector”时,键入+2M来创建一个大小为2Mbyte的分区。

Note
开始于2048扇区是一个容错机制,当引导器无法检测这个分区为可用时尽量保持功能正常。
Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (64-10486533532, default 64): 2048
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M

构造分区用于UEFI:

Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 4
Changed system type of partition 1 to 4 (BIOS boot)
Note
不鼓励对MBR分区布局使用UEFI,如果系统具有UEFI功能,请使用GPT分区布局。

创建引导分区

首先创建一个很小的BIOS引导分区。敲击 n 键来创建一个新分区,然后敲击p 键来选择是主分区类型,后面跟一个2 键来选择是第二个主分区。当提示“first sector”选项时,敲回车以接受默认值。当提示“last sector”时,键入+128M来创建一个大小为128Mbyte的分区。

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 2
First sector (5198-10486533532, default 5198): (Hit enter)
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +128M

现在,当敲击 p键时,下面的分区信息将被显示:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2             3        14    105808+  83  Linux

敲击 a 键来切换一个分区是否为可引导的标记,然后敲击 2。之后再一次敲 p键,您可以发现一个“*”被放置于相应分区的“boot”列。

创建swap分区

为了创建交换分区,敲击 n 来创建一个新分区,然后是 p 键来告诉fdisk要创建一个主分区。然后敲击 3 来创建第三个分区,/dev/sda3。当提示输入“ the first sector”时,敲击 Enter键。当提示输入“the last sector”时,键入+512M(或者按需给交换分区分配任意容量)来创建一个512MB大小的分区。

这些做完之后,敲击 t来设置分区类型, 3来选择刚刚创建的这个分区,然后敲击“82”设置分区类型为“Linux Swap”。

创建根分区

最后创建根分区,敲击 n来创建一个新分区,然后敲击 p 告诉l fdisk 要创建一个主分区。然后敲击 4 来创建第四个主分区 /dev/sda4。当提示输入“the first sector”时,敲击Enter。当提示输入“the last sector”时,敲击Enter来创建一个占用了所有剩余磁盘空间的分区。完成这些步之后,敲击 p ,会显示一张类似于下面的分区表:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2   *         3        14    105808+  83  Linux
/dev/sda3            15        81    506520   82  Linux swap
/dev/sda4            82      3876  28690200   83  Linux

保存分区布局

要保存分区布局并退出 fdisk,请敲击 w

Command (m for help):w

当分区创建完成后,就该在其上部署文件系统了。


创建文件系统

介绍

现在分区已经创建,该在上面设置文件系统了。下一章节中描述了Linux所支持的众多文件系统。知道使用哪一个文件系统的读者可以继续阅读为分区应用文件系统。剩下的人应该学习可用的文件系统……

文件系统

有一些可以使用的文件系统。有些在amd64架构上稳定——建议在选择为一个重要分区实验性的选择文件系统前继续阅读。

btrfs
是下一代文件系统,提供了许多高级功能,如快照,通过校验和自我修复、 透明压缩、 子卷和集成 RAID。几个发行版已经开始将它作为一个默认的选项,但它还未为生产工作做好准备。文件系统报告崩溃是常见的。其开发人员敦促人们运行最新的内核版本来解决安全问题,以及老的问题。 这种情况已经很多年了,现在使用它还为时过早。如果出现变更,以及发生了变化,解决错误问题,都很少往旧内核注入补丁。请谨慎使用这个文件系统!
ext2
是经考验证明可靠的Linux文件系统,但是没有元数据日志,这意味这在启动系统时的ext2文件系统的日常检查相当耗时。现在相当一部分的新一代的日志文件系统都可以非常迅速检查一致性,因此比那些非日志文件系统更受欢迎。当你启动系统碰巧遇到文件系统状态不一致时,日志文件系统不会在那里耽搁很长时间。
ext3
是ext2文件系统的带日志版本,提供了元数据日志模式以快速恢复数据。此外还提供了其他增强的日志模式,如完整数据日志模式和有序数据日志模式。它使用了HTree索引,在几乎所有的情况下都能保持高性能。简而言之,ext3是非常好及可靠的文件系统。
ext4
最初创建为ext3的一个分支,EXT4带来了新的功能,性能改进和去除中度更改磁盘格式大小限制。它可以跨越体积高达1的EB并用16 TB最大文件大小。取而代之的是经典的ext2/3位块分配的ext4的使用范围,这对提高大文件的性能,并减少碎片。的Ext4还提供了更为复杂的块分配算法(延迟分配和多嵌段分配)给文件系统驱动更多的方式来优化数据的布局在磁盘上。 EXT4是推荐的通用所有平台的文件系统。
f2fs
这个文件系统最初由三星创建用于NAND闪存,是一种闪存文件系统 从直到2016年第二季度起,这个文件系统仍然被认为不成熟。把Gentoo安装到microSD卡,USB驱动器或其他基于闪存的存储设备时使用它是一个不错的选择。
JFS
是IBM的高性能日志文件系统。JFS是一个轻量级的、快速的和稳定的基于B+树的文件系统,在很多情况下都有很好的表现。
ReiserFS
是基于B+树的文件系统,它有着非常全面的性能,特别时在处理很多小文件的时候,虽然会占用多一点CPU。ReiserFS相比其他文件系统显得受维护的不够。
XFS
是一种带元数据日志的文件系统,它有一个健壮的特性集,并且对可伸缩性进行了优化。XFS似乎对各种各样的硬件问题显得不够宽容。
vfat
也称为FAT32,被支持Linux,但不支持任何权限设置。它主要用于互操作性与其他操作系统(主要是微软的Windows),但也是很有必要的一些系统固件(如UEFI)的支持。
NTFS
这个“新技术”的文件系统是Microsoft Windows的旗舰文件系统。 与上面的vfat类似,它不存储BSD或Linux正常工作所需的权限设置或扩展属性,因此它不能用作根文件系统。 它应该'只'用于与Microsoft Windows系统的互操作性(注意只强调)。

当在一个小的分区(少于8GB)上使用ext2、ext3或ext4,则创建文件系统时必须带适当的选项以保留足够的inode。mke2fsmkfs.ext2)应用程序使用“字节每inode”设置来计算一个文件系统应该用多少个inode。在小分区,建议增加计算出的inode数量。

对于ext2,可以使用下面的命令来完成:

root #mkfs.ext2 -T small /dev/<device>

对于ext3或ext4,添加-j选项来启用日志:

root #mkfs.ext2 -j -T small /dev/<device>

这一般将是对于给定的文件系统inode数量的四倍,它的“字节每inode”从16kB每个减少到4kB每个。这个可以在将来通过提供比例进行调整:

root #mkfs.ext2 -i <ratio> /dev/<device>

为分区应用文件系统

在一个分区或卷上创建一个文件系统,这里有用于每一个可能的分区的工具。 单击下表中的文件系统名称,了解每个文件系统的更多信息:

文件系统 创建命令 在最小化CD?
btrfs mkfs.btrfs Yes sys-fs/btrfs-progs
ext2 mkfs.ext2 Yes sys-fs/e2fsprogs
ext3 mkfs.ext3 Yes sys-fs/e2fsprogs
ext4 mkfs.ext4 Yes sys-fs/e2fsprogs
f2fs mkfs.f2fs Yes sys-fs/f2fs-tools
jfs mkfs.jfs Yes sys-fs/jfsutils
reiserfs mkfs.reiserfs Yes sys-fs/reiserfsprogs
xfs mkfs.xfs Yes sys-fs/xfsprogs
vfat mkfs.vfat Yes sys-fs/dosfstools
NTFS mkfs.ntfs Yes sys-fs/ntfs3g

比如,在示例分区结构中,有 使用ext2的引导分区(/dev/sda2)和使用ext4的根分区(/dev/sda4),下面的命令将会用到:

root #mkfs.ext2 /dev/sda2
root #mkfs.ext4 /dev/sda4

现在在新创建的分区(或逻辑卷)上创建文件系统。

激活swap分区

mkswap是用来初始化swap分区的命令:

root #mkswap /dev/sda3

要激活swap分区,使用swapon

root #swapon /dev/sda3

使用上面提到的命令创建和激活swap。

挂载

现在分区都已初始化并有文件系统,接下来该挂载那些分区了。使用mount命令,但是不要忘记为每一个创建的分区创建需要的挂载目录。比如示例中我们挂载根 和引导 分区:

root #mount /dev/sda4 /mnt/gentoo
root #mkdir /mnt/gentoo/boot
root #mount /dev/sda2 /mnt/gentoo/boot
附注
如果/tmp/需要放在一个独立分区,确保在挂载后变更它的权限:
root #chmod 1777 /mnt/gentoo/tmp
这同样适用于/var/tmp

后面的介绍中将挂载proc文件系统(一个内核的虚拟接口)和其它内核伪文件系统。不过我们首先安装Gentoo安装文件




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


安装stage包

设置日期和时间

在安装Gentoo之前,最好确保日期和时间设置正确。 错误配置的时间可能会导致奇怪的结果:基本系统文件应设置精确的时间戳。 事实上,由于几个网站和服务使用加密通信(SSL / TLS),如果系统时间差的离谱,可能无法下载安装文件!

验证当前时间使用命令date:

root #date
Mon Oct  3 13:16:22 PDT 2016

如果显示的日期/时间不正确,请使用下列方法之一进行更新。

附注
不包括实时时钟(RTC)的主板应配置为自动将系统时钟与时间服务器同步。 这也适用于包含RTC但具有故障电池的系统。

自动

Gentoo的官方安装光盘包含 ntpd命令 (属于包 net-misc/ntp package)。官方光盘包括指向ntp.org时间服务器的配置文件。它可以用于使用时间服务器,使得系统时钟自动同步到UTC时间。使用方法见working network configuration 但在某些架构的光盘上可能不可用。

警告
自动时间同步需要付出一个代价。它将向时间服务器显示系统的IP地址和相关网络信息(在下面的示例中为ntp.org)。有隐私问题的用户应该注意这个“之前”使用下面的方法设置系统时钟。
root #ntpd -q -g

手册

也可以用date 命令来对系统时钟执行手动设置。使用 MMDDhhmmYYYY 语法 (月, 日, 小时, 分钟 和 年)。

建议所有Linux系统使用UTC时间。 稍后在安装期间将定义时区。 这将修改时钟的显示为本地时间。

比如,设置时间到2016年10月3日的13:16:

root #date 100313162016

选择一个stage包

multilib(32和64位)

选择一个基础压缩包的系统可以在稍后的安装过程节省大量的时间,特别是当它是一次 choose a system profile。一个stage包的选择将直接影响未来的系统配置,可以在以后省的头痛。该压缩包multilib尽可能使用64位的库,只必要时对32位版本兼容。这对于大多数安装一个很好的选择,因为它在未来的定制提供了极大的灵活性量。那些谁希望自己的系统,能够容易地切换配置,应该下载根据各自的处理器架构multilib的压缩包选项。

大多数用户应该不需要使用“高级”tar包选项;它们用于特定的软件或硬件配置。

no-multilib(纯64位)

选择一个no-multilib压缩包:no-multilib是在系统的基础上提供了一个完整的64位操作系统环境。这有效地使得切换到multilib的profile是不可能的(不是完全不可能)。这些刚刚开始使用Gentoo的新手不应该选择一个 no-multilib 压缩包,除非"绝对必要"。而且应该有很好的理由并做出负责任的选择。

警告
注意,把一个系统从no-multilib迁移到multilib需要极其丰富的使用Gentoo的知识并熟悉底层的工具链。这一做法甚至可能导致Toolchain developers 这令人不寒而栗。不适合内心柔弱之人,而且也超出了本指南的范围。

下载stage压缩包

前往挂载根文件系统的Gentoo挂载点(很像/mnt/gentoo):

root #cd /mnt/gentoo

Depending on the installation medium, the only tool necessary to download a stage tarball is a web browser.

Graphical browsers

Those using environments with fully graphical web browsers will have no problem copying a stage file URL from the main website's download section. Simply select the appropriate tab, right click the link to the stage file, then Copy link address (Firefox) or Copy link location (Chromium) to copy the link to the clipboard, then paste the link to the wget utility on the command-line to download the stage tarball:

root #wget <PASTED_STAGE_URL>

Command-line browsers

More traditional readers or 'old timer' Gentoo users, working exclusively from command-line may prefer using links, a non-graphical, menu-driven browser. To download a stage, surf to the Gentoo mirror list like so:

root #links https://www.gentoo.org/downloads/mirrors/

要设置links使用一个HTTP代理,在传入URL上加一个-http-proxy选项:

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

links之外还有一个lynx浏览器。和links类似,它也是一个非图形化的浏览器,但不是自带的。

root #lynx https://www.gentoo.org/downloads/mirrors/

如果需要定义一个代理,设置http_proxy和/或ftp_proxy变量:

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

On the mirror list, select a mirror close by. Usually HTTP mirrors suffice, but other protocols are available as well. Move to the releases/amd64/autobuilds/ directory. There all available stage files are displayed (they might be stored within subdirectories named after the individual sub-architectures). Select one and press d to download.

After the stage file download completes, it is possible to verify the integrity and validate the contents of the stage tarball. Those interested should proceed to the next section.

Those not interested in verifying and validating the stage file can close the command-line browser by pressing q and can move directly to the Unpacking the stage tarball section.

Verifying and validating

Like with the minimal installation CDs, additional downloads to verify and validate the stage file are available. Although these steps may be skipped, these files are provided for users who care about the legitimacy of the file(s) they just downloaded.

  • A .CONTENTS file that contains a list of all files inside the stage tarball.
  • A .DIGESTS file that contains checksums of the stage file, in different algorithms.
  • A .DIGESTS.asc file that, like the .DIGESTS file, contains checksums of the stage file in different algorithms, but is also cryptographically signed to ensure it is provided by the Gentoo project.

Use openssl and compare the output with the checksums provided by the .DIGESTS or .DIGESTS.asc files.

比如,要验证SHA512校验值:

root #openssl dgst -r -sha512 stage3-amd64-<release>.tar.bz2

使用sha512sum命令的另外一种方式:

root #sha512sum stage3-amd64-<release>.tar.bz2

要验证Whirlpool校验值:

root #openssl dgst -r -whirlpool stage3-amd64-<release>.tar.bz2

该值需要匹配,否则下载的文件可能已损坏(或摘要文件)。比较这些命令的输出与.DIGESTS(.asc)中的值。该值需要匹配,否则下载的文件可能已损坏(或digests文件)。

就像在ISO文件中,它也可以来验证加密签名的.DIGESTS.asc。使用 gpg 以确保DIGESTS.asc文件校验和未被篡改:

root #gpg --verify stage3-amd64-<release>.tar.bz2.DIGESTS.asc

解开stage压缩包

现在,解压下载的stage到系统。我们使用 tar来进行:

root #tar xvjpf stage3-*.tar.bz2 --xattrs --numeric-owner

Make sure that the same options (xvjpf and --xattrs) are used. The x stands for Extract, the v for Verbose to see what happens during the extraction process (optional), the j for Decompress with bzip2, the p for Preserve permissions and the f to denote that we want to extract a File, not standard input. --xattrs is to include the extended attributes stored in the archive. Finally, --numeric-owner is used to ensure that the user and group IDs of the files being extracted from the tarball will remain the same as the Gentoo release engineering team intended, even if adventurous users are not using official Gentoo installation media.

Now that the stage file is installed, continue with Configuring the compile options.

配置编译选项

介绍

为了优化Gentoo,可以设置一些影响Portage的变量,Gentoo官方支持包管理器。 所有这些变量可以设置为环境变量(使用export),但这不是永久的。 为了保留设置,Portage读入/etc/portage/make.conf文件 ,一个用于Portage的配置文件。

附注
所有可能的变量的注释列表可以在 /mnt/gentoo/usr/share/portage/config/make.conf.example中找到。要成功安装Gentoo,只需要设置下面提到的变量。

启动编辑器(在本指南中,我们使用 nano)来更改我们将在下面讨论的优化变量。

root #nano -w /mnt/gentoo/etc/portage/make.conf

make.conf.example文件中可以明显看出文件的结构:注释行以 "#"开头,其他行使用 VARIABLE="content 语法定义变量。 接下来选取其中的几个进行讨论。

CFLAGS和CXXFLAGS

The CFLAGS and CXXFLAGS variables define the optimization flags for GCC C and C++ compilers respectively. Although those are defined generally here, for maximum performance one would need to optimize these flags for each program separately. The reason for this is because every program is different. However, this is not manageable, hence the definition of these flags in the make.conf file.

应该在make.conf中定义优化标志,这将使系统的响应速度最快。 不要在此变量中放置实验性的设置; 太多的优化可能会使程序表现不佳(崩溃,甚至更糟,故障)。

我们不会解释所有可能的优化选项。 要了解它们,请阅读GNU在线手册或gcc信息页面 (info gcc-只适用于可用的Linux系统)。make.conf.example 文件本身也包含了很多例子和信息; 不要忘了读它。

第一个设置是标志 -march=-mtune= ,指定目标体系结构的名称。 可能用到的选项在make.conf.example文件中有描述(作为注释)。 一个常用的值是“native”,它告诉编译器选择当前系统体系结构(用户正在安装Gentoo时的系统)。

第二个是标志 -O(即大写的字母O,而不是数字零),它指定了gcc优化级别标志。 可能用到级别的是s(对于大小最优化),0(零 - 无优化),1,2或甚至3等更多的优化选项(每个级别具有与前面相同的标志,加上一些额外选项)。 -O2是建议的默认值。 -O3在整个系统范围内使用时会导致问题,因此我们建议您坚持使用-O2

另一个普遍使用的优化标记是-pipe(不同编译阶段通信使用管道而不是临时文件)。它对产生的代码没有任何影响,但是会使用更多的内存。在内存不多的系统里,gcc可能会被杀掉。如果是那样的话,就不要用这个标记。

使用 -fomit-frame-pointer(它将不在寄存器里为不需要帧指针的函数保存帧指针)可能会在调试程序的时候造成严重后果!

在你定义 CFLAGSCXXFLAGS的时候,你需要把这些优化标记都合并起来。stage3文件里包含的你解压缩出来的默认值已经足够好了。下面这个例子仅仅是个例子:

CODE Example CFLAGS and CXXFLAGS variables
CFLAGS="-march=native -O2 -pipe"
# Use the same settings for both variables
CXXFLAGS="${CFLAGS}"
附注
GCC 优化指导有更多的信息,比如这些优化变量如何影响你的系统。

MAKEOPTS

通过使用MAKEOPTS 你可以定义在安装软件的时候同时可以产生并行编译的数目。你的CPU数目(CPU核心数)+1 是个不错的选择,但是这个准则并不总都是最佳的。

CODE 在make.conf中声明MAKEOPTS的示例
MAKEOPTS="-j2"

就位,预备,出发 !

根据你的喜好更新并保存/mnt/gentoo/etc/portage/make.conf(nano用户可以敲 Ctrl+X)。

让我们继续 安装Gentoo 基本系统.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


Chrooting

可选:选择境像站点

分发文件

为了能更快的下载源代码,这里推荐选择一个快的镜像。Portage将会在make.conf文件中查找GENTOO_MIRRORS变量,并使用其中所列的镜像。可以通过浏览Gentoo镜像列表搜索一个(或一组)最接近系统物理位置(往往那是最快的)的镜像。另外,我们提供一个叫作mirrorselect的好工具,它为用户选择所需镜像提供了一个很好的交换。只需要移动光标选择镜像并按Spacebar选择一个或多个镜像。

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Gentoo ebuild repository

A second important step in selecting mirrors is to configure the Gentoo ebuild repository via the /etc/portage/repos.conf/gentoo.conf file. This file contains the sync information needed to update the package repository (the collection of ebuilds and related files containing all the information Portage needs to download and install software packages).

Configuring the repository can be done in a few simple steps. First, if it does not exist, create the repos.conf directory:

root #mkdir /mnt/gentoo/etc/portage/repos.conf

接下来,复制Portage提供的Gentoo仓库配置文件到这个(新创建的)目录:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

使用一个文件编辑器或通过使用cat命令来看一眼。文件里的内容应该是.ini格式并且看起来像是这样:

FILE /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes

The default sync-uri variable value listed above will determine a mirror location based on a rotation. This will aid in easing bandwidth stress on Gentoo's infrastructure and will provide a fail-safe in case a specific mirror is offline. It is recommended the default URI is retained unless a local, private Portage mirror will be used.

Tip
对那些有兴趣的话,可以在Portage项目的同步主题中找到关于Portage的同步API插件的官方的规范。

复制DNS信息

在进行新环境之前,还有一件要做的事情就是复制/etc/resolv.conf中的DNS信息。需要完成这个来确保即使进入到新环境后网络仍然可以使用。/etc/resolv.conf包含着当前网络中的DNS服务器。

要复制这个信息,建议通过cp命令的-L选项。这可以保障如果/etc/resolv.conf是一个符号链接的话,复制的是那个目标文件而不是这个符号文件自己。否则在新环境中,符号文件将指向一个不存在的文件(因为链接目标非常可能不会在新环境中)。

root #cp -L /etc/resolv.conf /mnt/gentoo/etc/

挂载必要的文件系统

稍等片刻,Linux的根将变更到新的位置。为了确保新环境正常工作,需要确保一些文件系统可以正常使用。

需要提供的文件系统是:

  • /proc/ 一个pseudo文件系统(看起来像是常规文件,事实上却是实时生成的),由Linux内核暴露的一些环境信息
  • /sys/ 一个pseudo文件系统,像要被取代的/proc/一样,比/proc/更加有结构
  • /dev/ 是一个包含全部设备文件的常规文件系统,一部分由Linux设备管理器(通常是udev)管理

/proc/位置将要挂载到/mnt/gentoo/proc/,而其它的两个都是绑定挂载。字面上的意思是,例如/mnt/gentoo/sys/事实上就是/sys/(它只是同一个文件系统的第二个条目点),而/mnt/gentoo/proc/是(可以说是)文件系统的一个新的挂载。

root #mount -t proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
附注
--make-rslave操作是稍后安装systemd支持时所需要的。
Warning
When using non-Gentoo installation media, this might not be sufficient. Some distributions make /dev/shm a symbolic link to /run/shm/ which, after the chroot, becomes invalid. Making /dev/shm/ a proper tmpfs mount up front can fix this:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm

Also ensure that mode 1777 is set

root # chmod 1777 /dev/shm

进入新环境

现在所有的分区已经初始化,并且基础环境已经安装,是时候进入到新的安装环境了。这意思着会话将把根(所能访问到的最顶层位置)从当前的安装环境(安装CD或其他安装媒介)变为安装系统(叫做初始化分区)。因此叫作change rootchroot

完成chroot有三个步骤:

  1. 使用chroot将根位置从/(在安装媒介里)更改成/mnt/gentoo/(在分区里)
  2. 使用source命令将一些设置(那些在/etc/profile中的)重新载入到内存中
  3. 更改主提示符来帮助我们记住当前会话在一个chroot环境里面。
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"

From this point, all actions performed are immediately on the new Gentoo Linux environment. Of course it is far from finished, which is why the installation still has some sections left!

Mounting the boot partition

Now that the new environment has been entered, it is necessary to create and mount the /boot partition. This will be important when it is time to compile the kernel and install the bootloader:

root #mkdir /boot
root #mount /dev/sda2 /boot

配置Portage

Installing an ebuild repository snapshot from the web

Next step is to install a snapshot of the main ebuild repository. This snapshot contains a collection of files that informs Portage about available software titles (for installation), which profiles the system administrator can select, package or profile specific news items, etc.

The use of emerge-webrsync is recommended for those who are behind restrictive firewalls (because it uses HTTP/FTP protocols for downloading the snapshot) and saves network bandwidth. Readers who have no network or bandwidth restrictions can happily skip down to the next section.

This will fetch the latest snapshot (which is released on a daily basis) from one of Gentoo's mirrors and install it onto the system:

root #emerge-webrsync
附注
在这个操作中,emerge-webrsync可能会报找不到/usr/portage/位置。这是预期内的并且不用担心——这个工具将会创建这个位置。

From this point onward, Portage might mention that certain updates are recommended to be executed. This is because system packages installed through the stage file might have newer versions available; Portage is now aware of new packages because of the repository snapshot. Package updates can be safely ignored for now; updates can be delayed after the Gentoo installation has finished.

Optional: Updating the Gentoo ebuild repository

It is possible to update the Gentoo ebuild repository to the latest version. The previous emerge-webrsync command will have installed a very recent snapshot (usually recent up to 24h) so this step is definitely optional.

Suppose there is a need for the last package updates (up to 1 hour), then use emerge --sync. This command will use the rsync protocol to update the Gentoo ebuild repository (which was fetched earlier on through emerge-webrsync) to the latest state.

root #emerge --sync

在慢速的终端上,比如一些framebuffer或者串口控制台,建议使用--quiet选项来加速这个进程:

root #emerge --sync --quiet

阅读新闻条目

When the Gentoo ebuild repository is synchronized to the system, Portage may warn the user with messages similar to the following:

CODE Portage通知用户关于新闻条目
 * IMPORTANT: 2 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

News items were created to provide a communication medium to push critical messages to users via the rsync tree. To manage them, use eselect news. The eselect application is a Gentoo application that allows for a common management interface towards system changes and operations. In this case, eselect is asked to use its news module.

对于news模块,最常用的有三个操作:

  • 使用list显示一个可用新闻条目的预览。
  • 使用read来阅读新闻条目。
  • 使用purge将在新闻条目阅读后删除,并且不能再次阅读。
root #eselect news list
root #eselect news read

更多关于新闻阅读器的信息可以通过其手册页查看:

root #man news.eselect

选择正确的配置文件

配置文件是任何一个Gentoo系统的积木。它不仅指定USECFLAGS和其它重要变量的默认值,还会锁定系统的包版本范围。这些设定全是由Gentoo的Portage开发者们来维护。

使用eselect,你能看到当前系统正在使用什么配置文件,现在来使用profile模块:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
附注
命令的这个输出只是一个示例,并会随时间演变。

可以看到,一些架构还会有桌面的子配置文件。

在看完框架的可用配置文件amd64之后,用户可以键入以下命令为系统选择一个不同的配置文件:

root #eselect profile set 2


No-multilib

要选择一个没有32位应用程序或类库的纯64位环境,请使用一个no-multilib的配置文件:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib

接下来选择no-multilib配置文件:

root #eselect profile set 5
root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib *

systemd

那些想使用systemd作为他们的init系统就应该选择一个在其某个部分中包含了systemd字样的配置文件:

root #eselect profile set default/linux/amd64/13.0/systemd
root #eselect profile list
Available profile symlink targets:
  [10]  default/linux/amd64/13.0/developer
  [11]  default/linux/amd64/13.0/no-multilib
  [12]  default/linux/amd64/13.0/systemd *
  [13]  default/linux/amd64/13.0/x32
  [14]  hardened/linux/amd64
Tip
如您上面看到的那样,完整的配置文件名可以代替配置文件关联的编号被使用。


Note
The developer subprofile is specifically for Gentoo Linux development and is not meant to be used by casual users.

更新@world集合

在这一点上,如果选择了新的系统profile,则更新系统的 @world set 是明智的,以便可以为新profile构建系统。

对于那些在标题中选择了systemd的配置文件的人来说,下面的步骤是'必要的'(因为Gentoo的官方阶段的tarball使用OpenRC作为默认的init系统),但是对于其他的profile是' 可选的

root #emerge --ask --update --deep --newuse @world
Tip
If a full scale desktop environment profile has been selected this process could greatly extend the amount of time necessary for the install process. Those in a time crunch can work by this 'rule of thumb': the shorter the profile name, the less specific the system's @world set; the less specific the @world set, the fewer packages the system will require. In other words:
  • selecting default/linux/amd64/13.0 will require very few packages to be updated, whereas
  • selecting default/linux/amd64/13.0/desktop/gnome/systemd will require many packages to be installed since the init system is changing from OpenRC to systemd, and the GNOME desktop environment framework will be installed.

配置USE变量

USE is one of the most powerful variables Gentoo provides to its users. Several programs can be compiled with or without optional support for certain items. For instance, some programs can be compiled with support for GTK+ or with support for Qt. Others can be compiled with or without SSL support. Some programs can even be compiled with framebuffer support (svgalib) instead of X11 support (X-server).

大多数的发行版会使用尽可能多的支持特性编译它们的软件包,这既增加了软件的大小也减慢了启动时间,而这些还没有算上可能会涉及到的大量依赖性问题。Gentoo可以让你自己定义软件编译的选项,而这正是USE要做的事。

In the USE variable users define keywords which are mapped onto compile-options. For instance, ssl will compile SSL support in the programs that support it. -X will remove X-server support (note the minus sign in front). gnome gtk -kde -qt4 -qt5 will compile programs with GNOME (and GTK+) support, and not with KDE (and Qt) support, making the system fully tweaked for GNOME (if the architecture supports it).

默认的USE设置全放在了系统所使用的Gentoo配置文件的make.defaults文件中。Gentoo对它的配置文件们使用了一个(复杂的)继承系统,在这个阶段我们不去深入。最简单的检查当前活动的USE标记的办法是运行emerge --info并选择以USE开头的那一行:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
附注
上面的示例被截断了,实际上的USE列表值是非常非常多的。

可以在系统的/usr/portage/profiles/use.desc中找到可用的USE标记的完整描述。

root #less /usr/portage/profiles/use.desc

less命令中,可以通过使用键来滚动,并且可以按q退出。

As an example we show a USE setting for a KDE-based system with DVD, ALSA and CD recording support:

root #nano -w /etc/portage/make.conf
FILE /etc/portage/make.confEnabling USE for a KDE-based system with DVD, ALSA and CD recording support
USE="-gtk -gnome qt4 qt5 kde dvd alsa cdr"

USE/etc/portage/make.conf中定义,会从那个默认列表中添加(或者移除,如果USE标记以-号开头的话)。用户想忽略所有默认的USE设置并完全由自己管理的话,应该在make.conf中定义USE-*开头:

FILE /etc/portage/make.conf忽略默认USE标记
USE="-* X acl alsa ..."

Optional: Using systemd as the init system

The remainder of the Gentoo Handbook focuses on OpenRC (the traditional Gentoo init system) as the default init system. If systemd is desired or if the reader will be installing GNOME 3.8 and later (which requires systemd), please consult the systemd article. It contains instructions equivalent to the instructions in the following sections of this Handbook. Specifically, it will walk the reader through various init system commands (systemctl) and systemd-specific services (such as timedatectl, hostnamectl, etc.) needed to establish a working systemd environment.

Note
Certain applications are heavily dependent on the GNOME software ecosystem and subsequently dependent on systemd. Readers who are unsure if the GNOME desktop environment will be used can migrate to a systemd profile later.

时区

为系统选择时区。在/usr/share/zoneinfo/中查找可用的时区,然后写进/etc/timezone文件。

root #ls /usr/share/zoneinfo

假设要选择的时区是Asia/Shanghai

root #echo "Asia/Shanghai" > /etc/timezone

请避免使用/usr/share/zoneinfo/Etc/GMT*时区,它们的名字并不意味着想要的时区。例如,GMT-8实际上是GMT+8

接下来,重新配置sys-libs/timezone-data包,将会为我们基于/etc/timezone条目更新/etc/localtime文件。/etc/localtime文件用于让系统的C类库知道系统在什么时区。

root #emerge --config sys-libs/timezone-data

配置地区

大多数用户只想在他们的系统上使用一或两个地区。

地区不只是指定系统应该使用的与系统进行交互的语言,同时也指定了字符串排序,日期和时间的显示等规则。

系统应该支持的地区应该在/etc/locale.gen中提到。

root #nano -w /etc/locale.gen

下面的地区是一个示例,展示了同时使用英语(美国)和中文(中国)及附加字符格式(如UTF-8)。

FILE /etc/locale.genEnabling US and DE locales with the appropriate character formats
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
警告
我们强烈建议使用至少一个UTF-8格式的地区设置,因为有些应用程序可能需要它。

下一步是运行locale-gen。它将生成/etc/locale.gen文件中指定的所有地区。

root #locale-gen

要验证所选择的地区当前可用,运行locale -a

等完成后,我们就来设定系统级别的区域设置。我们又一次使用eselect来做这件事,现在使用locale模块。

通过eselect locale list可显示可用的目标:

root #eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   en_US
  [3]   en_US.iso88591
  [4]   en_US.utf8
  [5]   POSIX
  [6]   zh_CN
  [7]   zh_CN.gbk
  [8]   zh_CN.utf8
  [ ]   (free form)

通过eselect locale set VALUE可以设定正确的地区:

root #eselect locale set 8

这个还可以通过人工编辑/etc/env.d/02locale文件来完成:

FILE /etc/env.d/02locale手动设置系统地区定义
LANG="zh_CN.UTF-8"

确保设定了一个地区,不然系统会在后面安装中的内核编译和部署其他软件时显示警告和错误。

现在重新加载环境:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

为了帮助指导用户完成此过程。我们制作了完整的本地化指南。另一个有意思的文章是为系统启用UTF-8的具体信息的UTF-8指南。




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


安装源码

Linux内核是所有发行版的核心。它位于用户程序和系统硬件之间。Gentoo提供给用户一些可选的内核源码。完整的带描述的列表在内核概述页面

针对基于amd64-系统的Gentoo,建议使用包 sys-kernel/gentoo-sources

选择一个合适的内核并使用emerge来安装它。

root #emerge --ask sys-kernel/gentoo-sources

这将在/usr/src/中安装Linux内核源码,并有一个符号连接叫作linux将指向安装的内核源码:

root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo

现在是时候来配置和编译内核源代码了。有两种方法:

  1. 手动配置并生成内核。
  2. 一个叫作genkernel的工具用来自动化生成并安装Linux内核。

我们在这里解释做为默认选择的手动配置,它是优化环境的最好方式。

默认:手动配置

介绍

手动配置内核经常被Linux用户认为是最困难的步骤。事实并非如此——但是当您手动配置几次内核之后,你就不会再觉得它有多么难了:)

无论如何,有一件事是真实的:当手动配置内核时,了解(硬件)系统是至关重要的。大多数信息可以通过安装包含lspci命令的sys-apps/pciutils来收集:

root #emerge --ask sys-apps/pciutils
附注
在chroot中,可以安全的忽略任何lspci可能抛出的关于pcilib的警告(比如pcilib: cannot open /sys/bus/pci/devices)。

另一个系统信息来源是运行lsmod来查看安装CD使用什么内核模块,它可能对启用什么提供了一个好的暗示。

现在进入内核源码目录并执行make menuconfig。这将启动一个菜单驱动的配置屏幕。

root #cd /usr/src/linux
root #make menuconfig

Linux内核配置有很多很多的章节。我们先列出一些必须激活的选项(否则Gentoo将无法工作,或者离开附加的调整将无法正常工作)。我们同时在Gentoo维基上有一个Gentoo内核配置指南可能会在将来有帮助。

激活必要的选项

Make sure that every driver that is vital to the booting of the system (such as SCSI controller, etc.) is compiled in the kernel and not as a module, otherwise the system will not be able to boot completely.

Next select the exact processor type. It is also recommended to enable MCE features (if available) so that users are able to be notified of any hardware problems. On some architectures (such as x86_64), these errors are not printed to dmesg, but to /dev/mcelog. This requires the app-admin/mcelog package.

Also select Maintain a devtmpfs file system to mount at /dev so that critical device files are already available early in the boot process (CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT):

KERNEL Enabling devtmpfs support
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Verify SCSI disk support has been activated (CONFIG_BLK_DEV_SD):

KERNEL Enabling SCSI disk support
Device Drivers --->
   SCSI device support  --->
      <*> SCSI disk support

Now go to File Systems and select support for the filesystems you use. Don't compile the file system that is used for the root filesystem as module, otherwise the Gentoo system will not be able to mount the partition. Also select Virtual memory and /proc file system. Select one or more of the following options as needed by the system (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS, and CONFIG_TMPFS):

KERNEL Selecting necessary file systems
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
 
Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

If PPPoE is used to connect to the Internet, or a dial-up modem, then enable the following options (CONFIG_PPP, CONFIG_PPP_ASYNC, and CONFIG_PPP_SYNC_TTY):

KERNEL Selecting PPPoE necessary drivers
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

这两个压缩选项将是无害的,但是它们一定是不需要的,包括基于以太网的PPP选项也是一样,只有在配置内核模式PPPoE时才会需要。

不要忘记在内核中包括网(以太网或无线)卡。

Most systems also have multiple cores at their disposal, so it is important to activate Symmetric multi-processing support (CONFIG_SMP):

KERNEL Activating SMP support
Processor type and features  --->
  [*] Symmetric multi-processing support
附注
在多核心系统中,每一个核心计作一个处理器。

If USB input devices (like keyboard or mouse) or other USB devices will be used, do not forget to enable those as well (CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT, CONFIG_USB_XHCI_HCD, CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD):

KERNEL Activating USB support for input devices
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support


架构特有的内核配置

Make sure to select IA32 Emulation if 32-bit programs should be supported (CONFIG_IA32_EMULATION). Gentoo installs a multilib system (mixed 32-bit/64-bit computing) by default, so unless a no-multilib profile is used, this option is required.

KERNEL Selecting processor types and features
Processor type and features  --->
   [ ] Machine Check / overheating reporting 
   [ ]   Intel MCE Features
   [ ]   AMD MCE Features
   Processor family (AMD-Opteron/Athlon64)  --->
      ( ) Opteron/Athlon64/Hammer/K8
      ( ) Intel P4 / older Netburst based Xeon
      ( ) Core 2/newer Xeon
      ( ) Intel Atom
      ( ) Generic-x86-64
Executable file formats / Emulations  --->
   [*] IA32 Emulation

Enable GPT partition label support if that was used previously when partitioning the disk (CONFIG_PARTITION_ADVANCED and CONFIG_EFI_PARTITION):

KERNEL Enable support for GPT
-*- Enable the block layer --->
   Partition Types --->
      [*] Advanced partition selection
      [*] EFI GUID Partition support

如果使用UEFI来引导系统,则在内核中启用EFI桩支持和EFI变量:

KERNEL Enable support for UEFI
Processor type and features  --->
    [*] EFI runtime service support 
    [*]   EFI stub support
    [*]     EFI mixed-mode support
 
Firmware Drivers  --->
    EFI (Extensible Firmware Interface) Support  --->
        <*> EFI Variable Support via sysfs

编译和安装

当配置完成,是时间来编译和安装内核了。退出配置并开始编译过程:

root #make && make modules_install
附注
还可以启用并行生成使用make -jXX是一个生成过程中所允许运行的并行任务的整数。这类似于早期有关/etc/portage/make.conf的中关于MAKEOPTS变量的介绍。

当内核完成编译,复制内核镜像到/boot/。这由make install命令来处理:

root #make install

这将复制内核镜像到/boot/,一起的还有System.map文件和内核配置文件。


可选:生成一个initramfs

在某些情况中需要建立一个initramfs——一个基于内存的初始化文件系统。最觉的原因是当重要的文件系统位置(如/usr//var/)在分离的分区。通过一个initramfs,这些分区可以使用initramfs里面的工具来完成挂载。

如果没有initramfs的,存在着巨大的风险,系统将无法正常开机,因为这是负责安装的文件系统工具需要驻留在这些文件系统的信息。 initramfs中的一个将在必要的文件拉进它的内核启动之后使用的档案,但控制被移交前转移到初始化工具。在initramfs的脚本,然后将确保分区正确地安装在系统继续启动之前。

要安装一个initramfs,首先安装sys-kernel/genkernel,然后用它生成一个initramfs:

root #emerge --ask sys-kernel/genkernel
root #genkernel --install initramfs

In order to enable specific support in the initramfs, such as LVM or RAID, add in the appropriate options to genkernel. See genkernel --help for more information. In the next example support is enabled for LVM and software RAID (mdadm):

root #genkernel --lvm --mdadm --install initramfs

initramfs将存储在/boot/。结果文件可以简单的通过列出以initramfs开头的文件来找到:

root #ls /boot/initramfs*

现在继续到内核模块

备选:使用genkernel

如果手动配置看起来太恐怖,建议使用genkernel。它将自动配置并编译内核。

genkernel配置内核的工作原理几乎和安装CD配置的内核完全一致。也就是说当使用genkernel建立内核,系统通常将在引导时检测全部硬件,就像安装CD所做的。因为genkernel不需要任何手动内核配置,它对于那些不能轻松的编译他们自动内核的用户来说是一个理想的解决方案。

现在,我们来看看如何使用genkernel。首先emerge sys-kernel/genkernel这个ebuild:

root #emerge --ask sys-kernel/genkernel

接下来,编辑/etc/fstab文件来使包含有第二个值为/boot/的那条的第一个值指向到正确的设备。如果是按照本手册的分区示例,则这个设备非常像使用ext2文件系统的/dev/sda2。这将使文件中的这一条目看起来像是:

root #nano -w /etc/fstab
FILE /etc/fstabConfiguring the /boot mountpoint
/dev/sda2	/boot	ext2	defaults	0 2
附注
在Gentoo将来的安装中,还要再配置一次/etc/fstab。现在只需要正确设置/boot来让genkernel应用程序读到相应的配置。

现在,运行genkernel all来编译内核源码。值得注意的是,使用genkernel编译一个内核将支持几乎全部的硬件,这将使编译过程需要一阵子来完成!

附注
如果引导分区不是使用ext2或ext3作为文件系统,它可能需要使用genkernel --menuconfig all来手动配置内核,并在内核中添加对这个具体文件系统的支持(比如:不是作为一个模块)。LVM2用户可能要作为参数来添加--lvm
root #genkernel all

一旦genkernel完成,将创建一个内核、全部的模块和初始化内存文件(initramfs)。我们将在文档后面配置引导器的时候使用这个内核和initrd。记下内核和initrd名字作为编辑引导器配置文件的信息。initrd将在后执行硬件检测之后、“真实”系统启动之前立即启动。

root #ls /boot/kernel* /boot/initramfs*

内核模块

配置模块

/etc/conf.d/modules中列出需要自动加载的模块。如果有必要,附加选项也可以添加到模块中。

要查看所有可用模块,运行下面的find命令。不要忘记替换“<kernel version>”为刚刚编译的内核版本:

root #find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less

比如,要自动加载3c59x.ko模块(3Com网卡家族的特定驱动),编辑/etc/conf.d/modules文件并在里面输入模块名字。

root #nano -w /etc/conf.d/modules
modules="3c59x"

继续到配置系统来安装。

可选:安装固件

一些驱动需要先在系统上安装附加的固件才能工作。这经常用于网络接口,特别是无线网络接口。非常多的固件都打包在sys-kernel/linux-firmware里:

root #emerge --ask sys-kernel/linux-firmware




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


文件系统信息

关于 fstab

在Linux系统下,系统所用到的所有分区都必须在 /etc/fstab文件中指明。这个文件包含了这些分区的挂载点(在系统目录树中的位置)、挂载方法和特殊挂载选项(是否自动挂载,是否某个用户可以挂载它等)。

创建/etc/fstab文件

/etc/fstab文件使用一种特殊语法格式。每行都包含六个字段。这些字段之间由空白键(空格键,tab键,或者两者混合使用)分隔。每个字段都有自己的含意:

  1. 第一个字段是对分区的描述,也就是设备文件的路径
  2. 第二个字段是分区挂载点,也就是分区应该挂载到的地方
  3. 第三个字段给出分区所用的文件系统
  4. 第四个字段给出的是挂载分区时mount命令所用的挂载选项。由于每个文件系统都有自己的挂载选项,我们建议你阅读mount手册(man mount)以获得所有挂载选项的列表。多个挂载选项之间是用逗号分隔的。
  5. 第五个字段是给dump使用的,用以决定这个分区是否需要dump。一般情况下,你可以把该字段设为0(零)。
  6. 第六个字段是给fsck使用的,用以决定系统非正常关机之后文件系统的检查顺序。根文件系统应该为1,而其它的应该为2(如果不需要文件系统自检的话可以设为0)。
重要
Gentoo 提供默认的/etc/fstab不是有效的fstab
,只提供了几个样本。
root #nano -w /etc/fstab

在文本的其余部分,我们使用默认的块设备 /dev/sd* 文件作为分区。

Filesystem labels and UUIDs

Both MBR (BIOS) and GPT include support for filesystem labels and filesystem UUIDs. These attributes can be defined in /etc/fstab as alternatives for the mount command to use when attempting to find and mount block devices. Filesystem labels and UUIDs are identified by the LABEL and UUID prefix and can be viewed with the blkid command:

root #blkid
Warning
If the filesystem inside a partition is wiped, then the filesystem label and the UUID values will be subsequently altered or removed.

Because of uniqueness, readers that are using an MBR-style partition table are recommended to use UUIDs over labels to define mountable volumes in /etc/fstab.

分区表和UUIDs

Users who have gone the GPT route have a couple more 'robust' options available to define partitions in /etc/fstab. Partition labels and partition UUIDs can be used to identify the block device's individual partition(s), regardless of what filesystem has been chosen for the partition itself. Partition labels and UUIDs are identified by the PARTLABEL and PARTUUID prefixes respectively and can be viewed nicely in the terminal by running the blkid command:

root #blkid

虽然对于标签不总是正确的,但使用UUID来标识fstab 中的分区,即使分区文件更改,也可以保证在寻找某个分区时引导加载程序不会被混淆。对于经常重新启动并定期添加和删除SATA设备时,在 fstab 中定义分区,使用旧的默认分区文件 (/dev/sd*N非常危险) 。

块设备文件的命名取决于许多因素(例如磁盘如何以及以什么顺序加载到系统)。 有了这个说明,除非有人打算不断地解决磁盘排序问题,使用默认块设备文件是一个简单和直接的方法。


Let us take a look at how to write down the options for the /boot/ partition. This is just an example, and should be modified according to the partitioning decisions made earlier in the installation. In our amd64 partitioning example, /boot/ is usually the /dev/sda2 partition, with ext2 as filesystem. It needs to be checked during boot, so we would write down:

FILE /etc/fstabAn example /boot line for /etc/fstab
/dev/sda2   /boot     ext2    defaults        0 2

Some users don't want their /boot/ partition to be mounted automatically to improve their system's security. Those people should substitute defaults with noauto. This does mean that those users will need to manually mount this partition every time they want to use it.

增加符合你分区方案的规则,为你的光驱(当然,如果你有其他分区或者驱动器,也为它们加上)添加挂载规则。

下面是/etc/fstab文件的例子:


FILE /etc/fstabA full /etc/fstab example
/dev/sda2   /boot        ext2    defaults,noatime     0 2
/dev/sda3   none         swap    sw                   0 0
/dev/sda4   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

auto选项可以使mount 猜测文件系统(推荐对于可移动设备采用这个选项,因为它们可能采用很多不同的文件系统),而 user选项使得非root用户可以挂载光驱。

为了提高性能,大多数用户想要添加 noatime mount选项,这将拥有更快的系统,因为访问时间没有注册(一般不需要这些)。 这也推荐用于固态硬盘(SSD)用户,他们还应该启用discard 安装选项(现在只支持ext4和btrfs),这使得 TRIM命令有效。

仔细检查/etc/fstab文件,保存并退出以继续。

网络信息

主机名、域名信息

用户必须要做的事情之一就是命名自己的机器。尽管这看上去很容易,但是很多用户觉得为他们的Linux机器起一个合适的名字是很难的。为了加快事情的进度,你应该知道你所命名的所有名字都是可以在今后重新修改的。因此,你可以简单命名你的系统为 tux,域名为 homenetwork

root #nano -w /etc/conf.d/hostname
# 设置主机名变量,选择主机名
hostname="tux"

第二,如果你需要一个域名,在/etc/conf.d/net中设定。只有你的ISP或者网络管理员说你需要一个域名,或者你有一个DNS服务器但是没有DHCP服务器的时候,你才需要域名。如果你的网络是DHCP分配IP,那么你不需要理会DNS和域名的问题。

附注
/etc/conf.d/net文件默认不存在,因此需要创建。
root #nano -w /etc/conf.d/net
# 设定dns_domain的变量值为你的域名
dns_domain_lo="homenetwork"
附注
如果你选择不设定域名,你可以去掉登录界面上的这条信息:“This is hostname.(none)”。你只需要修改/etc/issue ,把字符串.\O从该文件里删掉即可。

如果你有一个NIS域(如果你不知道这是什么,就说明你没有),你也需要定义一个:

root #nano -w /etc/conf.d/net
#设定nis_domain的变量值为你的NIS域名
nis_domain_lo="my-nisdomain"
附注
如果想知道更多关于DNS和NIS配置的信息,可以看/usr/share/doc/netifrc-*/net.example.bz2当中的例子。当然,你也可以安装net-dns/openresolv来帮助设置DNS、NIS.

配置网络

在Gentoo Linux安装时,网络已经配置。然而,这是安装的安装光盘本身的配置,并不是新的系统环境的网络配置。现在你所要设置的是Gentoo系统的永久网络配置。

附注
更多关于网络配置的详细信息,包括网卡绑定、网桥、802.1Q VLANs和无线网络在内的高级配置会在Gentoo网络配置这一部分介绍.

/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 -w /etc/conf.d/net

设置 config_eth0routes_eth0 输入IP地址信息和路由信息:

附注
这假定网络接口将被称为eth0。 然而,这非常依赖于系统。 如果安装介质足够新,则建议在从安装介质引导时将接口重命名。 更多信息可以在网络接口命名中找到。
FILE /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:

FILE /etc/conf.d/netDHCP 配置
config_eth0="dhcp"

请阅读 /usr/share/doc/netifrc-*/net.example.bz2 以得到所有选项的列表。如果你需要设定特殊的DHCP选项,请参考你的DHCP客户端的man man手册页。

如果你有多个网络接口,那么重复之前对于config_eth1config_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的假设是错误的,那么执行以下步骤来纠正这一点:

  1. 用正确的名称更新 /etc/conf.d/net (像enp3s0 取代 eth0).
  2. 创建符号链接 (像 /etc/init.d/net.enp3s0).
  3. 删除旧的符号链接 (rm /etc/init.d/net.eth0).
  4. 创建新的 default runlevel.
  5. 删除旧的rc-update del net.eth0 default.

hosts 文件

现在你需要告诉Linux有关你的网络的信息。这需要在/etc/hosts文件中定义,它将帮助你将那些无法被域名解析器解析的主机名解析成IP地址。

root #nano -w /etc/hosts
FILE /etc/hostsFilling 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

保存并推出编辑,继续

可选:启用PCMCIA

PCMCIA用户首先应该安装sys-apps/pcmciautils软件包。

root #emerge --ask sys-apps/pcmciautils

系统信息

Root 密码

使用passwd命令设置root密码。

root #passwd

root帐户是一个功能强大的帐户,因此请选择一个强密码。 稍后将为日常操作创建其他常规用户帐户。

配置引导和启动

Gentoo(在使用OpenRC时)使用/etc/rc.conf配置系统的服务,启动和关闭。 打开 /etc/rc.conf并查看文件中的所有注释。 设置并根据需要进行更改。

root #nano -w /etc/rc.conf

接下来,打开/etc/conf.d/keymaps 来处理键盘设置。编辑它就可以设置你的键盘。

root #nano -w /etc/conf.d/keymaps

要特别注意keymap这个变量 。如果你选择了错误的KEYMAP,在你敲击键盘的时候会有奇怪的结果。

完成 /etc/conf.d/hwclock 的配置之后,保存并退出。

root #nano -w /etc/conf.d/hwclock

如果你机器上的时钟不用UTC,你需要在配置文件加上clock="local"。否则,你的时钟就有可能出现偏差。




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


系统日志工具

因为有一些工具提供给用户的功能比较类似,它们就没有包含在stage3当中。现在就是你选择安装哪一个的时候了。

你首先需要决定的就是系统日志工具。Unix和Linux在日志记录功能方面有良好的传统——如果你愿意的话你可以把系统发生的所有事件都记录到日志文件中。这些功能就是通过系统日志工具来完成的。

Gentoo提供了多种系统日志工具可供选择。包括:

  • app-admin/sysklogd -提供传统的系统日志记录守护程序。 默认日志配置容易学习,这个包是初学者的好选择。
  • app-admin/syslog-ng -高级系统记录器。 需要额外配置很多东西, 更高级的用户可以根据它的日志潜力选择这个包; 注意额外的配置是任何种类的智能日志记录的必要条件。
  • app-admin/metalog -一个可以灵活配置的系统日志工具。

Portage内或许还有其他的系统日志工具——我们的可用软件包数量是以天为单位在增加的。

Tip
If sysklogd or syslog-ng are going to be used, it is recommended to install and configure logrotate afterwards as those system loggers don't provide any rotation mechanism for the log files.

要安装你所选择的系统日志工具,你可以用emerge命令安装它,并使用 rc-update将它加入default运行级别。以下就是一个安装app-admin/sysklogd的例子:

root #emerge --ask app-admin/sysklogd
root #rc-update add sysklogd default

可选:Cron守护进程

接下来你可以选择cron守护进程。尽管这是可选的并且不是系统所必须的,但是最好能够安装一个。

cron守护程序执行计划中的命令。 如果某些命令需要定期执行(例如每天,每周或每月),这是非常方便的。

Gentoo提供了三个可选的cron守护进程: sys-process/bcron, sys-process/dcron, sys-process/fcron, and sys-process/cronie。安装这其中一个的方法和安装一个系统日志工具的方法类似。下面的例子使用sys-process/cronie

root #emerge --ask sys-process/cronie
root #rc-update add cronie default

如果使用dcron或fcron,需要执行附加的初始化命令:

root #crontab /etc/crontab

可选:文件索引

如果你想索引你的系统文件使得你能够使用locate工具很快定位它们,你需要安装sys-apps/mlocate

root #emerge --ask sys-apps/mlocate

可选:远程访问

要在安装后远程访问系统,请将sshdinit脚本添加到 default 运行级别:

root #rc-update add sshd default

如果需要终端访问(在远程服务器的情况下这是可能的),请在 /etc/inittab中取消注释控制台部分:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

文件系统工具

根据你所使用的文件系统的不同,你需要安装必须的文件系统工具(用于检查文件系统完整性、创建额外的文件系统等)。请注意管理ext2,ext3和ext4文件系统的工具 (sys-fs/e2fsprogs)已经做为系统的一部分被安装了。

以下的表格列出了特定文件系统所需要安装的工具。

Filesystem Package
Ext2, 3, and 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs
Tip
获取更多关于Gentoo上文件系统的信息请看filesystem article

网络工具

如果你不需要任何其它网络相关的工具(例如ppp或dhcp客户端)可以跳过这部分内容继续进入配置引导程序 配置引导程序

安装DHCP客户端

重要
虽然可选,但大多数用户会发现他们需要一个DHCP客户端,用来连接到他们网络上的DHCP服务器。 请借此机会安装DHCP客户端。如果忘记此步骤,则系统可能无法访问网络,从而使之后无法下载DHCP客户端。

为了使系统能够使用netifrc脚本自动获取一个或多个IP地址,需要安装DHCP客户端。 我们建议使用net-misc/dhcpcd,虽然许多其他DHCP客户端可通过Gentoo数据库下载:

root #emerge --ask net-misc/dhcpcd

关于 dhcpcd 的更多信息可以通过dhcpcd article查询。

可选:安装PPPoE客户端

如果你需要ppp来连接网络,你需要安装它 net-dialup/ppp

root #emerge --ask net-dialup/ppp

现在进入配置引导程序部分。 配置引导引导启动程序.




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management



选择一个引导器

完成配置Linux内核、安装系统工具和编辑配置文件,现在是时候去安装Linux安装的最后一个重要的片:引导器。

引导器负责在引导过程中启动内核——如果没有它,系统将不知道按下电源键后将如何进行。

针对amd64,我们编写了如果在基于BIOS的系统上配置GRUB2LILO,以及针对UEFI系统的GRUB2efibootmgr

在本手册的这一部分中,描述了“新出现的”引导加载程序包和installing 引导加载"程序到系统磁盘之间的区别。 这里,术语emerge将用于请求 Portage 使软件包安装于系统。 术语emerge将表示引导加载程序复制文件或物理地修改系统的磁盘驱动器的适当部分,以便在下一次开机时使引导加载程序“激活并准备好操作”。

默认:GRUB2

Previously, Gentoo Linux used what is now called GRUB Legacy as the recommended boot loader. As the name implies, the older GRUB package is no longer actively maintained and has been superseded by GRUB2. For more information about the legacy GRUB, please refer to its GRUB article.

By default, the majority of Gentoo systems now rely upon GRUB2 (found in the sys-boot/grub package), which is the direct successor to GRUB Legacy. With no additional configuration, GRUB2 gladly supports older BIOS ("pc") systems. With a small amount of configuration, necessary before build time, GRUB2 can support more than a half a dozen additional platforms. For more information, consult the Prerequisites section of the GRUB2 article.

安装

当使用只支持MBR分区表的,旧版BIOS系统时,无需进行其他配置即可安装GRUB:

root #emerge --ask --verbose sys-boot/grub:2

A note for UEFI users: running the the above command will output the enabled GRUB_PLATFORMS values before emerging. When using UEFI capable systems, users will need to ensure GRUB_PLATFORMS="efi-64" is enabled (as it is the case by default). If that is not the case for the setup, GRUB_PLATFORMS="efi-64" will need to be added to the /etc/portage/make.conf file before emerging GRUB2 so that the package will be built with EFI functionality:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2
If GRUB2 was somehow emerged without enabling GRUB_PLATFORMS="efi-64", the line (as shown above) can be added to make.conf then and dependencies for the world package set re-calculated by passing the --update --newuse options to emerge:
root #emerge --ask --update --newuse --verbose sys-boot/grub:2

GRUB2现在已经安装到系统中了,但是还没有激活。

配置

接下来,通过grub-install命令安装GRUB2所需的文件到/boot/grub/目录。假设第一块磁盘(引导系统的那块)是/dev/sda,将使用下面的一条命令:

  • 使用BIOS时:
root #grub-install /dev/sda
  • 使用UEFI时:
Important
Make sure the EFI system partition has been mounted before running grub-install. It is possible for grub-install to install the GRUB EFI file (grubx64.efi) into the wrong directory without providing any indication the wrong directory was used.
root #grub-install --target=x86_64-efi --efi-directory=/boot
Note
Modify the --efi-directory option to the root of the EFI System Partition. This is necessary if the /boot partition was not formatted as a FAT variant.

Some motherboard manufacturers seem to only support the /efi/boot/ directory location for the .EFI file in the EFI System Partition (ESP). It does not hurt to copy the grubx64.efi file to this location in order to aid the motherboard firmware in locating the GRUB executable file. Verify the ESP is mounted before running the following commands. Presuming the ESP is mounted at /boot/efi (as suggested earlier), execute:

root #mkdir -p /boot/efi/efi/boot
root #cp /boot/efi/efi/gentoo/grubx64.efi /boot/efi/efi/boot/bootx64.efi

This creates the default directory defined by the UEFI specification, and then copies the grubx64.efi to the 'default' EFI file location defined by the same specification.

再一次配置

接下来,基于用户在/etc/default/grub文件和/etc/grub.d中特别配置的脚本文件来生成GRUB2。在大多数场景中,不需要由用户来配置,GRUB2就可以自动检测出哪个内核用于引导(位于/boot/中最高的那一个)以及根文件系统是什么。也可以使用GRUB_CMDLINE_LINUX>变量在/etc/default/grub中附加内核参数。

要生成最终的GRUB2配置,运行grub-mkconfig命令:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.5-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-3.16.5-gentoo
done

需要注意至少找到一个Linux镜像在命令的输出中,它们是用来引导系统的。如何使用一个initramfs或用genkernel建立内核,同样会检测到正确的initrd 镜像。如果不是这样,进入到/boot/并使用ls命令检查内容。如果文件确实不存在,回到内核配置和安装的介绍。

Tip
os-prober实用程序可与GRUB2配合使用,以检测所连接驱动器上的其他操作系统。可检测到Windows 7, 8.1, 10,和其他Linux发行版。 那些希望双引导系统的应该出现sys-boot/os-prober包,然后重新运行 grub-mkconfig命令(如上所示)。 如果遇到问题,请务必先阅读GRUB2 文章,然后再向Gentoo社区请求支持。

备选:LILO

安装

LILO (the LInuxLOader,) 是Linux引导程序的久经考验的主力。但是它缺少GRUB所拥有的一些特性。LILO仍旧在一些系统上被使用的原因是GRUB无法使用但LILO却可以。当然还因为一些人是先认识了LILO而且对它忠心不二。不管怎样,Gentoo可以支持它们两个启动器。

安装LILO是一件轻而易举的事,使用emerge就可以了。

root #emerge --ask sys-boot/lilo

配置

要配置LILO,首先要创建 /etc/lilo.conf:

root #nano -w /etc/lilo.conf

在配置文件中,小节(sections)被用于指向可引导的内核。请确保内核文件(与内核版本号一起)和initramfs文件都可以被知晓,因为它们都需要被这个配置文件所引用。

Note
如果根文件系统是JFS,请在每一个引导条目之后增加 append="ro"因为JFS在它被挂载为可读写之前需要重放它的日志。
FILE /etc/lilo.confLILO 配置样本
boot=/dev/sda             # Install LILO in the MBR
prompt                    # Give the user the chance to select another section
timeout=50                # Wait 5 (five) seconds before booting the default section
default=gentoo            # When the timeout has passed, boot the "gentoo" section
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo            # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda4          # Location of the root filesystem
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo.rescue     # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda4         # Location of the root filesystem
  append="init=/bin/bb"   # Launch the Gentoo static rescue shell
  
# The next two lines are for dual booting with a Windows system.
# In this example, Windows is hosted on /dev/sda6.
other=/dev/sda6
  label=windows
附注
如果您使用不同的分区方案或内核文件,请根据需要进行调整。

如果initramfs是必须的,那么就更改配置文件以便引用这个initramfs文件,并且告诉initramfs根设备的所在位置。

FILE /etc/lilo.conf添加initramfs信息到引导条目
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  append="root=/dev/sda4"
  initrd=/boot/initramfs-genkernel-amd64-3.16.5-gentoo

如果额外的选项需要被传递到内核,使用append语句。例如增加 video 语句来使能framebuffer:

FILE /etc/lilo.conf添加视频参数到引导选项
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  root=/dev/sda4
  append="video=uvesafb:mtrr,ywrap,1024x768-32@85"

使用 genkernel的用户应该了解他们的内核使用与安装CD相同的引导选项。例如,如果对SCSI设备的支持需要被使能,就增加 doscsi到内核选项中。

现在保存这个文件并退出。

安装

为了彻底完成,运行 /sbin/lilo,这样LILO就会把/etc/lilo.conf 中的设置应用到系统中(也就是说安装它自己到磁盘上)。要记住每一次一个新内核被安装或者lilo.conf 文件被改变后,/sbin/lilo都需要执行一次,以确保在内核文件名发生改变后系统仍然能够被引导起来。

root #/sbin/lilo

备选2:efibootmgr

在基于UEFI的系统上,系统上的UEFI固件(换句话说,主引导加载程序)可以直接操作以查找UEFI引导条目。 这样的系统不需要具有额外的(也称为辅助)引导加载器,如GRUB2,以帮助引导系统。 据说,基于EFI的引导加载程序(如GRUB2)存在的原因是在引导过程中“扩展”UEFI系统的功能。 使用efibootmgr是真正的那些想要采取一个极简主义(虽然更僵硬的)方法来启动他们的系统; 使用GRUB2(见上文)对于大多数用户更容易,因为它在引导UEFI系统时提供了灵活的方法。

记住sys-boot/efibootmgr应用程序不是一个引导器,它是一个和UEFI固件相互作用并更新它的设置,因为之前安装的Linux内核可以通过额外的选项(如果需要)来引导,或允许多重引导条目。可以通过EFI变量(需要支持EFI变量的内核)来完成这个相互作用。

一定要阅读通过 EFI stub kernel文章“'再继续。 内核必须具有能够被系统的UEFI固件直接引导的特定选项。 可能需要重新编译内核。 看看efibootmgr 文章,这也是一个好主意。

附注
要重申,efibootmgr 不是引导UEFI系统的要求。Linux内核本身就可以启动即引导,其他内核命令行选项可以内置到Linux内核(有一个内核配置选项)允许用户指定启动参数作为命令行选项,甚至initramfs 可以“内置”到内核。

那些决定采取这种方法的人必须安装软件:

root #emerge --ask sys-boot/efibootmgr

Then, create the /boot/efi/boot/ location, and then copy the kernel into this location, calling it bootx64.efi:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi

接下来,告诉UEFI固件创建一个叫作“Gentoo”的引导条目,它拥有全新编译的EFI stub内核:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"

如果使用一个内存文件系统(initramfs),为它添加相应的引导选项:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-amd64-3.16.5-gentoo'
附注
UEFI定义强制要求使用\作为目录分割符。

完成这些变更后,当系统重新启动时,会有一个叫作“Gentoo”的引导条目。

Alternative 3: Syslinux

Syslinux is yet another bootloader alternative for the amd64 architecture. It supports MBR and, as of version 6.00, it supports EFI boot. PXE (network) boot and lesser-known options are also supported. Although Syslinux is a popular bootloader for many it is unsupported by the Handbook. Readers can find information on emerging and then installing this bootloader in the Syslinux article.


重启系统

退出chroot环境并unmount全部已持载分区。然后敲入一条有魔力的命令来初始化最终的、真实的测试:reboot

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

当然,别忘了移除可引导CD,否则可能再次从CD启动,而不是新的Gentoo系统。

当重启进全新安装的Gentoo环境,继续完成结束Gentoo安装




Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


用户管理

添加一个日常使用的用户

在Unix/Linux系统中,用root进行工作是一件危险的事情,应该尽量避免。因此我们强烈推荐您为日常使用添加一个普通用户。

用户所属的组定义了其可以执行的活动。下表中列出了许多您可能希望使用的重要组:

Group Description
audio 允许使用声音设备
cdrom 允许直接使用光驱设备
floppy 允许直接使用软驱
games 允许运行游戏
portage 能够访问portage受限资源。
usb 允许使用USB设备
video 允许使用视频采集设备和硬件加速
wheel 可以使用su.

比如,创建一个叫作larrywheelusersaudio组的成员用户,首先作为root登录(只有root能创建用户)并运行useradd

Login:root
Password: (输入root 密码)
root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (输入larry的密码)
Re-enter password: (重复输入密码)

如果一个用户仍需要以root身份做一些任务,他们可以使用su -来临时得到root权限。另一种方式是使用sudo包,如果配置正确的话,非常安全。

磁盘清理

删除tar包

当Gentoo安装完毕并且系统已经重启过,如果所有事情都完成好了,我们现在要从硬盘上删除下载的stage3的tar包。记住它们下载在/目录。

root #rm /stage3-*.tar.bz2*

下一步该做什么?

文档

但接下来往何处去?现在您拥有什么样的选择?先探索些什么?Gentoo为它的用户提供了大量的可能性,因此也有大量已经提供文档(少量没有)的特性。

一定要看一下Gentoo手册的下一章节使用Gentoo,讲述了如何保障软件是最新的、如何安装更多软件、什么是USE标记、Gentoo的init系统如何工作等等。

除了这本手册,也鼓励你去探索Gentoo维基的其他角落来寻找更多的、社区提供的文档。Gentoo文档组同时提供一个文档概述,其中列出了精心挑选的维基文档。比如,它指向的本地化指南能使系统更有家的感觉。

线上Gentoo

当然欢迎每个人来我们的Gentoo论坛或我们众多的Gentoo的IRC通道.

我们同时有开放给我们全部用户的一些邮件列表。页面中包含了如何加入的信息。

享受您的安装! :)




Warning: Display title "Gentoo Linux 手册:安装Gentoo" overrides earlier display title "手册:AMD64/完整/安装".