Beginners' guide (简体中文)

From ArchWiki
Revision as of 03:59, 15 October 2011 by Cuihao (talk | contribs)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Tip: 本文是多页文档 新手指南 的一部分,如果想阅读单页文档,请点击这里

安装基本系统

注意: 如果你使用的联网方式是通过HTTP和/或者FTP代理的方式并且想使用DHCP来配置你的网络,你需要在shell中执行Template:Codeline之前设定环境变量Template:Codeline 和/或者 Template:Codeline:
export http_proxy=http://<http_proxy_address>:<proxy_port>
export ftp_proxy=ftp://<ftp_proxy_address>:<proxy_port>

在 tty1 下以 root 身份执行安装脚本 Template:Cli

然后你就会看到 ArchLinux 安装框架的屏幕。

选择安装源

出现欢迎界面之后,会提示选择安装来源。请选择一个合适的源(这里可以看到相关源的速度信息 源状态)。如果使用 Netinstall 镜像,相当速度和更新状态可以在 这里 查询。

  • 如果选择 CORE installer,并且选择使用 CD 上的软件包,请选择来 CD-ROM 作为源。
  • 如果使用 Netinstall 安装,选择 NET 并查看下面的 (配置网络)。

配置网络 (Netinstall)

如果需要,安装程序会提示手动加载网卡驱动。Udev 可以非常有效的载入需要的模块,所以网卡模块应该已被载入。在下一个屏幕,选择 设置。要验证这个过程,可以按下 <Alt>+F3 并执行 ip addr。完成后,按 <Alt>+F1 返回 tty1 。

如果正确列出接口和 HWaddr (HardWare address),那么所需的模块就是已经被加载好了。如果没有列出接口,那么请通过安装程序侦测,或者从另一个虚拟控制台手动进行,选择接口并继续。

接下在的屏幕会提示你 Select the interface, Probe,Cancel 。选择适当的界面然后继续。

随后安装程序会询问是否使用 DHCP 。选择 Yes 后将执行 dhcpcd 查找可用的网关和 IP 地址。选择 No 会提示设置 static IP, netmask, broadcast, gateway DNS IP, HTTP proxy 和 FTP proxy。最后,将返回 网络安装菜单 选定 选择镜像 并选择一个 FTP/HTTP 镜像,完成后,返回到主菜单。

Tip: 为了实现最佳的下载速度,你最好选择你国家内的源,以及那些你可以信任的源(eg. universities大学)
注意: archlinux.org 官方源是限速的50KB/s
Live 环境下 (A)DSL 快速设置

(用猫或者桥接模式的路由器连接 ISP)

切换到另一个虚拟终端 (<Alt> + F2), 以 root 登录,然后调用 Template:Cli 如果配置正确,用以下命令就可以连接到 ISP: Template:Cli

<ALT>+F1 回到第一个虚拟终端, 跳到 设置时钟

Live 环境下无线快速设置

(如果安装时需要无线连接)

现在在安装媒体中已经包含了无线网络驱动和工具。对无线网络硬件有一定的了解是完成无线网络设置的重要前提。注意下面的快速设置过程在安装时执行,下初始化 live环境的无线网络硬件。安装好系统以后,需要再次执行一遍的无线网络设置。

并且注意如果安装过程中并不需要无线网络,不需执行下面的步骤。可以在系统安装好之后再设置无线网络功能。

Note: 下面的示例中使用 wlan0 作为接口,'linksys' 作为 ESSID。请根据实际情况修改。

基本过程为:

  • 切换到虚拟控制台: <ALT>+F3
  • root 登录
  • (可选) 确定网络接口:

Template:Cli

  • /usr/sbin/iwconfig 确定 udev 已经载入驱动,而且驱动程序创建了可用的无线内核接口:

Template:Command 本例中 wlan0 为可用接口。

Note: 输出和上面不相似表示驱动没有载入,需要自己加入,详情请查看 无线设置
  • /sbin/ifconfig <interface> up 启用接口:

Template:Cli

除了驱动,一小部分无线网卡还需要固件。启用网络时,缺少固件的接口会显示:

Template:Command

若不确定,可以用 Template:Filename 查询内核日志,看看有没有来自无线网卡的固件请求 Intel 芯片组在启动时请求固件的例子:

Template:Command

如果没有输出,表示不需要固件。

Note: 网卡需要的无线接口固件包在 live 环境中预先安装到了 /lib/firmware 但是必须特别安装到实际的系统才能在重启后提供无线功能! 向导的后面会介绍软件包的选择和安装。请确保在软件包选择的时候选中需要的无线模块和固件! 如有任何疑问,请查看 无线设置,这是常见错误。
  • 如果 ESSID 忘记了或未知,使用 Template:Filename 可以搜索附近的网络

Template:Command

  • 如果使用 WPA 加密:

使用 WPA 加密需要将密钥加密与 ESSID 一起保存在文件中,以供 wpa_supplicant 使用。因此需要几个额外的步骤:

作为简化和备份,重命名默认的Template:Filename文件: Template:Cli

使用Template:Codeline,给出无线网络名称和 WPA 密钥并写入 /etc/wpa_supplicant.conf

如下命令为密码 'my_secret_passkey' 的无线网络 'linksys' 生成配置文件 (Template:Filename)通过重定向输入文件: Template:Cli

更多信息和问题处理请查看 WPA Supplicant

Note: Template:Filename是用纯文本格式保存,在安装环境中没有问题,但是重启到新系统后,记得改变 Template:Filename 的权限(比如:使用Template:Codeline 使得仅 root 可读).


  • 关联无线设备和访问点,加密方式(无, WEP 或者 WPA)不同,执行内容也有区别,先确定网络名(ESSID),然后:
加密方式 命令
无加密 iwconfig wlan0 essid "linksys"
WEP w/ Hex Key iwconfig wlan0 essid "linksys" key "0241baf34c"
WEP w/ ASCII passphrase iwconfig wlan0 essid "linksys" key "s:pass1"
WPA wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
Note: 可以通过 Arch 默认的网络守护进程、netcfgwicd 或其它网络管理器自动连接网络。
  • 使用上面的方法后,等待一段时间,确认已经成功连接到访问点再继续:

Template:Cli 输出应该显示网络接口已经连接访问点。

Template:Cli

  • 最后,用 /bin/ping 确认连接正常:

Template:Command

到此,无线网络应该已经可用,如遇问题,请查看无线设置

<ALT>+F1 回到 tty1, 继续 设置时钟

设置编辑器

你可以选择nanovi作为默认编辑器。如果你不清楚选择哪一个,那最好选择前者吧。

设置时钟

设置硬件时钟,如果设置得与其它操作系统不同,将覆盖时间并导致时钟偏移(时间调整出错)。

Note: 使用硬件UTC时间并不一定和软件显示的UTC时间一致.
  • localtime (不推荐) - 微软 Windows 系统默认使用,但还是可以设置为 UTC,如果设置为本地时间, linux 不会进行夏令时调整。
Warning: 使用 localtime 将导致很多已知的不可修复的BUG.尽管,没有计划放弃对localtime的支持.
Note: 选择其它值将不会更改时钟(虚拟机的时候比较有用)。

双重启动

如果你是win和linux双重启动的系统,有2个方法可以使用:

  • 让Arch Linux使用localtime:之后(在配置系统部分)在Template:Filename文件中,从Template:Filename去掉Template:Codeline(使用Windows配置时间)。不推荐。
  • 让Arch Linux使用UTC:并且也让Windows使用UTC(参见:该文的介绍)。并且,确定windows不要和网络时间同步,不然Windows会重新使localtime。 如果你想使用时间同步(NTP),可以在你的Arch Linux上安装openntpd。推荐。

准备硬盘

Warning: 磁盘分区会毁掉原分区内的数据。强烈建议先备份重要的数据
Note: 磁盘分区也可以在执行 Arch 安装程序之前通过 GParted 或者其他工具进行。如果磁盘上已经按要求做好了分区,那么跳到 设置文件系统挂载点继续安装。

Template:FilenameTemplate:Codeline (小写 L) 参数检查当前磁盘的分区参数和布局

切换到另一个虚拟控制台 (<ALT>+F3),然后: Template:Cli 记下将要安装上 Arch 的磁盘/分区。

按 <ALT>+F1 切换回安装脚本。

选择第一个菜单项 "Prepare Hard Drive".

  • 选项 1: Auto-Prepare (删除整个磁盘分区表然后再自动设置分区)

自动准备将磁盘设置成如下结构:

  • ext2 /boot 分区,默认大小 32MB. 会提示设置此分区的大小
  • swap partition 分区,默认大小 256MB. 会提示设置此分区的大小
  • 一个独立的 / 和 /home 分区,(同样能指定大小)。可选的文件系统包括 ext2, ext3, ext4, reiserfs, xfs and jfs,但是要注意的是,如果选择自动配置, / 和 /home 将使用同样类型的文件系统

需要特别小心的是,Auto-Prepare 将完全地删除所选磁盘上的数据。请非常仔细地阅读安装程序给出的 warning ,确认分区的磁盘名是正确的。

  • 选项 2: 手动准备分区(使用 cfdisk)- 推荐。

这个选项可以根据个人需要定制健壮的分区结构。

  • 选项 3: 手动配置块设备、文件系统和挂载点

如果选择这个,安装程序将列出已有的文件系统和挂载点,然后询问是否使用它们。如果选择 "Yes",安装程序会提示选择识别方式,即 dev, label 还是 uuid。

  • 选项 4: 回滚最后的文件系统设置

至此,熟悉分区,能够进行手动分区的 GNU/Linux 高级用户可以直接跳到 选择软件包 继续。

Note: 如果是将 Arch 安装到闪存上,可参阅 "安装 Arch Linux 到 U 盘".

磁盘分区

分区类型

磁盘分区是指在磁盘上定义若干区域(分区),每个都象是一个独立的磁盘,可以在其上创建一个文件系统(格式化)。

分区的类型有三种:

  • 主分区
  • 扩展分区
    • 逻辑分区

主分区 可以被启动,一个物理磁盘或raid 卷最多能有4个主分区。如果需要三个以上分区,需要使用包含逻辑分区扩展分区

扩展分区不能直接使用,它是逻辑分区的"容器&quot。一个硬盘只能有一个扩展分区,可以在里面继续再划分逻辑分区。

进行磁盘分区时,可以观察到命名规则为:主分区为 sda1-3,跟着是扩展分区sda4(在/dev和fdisk -l里是看不到的),在扩展分区中划分出来的逻辑分区分别是sda5、sda6,如此类推。

交换分区

交换分区(Swap)是在硬盘上划出的一段虚拟内存区域,当物理内存已经放不下数据时,用来临时应急充当内存。

以前,一般规则是交换分区为物理内存的两倍,在内存越来越大的今天,这个规则已经逐步过时。如果你的内存较小,只有512M,那么作为日常应用,需要 2 倍就足够了。如果系统有大量内存(超过 1024M),则可以完全不用交换分区,因为可以在以后使用 交换文件 替代。本例中使用 1G 交换分区。

Note: 如果使用休眠到磁盘,必须要等于物理内存的交换分区。一些 Arch 用户推荐超过物理内存容量的10%-15%都是可以的。
分区结构

如何对磁盘进行分区全靠个人喜好。每位用户都会根据计算机的情况和需求选择不同结构。如果想双启动 Arch 和微软视窗系统,请查看 这里

不同分区的可选文件系统:

/ (root) 根文件系统是目录等级的最顶部,所有其它文件系统都通过它访问,即使位于不同的物理设备,所有目录和文件也都显示在 "/"下面。根文件系统必须能够启动、恢复、还原或者修复系统。所以 / 下面的一些目录不应该位于不同分区。(参见下面的警告)

/boot 此目录包含内核、ramdisk 镜像和启动加载程序的配置文件和不同阶段使用的文件。/boot 还可以保存内核开始执行用户空间程序前使用的数据,包括保存的主启动扇区和扇区映射文件。/boot 是启动必须的,但是特别的地方是它可以位于单独分区。

/home 为每个系统用户提供子目录,保存个人的数据和应用程序配置文件.

/usr 根目录是最开始的文件系统,而 /usr 则是所有系统用户数据的第二层,包含主要的多用户工具和应用程序。/usr 可共享的只读数据,这意味着 /usr 应该能在不同主机间共享,并且除系统升级之外都应该保持只读。主机特有或不断变化的数据应该放在其它地方。

警告: 单独的 /usr 分区将导致 udev 在一些情况下运行错误,还会导致 systemd 无法正常运行 source

/tmp 为需要 '.lck' 等临时文件的程序准备,这些文件可以阻止程序运行多个实例。程序结束后会删除 '.lck' 文件。程序员不能假定 /tmp 在程序运行过程中不会更改,而且 /tmp 下的目录和文件会在启动时删除。

/var 可变数据、管理和登录数据、pacman 缓存、 ABS 目录树等。使用 /var 就是为了让 /usr 只读。所有原来放在 /usr 下、正常运行时(系统升级和更新除外)的可变文件都应该放在 /var。

警告: 除了 /boot 外,如下目录也是启动必须的: '/bin', '/etc', '/lib' 和 '/sbin'。 这些目录必须位于 / 分区

用分散的文件系统而不是放在一个大分区里面有如下优点:

  • 安全:每个文件系统动能在 Template:Filename 单独配置为 'nosuid', 'nodev', 'noexec', 'readonly' 等。
  • 稳定:只要有写权限,一个用户或恶意程序可能在文件系统里写满垃圾。位于其它文件系统上的重要程序将免受影响。
  • 速度:经常写入的文件系统会有碎片(避免碎片的方式是不将文件系统写满),单独的文件系统不受其它分区的影响而且可以单独进行碎片整理。
  • 完整:一个文件系统崩溃了,其它文件系统不受影响。
  • 通用:使用独立文件系统更有利于在多个系统间共享文件。每个文件系统都能够根据数据和使用状况单独选择合适的格式。本例中,将分为 /, /var, /home 和 swap.
注意: Template:Filename 包含许多小文件,单独分区时应该考虑这点。
我的分区应该设多大?

这个问题最好根据个人需要回答。 可能你只需创建 root + swap 或者仅 root 没 swap 或者参考本例和这些原则:

  • 本例中根文件系统(/)将包含 /usr 目录,这样如果安装文件很多,会变得很大。15-20 GB 应该能够满足大部分人的要求。
  • /var 文件系统除包含其它数据,还有 ABS 树和 pacman 缓存。缓存软件包快捷方便;可以按照要求降级软件包。/var 的大小会逐步增长;pacman 缓存在运行中逐步增大,但是可以很方便的清空。如果使用 SSD 应该将 /var 放到 HDD 将 / 和 /home 分区放到 SSD 以减少 SSD 的读写。 8-12 G 对桌面系统来说应该足够了,服务器需要更大的 /var 文件系统。
  • /home 文件系统一般存放用户数据、下载和多媒体文件。在桌面中,/home 一般是远超过其它的最大的文件系统。记住如果重装 Arch, /home 中的数据不会改变(只要 /home 是独立分区)。
  • 预留 25% 空间可以应对以后的变化和扩展,还可以避免碎片。

根据以上原则,示例中采用 ~15GB root (/),~10GB /var, 1GB swap,其余都给 /home。

用 cfdisk 创建分区

先创建一个包含root(/)文件系统的主分区。

选择New -> Primary 并输入根分区的大小,将分区放到磁盘开始。

选择Type ,设置为 '83 Linux',本例中新建的/ 分区显示为。

为 /var 创建主分区,设置为 Type 为 83 Linux。/var 将显示为 sda2。

接着创建 swap,选择合适的大小并指定Type 为 82 (Linux swap / Solaris)。交换分区将显示为 sda3。

最后创建 /home 目录,选择新主分区并设置需要的大小,Type 为 83 Linux,创建的 /home 显示为 sda4。

示例:

名称    标志        类型         文件系统类型           [Label]      大小(MB)
-------------------------------------------------------------------------
sda1               Primary     Linux                             15440 #root
sda2               Primary     Linux                             10256 #/var
sda3               Primary     Linux swap / Solaris              1024  #swap
sda4               Primary     Linux                             140480 #/home

选择Write并输入'yes'。记住操作会破坏磁盘上的数据。选择Quit退出分区程序。 选择Done离开此菜单,继续"Set Filesystem Mountpoints"。

注意: 因为最新的 Linux 内核加入了 libata 和 PATA 模块,所有的 IDE, SATA 和 SCSI 磁盘都会使用 sdx 命名,这很正常,不必担心。

设置文件系统挂载点

为每个分区设置文件系统挂载点。(请记得分区以数字结束,所以 sda 不是分区,而是整个磁盘。 Specify each partition and corresponding mountpoint to your requirements. (Recall that partitions end in a number. Therefore, sda is not itself a partition, but rather, signifies an entire drive)

文件系统类型
翻译状态: 本文是英文页面 File_Systems翻译,最后翻译时间:2019-04-19,点击这里可以查看翻译后英文页面的改动。

根据 Wikipedia:

文件系统控制数据的读和写。如果没有文件系统,储存介质里的信息就会变成一块无法理解的数据。通过把数据分块、命名,不同的信息就可以被隔离、分辨。每组数据被命名为“文件”是取自纸质信息系统的命名方式。而“文件系统”是指用于管理信息的分组和命名的结构和逻辑规则。

文件系统有很多,每个磁盘分区可以而且只可以使用其中的某一个。每种文件系统有自己的优缺点和独有特性。以下内容是目前所支持的文件系统类型的概述,相应的维基链接提供更加详细的信息。

文件系统类型

filesystems(5) 包含一个简单介绍,详细比较参考 Wikipedia:Comparison of file systems。 内核支持的文件系统可以通过 /proc/filesystems 查看。

文件系统 创建命令 工具 Archiso [1] 内核文档 [2] 说明
Btrfs mkfs.btrfs(8) btrfs-progs Yes btrfs.txt 可靠性
VFAT mkfs.fat(8) dosfstools Yes vfat.txt
exFAT mkexfatfs(8) exfat-utils Yes N/A (FUSE-based)
F2FS mkfs.f2fs(8) f2fs-tools Yes f2fs.txt 基于闪存的设备
ext3 mke2fs(8) e2fsprogs Yes (base) ext3.txt
ext4 mke2fs(8) e2fsprogs Yes (base) ext4.txt
HFS mkfs.hfsplus(8) hfsprogsAUR No hfs.txt macOS (8.x-10.12.x) 文件系统
JFS mkfs.jfs(8) jfsutils Yes (base) jfs.txt
NILFS2 mkfs.nilfs2(8) nilfs-utils Yes nilfs2.txt
NTFS mkfs.ntfs(8) ntfs-3g Yes N/A (FUSE-based) Windows 文件系统
Reiser4 mkfs.reiser4(8) reiser4progsAUR No
ReiserFS mkfs.reiserfs(8) reiserfsprogs Yes (base)
UDF mkfs.udf(8) udftools Optional udf.txt
XFS mkfs.xfs(8) xfsprogs Yes (base)

xfs.txt
xfs-delayed-logging-design.txt
xfs-self-describing-metadata.txt

ZFS zfs-linuxAUR No N/A (OpenZFS 移植)
Note: 内核中有 NTFS 驱动(参考ntfs.txt),但是文件写入支持很有限。

文件系统日志

以上除了 ext2 、FAT16/32(即VFAT)、Reiser4(可选开启)、Btrfs 和 ZFS 以外的文件系统都使用文件系统日志。文件系统日志通过在数据更改写入储存设备前把变更写入日志来提供故障恢复能力。当出现系统崩溃或电源故障的时候,这些文件系统能够更快的恢复到可用状态,并且在恢复过程中更不容易出现错误。日志活动在文件系统中专用的一部分空间里进行。

并非所有的日志技术都相同。ext3 和 ext4 提供 data-mode journaling,同时记录数据本身和元数据(也有可以只记录元数据变化)。这个模式对性能影响很大,默认是禁用的。

与此类似,Reiser4 的名为 "transaction models" 的模式不仅改变了它所提供的功能,也改变了它的日志模式。这种日志记录模式使用了特别的日志技术,wandering logs,来确定使用哪种写入策略:写入储存器两次; write-anywhere,纯粹的 copy-on-write(和 btrfs 的类似,不过用的是另一种树设计);hybrid,在前两种之间智能切换。

注意: Reiser4 通过 node41 插件提供类似 ext4 的只记录元数据的日志模式,同时这个插件还实现了元数据和内联校验和,并且可根据其挂载的时候所选择的 transaction model 来确定它所提供的 wandering logs 行为。

其它文件系统提供仅提供记录元数据日志的 ordered-mode journaling。尽管都能在崩溃后将文件系统恢复到正常状态,data-mode journaling 提供了最大程度的数据安全防护,但代价是性能有所降低,因为数据会被写两次(第一次到日志,第二次到磁盘)——而 Reiser4 通过 “wandering logs" 避免了这样的重复。可以根据数据的重要性选择文件系统。

Reiser4 是仅有的被设计成所有的操作都是完全 atomic 的同时还提供元数据和内联数据的校验和的文件系统——文件操作要么完全完成,要么就根本没有发生,所以不会因为操作执行到一半而导致数据损坏。因此它发生数据丢失的可能性相比其他文件系统要低得多。

基于 copy-on-write (也叫 write-anywhere)的文件系统,比如Reiser4、Btrfs 和 ZFS 不需要用传统的日志保护元数据,因为元数据永远不会被原地更新。虽然 Btrfs 还在使用日志树,但这个树仅仅是为了加快 fdatasync/fsync 的速度。

基于 FUSE 的文件系统

参考 FUSE

堆栈式文件系统

  • aufs — Advanced Multi-layered Unification Filesystem, 基于 FUSE 的联合文件系统(union filesystem), 完全重构版本的 Unionfs, 但是被 Linux mainline 拒绝merge(而OverlayFS 进入了 Linux Kernel)
http://aufs.sourceforge.net || aufsAUR
  • eCryptfs — The Enterprise Cryptographic Filesystem,一个 Linux 磁盘加密软件。它被设计为与POSIX兼容的文件系统级加密层,目标是在操作系统级别提供类似 GnuPG 的功能。
http://ecryptfs.org || ecryptfs-utils
  • mergerfs — 基于 FUSE 的联合文件系统。
https://github.com/trapexit/mergerfs || mergerfsAUR
  • mhddfs — 多机械硬盘 FUSE 文件系统, 基于 FUSE 的联合文件系统。
http://mhddfs.uvw.ru || mhddfsAUR
  • overlayfs — OverlayFS 是为 Linux 设计的联合文件系统服务,实现了联合挂载其他文件系统的功能。
https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt || linux
  • Unionfs:为 Linux、FreeBSD and NetBSD 设计的文件系统服务, 实现了联合挂载其他文件系统的功能。[3]
  • unionfs-fuse — Unionfs 的用户空间实现.
https://github.com/rpodgorny/unionfs-fuse || unionfs-fuse

只读文件系统

  • SquashFS — SquashFS 是一个压缩的只读文件系统,它压缩文件、inodes和目录,而且最高支持 1 MB 大小的 block 来实现更强力的压缩。
http://squashfs.sourceforge.net/ || squashfs-tools

集群文件系统

  • Ceph — 统一的分布式存储系统,旨在实现出色的性能,可靠性和可扩展性。
https://ceph.com/ || ceph
  • Glusterfs — 支持扩展到几PB的集群文件系统。
https://www.gluster.org/ || glusterfs
  • IPFS — 一种点对点超媒体协议,使网络更快,更安全,更开放。 IPFS旨在取代HTTP并为我们所有人构建更好的网络。 它使用 block 来存储文件的一部分,每个网络节点仅存储它感兴趣的内容,提供去重的、分布式的可扩展文件系统。 (alpha阶段)
https://ipfs.io/ || go-ipfs
  • MooseFS — MooseFS 是一个容错、高可用性和高性能的向外扩展的扩展网络分布式文件系统。
https://moosefs.com || moosefs
  • OpenAFS — AFS分布式文件系统的开源实现
http://www.openafs.org || openafsAUR
  • OrangeFS:OrangeFS 是一个向外扩展的网络文件系统,为透明、并行地访问基于多个服务器的磁盘储存而设计。它为并行分布式应用提供了优化的 MPI-IO。它使 Linux 客户端、Windows、Hadoop 和 WebDAV 使用并列储存器变得简便。它与POSIX兼容,而且是 Linux kernel (4.6+)的一部分。[4]
  • Sheepdog:用于卷和容器服务的分布式对象存储系统,能智能地管理磁盘和节点。[5]
  • Tahoe-LAFS — Tahoe Least-Authority Filesystem 是一个免费、开放、安全、去中心化、容错、点对点的分布式 data store 和分布式文件系统。
https://tahoe-lafs.org/ || tahoe-lafsAUR

查看现有文件系统

lsblk 查看:

$ lsblk -f
NAME   FSTYPE LABEL     UUID                                 MOUNTPOINT
sdb                                                          
└─sdb1 vfat   Transcend 4A3C-A9E9

如果文件系统存在,那 FSTYPE 列会显示它的名字;如果它被mount了,挂载点会显示在 MOUNTPOINT 那一列。

创建文件系统

文件系统可以创建在一个分区上、逻辑容器如 LVMRAID,或者 dm-crypt 上或普通文件上(参考 Loop设备)。这里描述创建在分区上的情况。

注意: 文件系统可以直接写入到设备上,这样的设备叫做 superfloppy 或者 无分区磁盘。这样做会带来一些约束,特别是用它来 启动 系统。
警告:
  • 创建新文件系统之后,之前存放在该分区的数据会丢失且通常无法找回。请备份所有要保留的数据.
  • 某个分区用来干什么通常会限制能用什么文件系统,比如 EFI分区 就只能用 mkfs.vfat 创建的 FAT32,而包含 /boot 的分区的文件系统要考虑 boot loader 是否支持。

创建文件系统之前,目标分区必须处于未挂载状态。如果你要格式化的分区包含了一个已挂载的文件系统,在 lsblk 命令的 MOUNTPOINT 列中可以看到它。

$ lsblk -f
NAME   FSTYPE   LABEL       UUID                                 MOUNTPOINT
sda
├─sda1                      C4DA-2C4D                            
├─sda2 ext4                 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt
└─sda3                      56adc99b-a61e-46af-aab7-a6d07e504652 

你可以使用 umount 加上分区的挂载点来卸载这个文件系统:

# umount /mountpoint

查看挂载了的所有文件系统,参考#列出挂载的文件系统

mkfs(8) 创建新的文件系统,类型参见#文件系统类型。如果安装了其他特殊的工具,按照它们的说明来做。比如,以下命令在 /dev/sda1 上创建了一个 ext4 文件系统:

# mkfs.ext4 /dev/sda1

此外,你可以使用 mkfs。这是 mkfs.fstype 工具的统一入口。上面的命令等价于:

# mkfs -t ext4 /dev/sda1
Tip:
  • mkfs.ext4 的时候可以用 -L 选项来给文件系统设置一个 标签e2label 用来对已经存在的文件系统改标签。
  • 文件系统在创建之后是有条件地 改变大小(resized)的。比如 XFS 可以扩容,但是不能缩小。参考 Resize capabilities

创建完成之后新的文件系统就可以挂载到某个目录了。

挂载文件系统

如果要手动挂载一个设备上的文件系统到某个目录,用 mount(8)。下面这个例子把 /dev/sda1 挂载到 /mnt

# mount /dev/sda1 /mnt

挂载之后,在 /mnt 下面就能看见 /dev/sda1 里面的内容。挂载之前 /mnt 文件夹里的内容在挂载之后将会变得不可见,直到 unmount 掉 /dev/sda1

fstab 描述了如果某个设备存在的话系统应该怎么自动挂载它。如果要修改 /etc/fstab,请阅读 fstab

如果 /etc/fstab 里描述了一个设备的挂载参数,而用 mount 时只给了设备名字或者挂载点,fstab 里的参数就会自动补上。比如,/etc/fstab 里指示 /dev/sda1 应该挂载到 /mnt,那下面的命令就会把 /dev/sda1 挂载到 /mnt,即使你没有显式指明:

# mount /dev/sda1

或者

# mount /mnt

mount 接受很多参数,这些参数依赖于文件系统是否支持。要改变这些参数的话,可以通过以下形式:

列出挂载的文件系统

findmnt(8) :

$ findmnt

findmnt 支持很多参数,可以利用它们来筛选输出或者获得更多信息。比如把某个挂载点或者设备作为参数,它就会只输出这个下面挂载了什么。

$ findmnt /dev/sda1

findmnt/etc/fstab/etc/mtab/proc/self/mounts 文件里收集信息。

卸载文件系统

umount(8) 来卸载文件系统。参数可以是包含文件系统的设备(比如/dev/sda1),也可以是挂载点(比如/mnt):

# umount /dev/sda1

或者

# umount /mnt

参阅

继续...

选择 yes 为 / 选择并创建文件系统(格式化分区)。将提示添加分区,本例中,sda2 和 sda4 保留。 为 sda2 选择文件系统类型并挂载为 /var。最后为 sda4 选择文件系统并挂载为 /home。 Template:Box Note 返回到主菜单。

选择软件包

安装时的软件都来自 [core] 软件源,它们被分为 BaseBase-devel这里有软件包信息和简介。

首先,选择软件包类别:

注意: 为方便,默认选中了 base 中的所有软件包,请用空格键切换选择状态。
Base 
来自 [core] 软件源的最小基本系统,总是选中它并删除不用的软件包。
Base-devel 
来自 [core] 的附加工具例如Template:CodelineTemplate:Codeline。大部分新手都应该安装它,后续会用到。

选中类别后,将给出软件包的完整列表以细化选择,用空格键切换选择状态。

注意: 如果需要连接无线网络,请选中 wireless_tools 软件包。一些无线接口还需要 ndiswrapper 和特定 firmware。如果使用 WPA 加密,需要 wpa_supplicant无线设置 页面将帮助您为无线设备选择正确的软件包。同时强烈推荐安装 netcfg,将帮助你在重启后设置网络连接。

选择好需要的软件包后,离开选择屏幕并继续到下一步,安装软件包

安装软件包

安装选中的软件包到新系统,如果用 CD/USB 作为源,将安装 CD/USB 中的软件包。如果选择网络安装,将从互联网下载最新的软件包。

注意: 一些安装程序会询问是否希望保留 pacman 缓冲里的软件包。如果你选'yes',日后可以降级某些软件包,因此推荐保留(今后还可以清除这些缓存)。

下载软件包后,安装程序会做完整性检查,接着从下载的软件包中创建内核。

配置系统

Tip: 理解并完全安装步骤设置是保证系统配置成功的关键。

本步骤将配置 Arch Linux 系统的主要配置文件,之前的安装版本用 hwdetect 收集配置所需信息。现在已经过时,改用可以自动装入所需模块的 udev

现在系统会询问你使用哪个文本编辑器;选择 nanojoevi,三者之中 nano 最简单,请查看相应的帮助文件以获得使用方法。然后就会出现一个包含系统主要配置文件的菜单。

注意: 此时,编辑/验证所有配置文件很重要。安装程序根据输入的信息创建这些文件。跳过这些关键配置步骤是个常见错误。

安装程序不能自动处理吗?

隐藏系统配置过程直接违背The Arch Way (简体中文)。确实,最近的内核和硬件检测工具可以提供绝好的硬件支持和自动配置,Arch 依然在安装过程中将配置文件展现给用户以维护透明化和有利于系统资源控制。在你完成这些配置文件的修改之后,就学会了简单的 Arch Linux 系统的配置,熟悉了基本结构,为更好的使用和维护新系统做好准备。

/etc/rc.conf

ArchLinux 使用Template:Filename 作为系统的主要配置文件。这个文件包含了广泛的配置信息,主要用于系统的启动。正如名字中所说,其中还包含了供 /etc/rc* 使用的配置信息。


LOCALIZATION 部分
LOCALIZATION 示例:
LOCALE="zh_CN.UTF-8"
DAEMON_LOCALE="no"
HARDWARECLOCK="localtime"
TIMEZONE="Asia/Shanghai"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"
LOCALE
系统本地化设置,所有国际化的应用程序都会使用这个设置。从命令行运行 Template:Codeline 将显示可用的设置。此设置缺省是适合英文(US English)用户使用的en_US.utf8。(此处本地化设置必须与/etc/locale.gen一致,详见下文。)中文一般是zh_CN.UTF-8,如果使用之后乱码,先换回en_US.utf8,等进图形界面后再换回来。
DAEMON_LOCALE
使用本地daemon("yes" or "no").如果回答"yes"将把$LOCALE使用环境变量, 否则使用C locale (如果使用默认值"no").
HARDWARECLOCK
设置开关机时进行时间同步的硬件时钟,可用选项为UTC时间[通用协调时(Universal Time Coordinated), 过去曾用格林威治平均时(GMT)来表示]还是localtime(本地硬件时间)。通常UTC较为好,因为它大大简化了时区和日光节约时间(中国过去称为夏时制)的变更。而当你同时还有其它操作系统如视窗进行双启动,就必须使用本地硬件时间。
TIMEZONE
指定时区。(所有可用的时区可在Template:Filename中找到。)
KEYMAP 
可用的键盘映射表位于Template:Filename。请注意此设定仅在TTY中有效,在所有图形窗口管理器或者X中都不使用此设置。
CONSOLEFONT 
如果你一定要修改此设置,可在Template:Filename中找到可用的字体(比如终端中文显示,就需要设定)。
CONSOLEMAP 
定义了启动时setfont程序加载的控制台映射表。有需要的话,可在Template:Filename找到可用的映射表。
USECOLOR 
如果你使用彩色显示器的话请选"yes"。
HARDWARE 部分
HARDWARE 示例:
# Scan hardware and load required modules at boot
MOD_AUTOLOAD="yes"
# Module Blacklist - Deprecated
MOD_BLACKLIST=()
#
MODULES=(!net-pf-10 !pcspkr loop)
MOD_AUTOLOAD
设置为"yes"将在启动时使用udev探测硬件并加载相应模块。(适合缺省模块化的内核)。设置为"no"就得靠用户自己指定所需的有关信息或自己编译内核和模块。
MOD_BLACKLIST 
此选项已经过时,请直接在下面的 MODULES= 中屏蔽模块。
MODULES 
如果知道缺少哪个重要的模块,可以在这里面具体指定。如果系统使用软驱,请添加 "floppy"。如果使用 loopback 文件系统,添加 "loop"。同时可以通过在模块前加感叹号(!)屏蔽模块,将强制 Udev 不载入屏蔽的模块。在示例中, IPV6 和讨厌的pcspeaker 被屏蔽。

NETWORKING 部分
HOSTNAME
设置为你喜欢的主机名(HOSTNAME)。这也是计算机的名字,设置后请在 Template:Filename设置相同的名字

例子:

HOSTNAME="arch"
interface
指定所有网络接口。多个接口请用空格隔开:(eth0 wlan0)
address
如果你想使用特定的IP,在这里设定. 如果使用DHCP就留空.
netmask
可选, 默认255.255.255.0. 如果你想使用特定的子网掩码,就在这里设定. 如果使用DHCP就留空.
broadcast
可选,如果你想使用特定的广播地址,在这里设定. 如果使用DHCP就留空.
gateway 
如果使用静态IP,将网关(gateway)地址设为路由器的IP。如果使用DHCP,可以忽略此选项,但有些用户报告说同样需要设置。
NETWORK_PERSIST
如果想阻止网络关机就"yes".如果你的启动设备在NFS上这个就是必须的.
NETWORKS
这个是可选的设定为可用,如果你使用netcfg并且使用dialog. 在启动的时候就启用netcfg的配置. 当你的机器运行在很多的网络环境中时,这个很有用 (比如笔记本(laptop)用户).


示例 静态 IP:

HOSTNAME=arch
interface=eth0
address=192.168.1.100
netmask=255.255.255.0
broadcast=192.168.1.255
gateway=192.168.1.1
#NETWORKS=(main)

示例 动态 IP (DHCP):

HOSTNAME=arch
interface=eth0
address=
netmask=
broadcast=
gateway=
#NETWORKS=(main)

使用静态 IP 时,请修改 Template:Filename 以指定 DNS ,详情参见下面的部分

注意: 自动连接到无线网络需要更多的工具(netcfgwicd)和步骤。 详情请查看 无线设置页面。
Tip: 如果需要使用非标准 MTU 大小(即jumbo frames) 而且硬件支持,请查看Jumbo Frames 获得配置方法。
DAEMONS 部分

这个序列罗列了需要在开机启动脚本的名字,这些脚本位于/etc/rc.d/,安装列表里面的顺序启动。同时还支持异步启动以提高开机速度

DAEMONS=(network @syslog-ng netfs @crond)
  • 如果脚本名字前有惊叹号(!),表示它不被执行。
  • 如果脚本名字前有"at"符号(@),则表示它会在后台被执行,启动序列不等待脚本运行成功就会继续执行下一脚本。例如"mpd" 依赖 "network",所以 network 后台启动将影响 mpd 的正常启动。
  • 安装新服务后如果需要开启启动,请编辑此序列。
注意: 这种'BSD风格'的初始化正是Arch的行为方式,其它发行版则是在init.d目录里使用一大堆符号链接。

关于 DAEMONS

虽然此时不需修改daemons行,不过还是有必要解释一下什么是待命进程,因为在指南后面会需要它。

待命进程(daemon)是一个运行于后台的程序,会自动根据发生的事件提供服务。一个明显的例子是网页服务器等待请求,将需要的页面发送出去(例如:httpd) 或 SSH 服务器等待用户登录(例如:sshd)。有些待命进程工作起来并不是那么明显。例如写系统日志的待命进程(如syslog、metalog)和提高图形用户界面的程序(例如: gdm, kdm)。所有这些程序都可以被加入到daemons行中,随着系统启动而启动。本指南会对一些较有用的待命进程进行介绍。

一点历史:daemon 由 MIT 的 MAC 项目的工程师最早使用,这个名字来自麦克斯韦妖(Maxwell's demon)。在这个著名的理想实验中,demon 在后台不间断的工作,分类分子。*nix 系统继承了这个名字命名 disk and execution monitor。

Tip: Arch daemons 位于 /etc/rc.d/

/etc/fstab

fstab (file systems table的缩写) 是系统配置的一部分,该文件列出所有可用的磁盘和分区,并指明它们初始化的方式或整合至全局文件系统的方式。/etc/fstab文件一般被mount命令读取,mount 以设备上的文件系统为参数,将其添加到主目录结构。在启动过程执行到 3/4 左右的时候,/etc/rc.sysinit 会调用 mount -a,mount 读取 /etc/fstab 以确定挂载时使用的选项。如果 noauto 位于 /etc/fstab 中的文件系统之后,mount -a 不会在启动时挂载它。

这是一个 Template:Filename 示例:

# <file system>                            <dir>     <type>  <options>            <dump> <pass>
shm                                        /dev/shm  tmpfs   nodev,nosuid         0      0
tmpfs                                      /tmp      tmpfs   nodev,noexec,nosuid  0      0
UUID=0ddfbb25-9b00-4143-b458-bc0c45de47a0  /         ext4    defaults             0      1
UUID=da6e64c6-f524-4978-971e-a3f5bd3c2c7b  /var      ext4    defaults             0      2
UUID=440b5c2d-9926-49ae-80fd-8d4b129f330b  none      swap    defaults             0      0
UUID=95783956-c4c6-4fe7-9de6-1883a92c2cc8  /home     ext4    defaults             0      2
注意: Fstab 提供了更多的信息和性能调整选项,例如'noatime'/'relatime'。

/etc/mkinitcpio.conf

Note: 大部分用户都不需要在安装时修改此文件,但请阅读下面的解释信息。

此文件负责微调初始内存文件系统 initramfs。(曾被称为初始化内存磁盘或 "initrd")。initramfs 是启动时供内核读取的压缩镜像。目的是引导系统使其能够读取根文件系统。所以它需要装入 IDE、SCSI、SATA 或 USB/FW 等设备所需模块。initrramfs 手动或通过 udev 装入所需的模块后,会将控制权交给内核,继续启动过程。因此 initramfs 仅需要包含读取根文件系统的必要文件。大部分内核模块都是在初始化过程中由 udev 装入。

mkinitcpio是下一代 initramfs 生成器。与以前的 mkinitrdmkinitramfs 脚本相比具有许多优势。

  • 使用 glibcbusybox 提供小巧轻量的早期用户运行环境。
  • 可以利用 udev 在运行时进行自动侦测,可以避免装入大量不需要的模块。
  • 基于钩子的初始脚本可以通过自定义钩子扩展,通过 pacman 软件包提供而不需要修改 mkinitcpio 本身。
  • 已经支持 lvm2dm-crypt,包括 legacy 和 luks volumes。 raidswsuspsuspend2 TuxOnIceusb mass storage 设备唤醒和启动。
  • 许多功能可以通过内核命令行配置,无需重新编译。
  • mkinitcpio 脚本可以在内核中包含镜像,所以能够实现自我包含的内核。
  • 十分灵活,许多时候都不需要重新编译内核。

如果根文件系统使用 RAID 或 LVM,必须配置正确的 HOOKS。详情请查看 RAID /etc/mkinitcpio。如果使用非 US 键盘,请添加 "Template:Codeline " 钩子以载入本地键盘映射。如果使用 USB 键盘,请添加 "Template:Codeline" 。将 Arch 安装到外部硬盘、CF 卡或 SD 卡时,记得添加 "Template:Codeline",示例:

HOOKS="base udev autodetect pata scsi sata usb filesystems keymap usbinput"

(否则,如果出了什么问题无法启动,系统会要求输入密码以进行维护,但确无法使用键盘。)

如果需要通过如下设备启动,请按需要配置 HOOKS: USB 设备、FireWire、PCMCIA、NFS、软 RAID、LVM2 卷、加密卷 和 DSDT 等。

/etc/resolv.conf

注意: 如果使用 DHCP,可以直接忽略此文件,dhcpd 默认会动态创建和销毁此文件。可以通过配置改变默认行为,更多信息请查看NetworkResolv.conf

resolver 是 C 库中的一系列访问DNS(Domain Name System)的函数。DNS 的主要功能是将域名转化为 IP 地址。解析配置文件 /etc/resolv.conf 包含了解析器初始化时读取的信息。

如果使用静态 IP,需要在 Template:Filename 中设置域名服务器 (nameserver <ip-address>),数量不限。 例如,使用 OpenDNS:

nameserver 208.67.222.222
nameserver 208.67.220.220

如果使用路由器,需要在路由器中指定 DNS 服务器,并在 Template:Filename 中将域名服务器指定成路由器的 IP(同时也是 Template:Filename 中的网关)。 例如:

nameserver 192.168.1.1

如果使用 DHCP,也可以在路由器中指定域名服务器,或者允许 ISP 自动指定。

/etc/hosts

此文件将 IP 地址与主机名和别名对应。 每行一个 IP 地址,每个主机应该用单行表示为:

<IP-address> <hostname> [aliases...]

将 /etc/rc.conf 指定的hostname设置为别名:

127.0.0.1   localhost.localdomain   localhost yourhostname
警告: 为了程序的兼容性,必须严格遵照这个格式,包括'localhost' 这项!所以如果主机名为 "arch",那么上面的内容应该变为:
127.0.0.1   localhost.localdomain   localhost arch
错误的句法可能会导致网络性能低下或某些程序运行缓慢甚至无法运行。对新手来说这是十分普遍的错误。
注意: Arch Linux 安装程序的最近版本会在你修改 Template:Filename 后自动将主机名加入。如果不是,请使用前面的指令更新文件信息。

如果你使用静态 IP,新加另外一行: <static-IP> <hostname.domainname.org> <hostname> 即:

192.168.1.100 yourhostname.domain.org  yourhostname
Tip: 为了方便可以用 /etc/hosts 给本地网络或互联网上的主机起别名,例如::
64.233.169.103   www.google.com   g
192.168.1.90   media
192.168.1.88   data
这样在浏览器中输入 'g' 就可以访问 google,不用打 IP 地址也能访问多媒体和数据服务器。

/etc/hosts.deny和/etc/hosts.allow

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Beginners' guide (简体中文)#)

如果你打算使用ssh的话,请根据自己的需要修改此配置。缺省设置是拒绝所有进入的连接,而不只是ssh连接。编辑/etc/hosts.allow 文件加入:

  • 允许所有进入的ssh连接。
sshd:all 
  • 允许特定IP地址进入ssh连接。
sshd: 192.168.0.1
  • 允许你指定的网段 (地址从 192.168.0.0 到 192.168.0.255)
sshd: 192.168.0.
  • 允许某个IP地址范围
sshd: 10.0.0.0/255.255.255.0

如果你不打算使用ssh,为安全起见请保持此文件的缺省设置(为空)。

/etc/locale.gen

/usr/sbin/locale-gen 命令从 /etc/locale.gen读取系统的locales 信息。这些设置稍后会被glibc 和其他一些支持本地化的程序或者库用于自动翻译输出各种语言的"独特" 文本, 并且合适的显示地域、货币、时区以及日期格式、字符排列方式和其他一些本地化的特定标准。

默认情况下 Template:Filename 是一个仅包含注释文档的空文件。编辑后,这个文件将不会更改。每次glibc更新之后就会运行 locale-gen 一次, 重新生成 Template:Filename 指定的本地化文件。

选定你需要的本地化类型(移除前面的#即可), 比如:

en_US ISO-8859-1
en_US.UTF-8	

现在,安装程序将运行locale-gen 脚本, 以生成你设定的locales。你以后可以通过修改文件 /etc/locale.gen 变更locale, 然后使用根用户(root)运行'locale-gen' 脚本。

注意: 如果没有设置 locale, 将提示 "The current locale is invalid..." 错误。而这可能是 Arch 新手犯的最多的错误。

Pacman-镜像

pacman 选择一个软件仓库镜像站。主站 archlinux.org 是有流量限制的,下载速度限于50KB/s。访问 Mirrors 获取更多关于 pacman 镜像的信息。

Root密码

最后,设置一个root密码并确定你已牢记它。返回主菜单然后接着安装启动加载器。

完成

选择 "Done",之后,系统会重建镜像并返回到主菜单,这个步骤会花费一些时间。

安装启动加载器

示例中仅有一个操作系统,所以需要启动加载器。推荐使用 GRUB(GRand Unified Bootloader),除此之外可以使用 LILOSyslinux。如果使用其他启动加载器,请参考相关的 wiki 和文档。

提供的 GRUB 配置文件 (Template:Filename) 应该足够了,但请仔细检查文件内容以确保准确性(特别是要确定在第三行 UUID 指定的根分区)。如果要修改控制台的分辨率,可以用 vga=<number> 内核选项。(分辨率和数值对应表位于Template:Filename。)

示例:

title  Arch Linux (Main)
root   (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro quiet
initrd /boot/initramfs-linux.img

从单独 /boot 分区启动:

title  Arch Linux (Main)
root   (hd0,0)
kernel /vmlinuz-linux root=/dev/sda3 ro quiet
initrd /initramfs-linux.img

GRUB 启动加载器安装到主启动记录 (本例中为 /dev/sda)。

警告: 请确定安装到 /dev/sdX不是 /dev/sdX#! 这是常见错误。
Tip: 详情参见 GRUB

重启系统

好了,Arch Linux 基本系统已经安装配置完毕。退出安装并重启: Template:Cli

Tip: 确保移除安装媒介并修改 BIOS 中的启动选项;否则可能会启动后会回到安装界面!

Template:Beginners' Guide navigation (简体中文)