Difference between revisions of "Archiso (简体中文)"

From ArchWiki
Jump to navigation Jump to search
(update interlanguage links)
Tag: wiki-scripts
 
(79 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[[Category:Live Arch systems]]
+
[[Category:简体中文]]
[[Category:Getting and installing Arch]]
+
[[Category:Live Arch systems (简体中文)]]
[[en:Archiso]]
+
[[Category:Installation process (简体中文)]]
 +
[[Category:Arch projects (简体中文)]]
 
[[ar:Archiso]]
 
[[ar:Archiso]]
 
[[el:Archiso]]
 
[[el:Archiso]]
 +
[[en:Archiso]]
 
[[es:Archiso]]
 
[[es:Archiso]]
 
[[fr:Archiso]]
 
[[fr:Archiso]]
 
[[it:Archiso]]
 
[[it:Archiso]]
 +
[[ja:Archiso]]
 
[[nl:Archiso]]
 
[[nl:Archiso]]
 +
[[pt:Archiso]]
 
[[ru:Archiso]]
 
[[ru:Archiso]]
[[uk:Archiso]]
+
[[sk:Archiso]]
[[zh-CN:Archiso]]
+
{{TranslationStatus (简体中文)|Archiso|2018-06-27|527427}}
{{TranslationStatus (简体中文)|Archiso|2014-06-28|321854}}
+
{{Related articles start (简体中文)}}
“Archiso”是一个能够建立功能全面的基于Arch Linux的Live CD和USB映像的bash脚本小工具。它是用来生成正式的CD / USB镜像的工具,但它是一个非常实用的工具,它可以被用来生成救援系统,安装盘,以及含有特殊利益的live CD/ DVD / USB系统和其他。简单地说,如果要将Arch放入其他可移动设备,它可以帮你做到这一点。 Archiso的核心,是mkarchiso。它的所有选项都记录在它的用法输出,所以mkarchiso的直接使用方法将不在这里讨论。相反,这篇wiki文章将在任何时候教你使用Archiso。
+
{{Related|Remastering the Install ISO}}
 +
{{Related2|PXE (简体中文)|PXE}}
 +
{{Related2|Archboot (简体中文)|Archboot}}
 +
{{Related articles end}}
 +
'''Archiso''' 是一组 bash 脚本,它能够建立功能全面的 Arch Linux 的 Live CD/DVD/USB 映像。它同样是用来生成官方映像的工具,但由于它是一个非常通用的工具,所以它可以被用来生成从救援系统、安装盘,到特殊爱好的 Live CD/DVD/USB 系统——无人知晓还有其他什么。简单地说,如果要将 Arch 放在一条闪光的船上,它可以帮你做到这一点。Archiso 的核心以及灵魂是 ''mkarchiso''。它的所有选项都写在它的用法输出上,所以它的直接使用方法将不在这里讨论。相反,这篇 wiki 文章将导引你迅速建立你的 Live 介质。
  
== 本文翻译进度 ==
+
== 安装和配置 ==
  
100%翻译为简体中文。翻译工程已经结束。
+
{{注意|以下操作请在ROOT权限下使用,在错误的权限下操作会造成问题。}}
 +
当你开始之前, [[install|安装]] {{Pkg|archiso}} 或 {{AUR|archiso-git}}。
  
== 安装和配置 ==
+
Archiso 附带2个预定义配置(profiles): ''releng'' 和''baseline''。
  
{{注意|以下操作请在ROOT权限下使用,在错误的权限下操作会造成一下问题.}}
+
* 如果您想要创建完全定制的 Live Arch Linux ,并预装所有您喜爱的程序和配置,使用 ''releng''。
当我们开始之前, 我们需要 [[pacman|install]] {{Pkg|archiso}} 从 [[official repositories]]. 另外, {{AUR|archiso-git}} 能在 [[AUR]]中找到.
 
  
创建一个用于工作的目录, 实时镜像将会在这里被处理: {{ic|~/archlive}} 需要做精.
+
* 如果您只是想构建一个简易 Live 镜像,无预装软件并仅有基础配置,那么使用 ''baseline''。
$ mkdir ~/archlive
 
  
更早安装到主机的Archiso脚本现在需要复制到你新建的工作目录内。
+
现在,将您选择的配置文件复制到目录(在下面的示例中为 ''archlive''),您可以在其中进行调整和构建。 执行以下操作,用 {{ic|releng}} 或 {{ic|baseline}} 替换 {{ic|'''profile'''}}。
  
Archiso 配置了2个"profiles": ''releng'' ''baseline''.
+
# cp -r /usr/share/archiso/configs/'''profile''' ''archlive''
  
如果您想要创建完全定制的Live Arch Linux,预安装所有您最喜爱的程序和配置,使用 ' releng '
+
* 如果你使用 {{ic|releng}} 配置文件来创建一个完全自定义的镜像,那么你可以继续到:[[#配置 Live 介质]]
  
如果你只是想构建一个简易的Live镜像,那么使用“baseline”来配置一些十分基础的配置即可。
+
* 如果您使用 {{ic|baseline}} 配置文件创建一个简易映像,那么你不需要做任何定制,并可以直接继续到 [[#构建ISO]].
 
所以根据你的需要来决定使用 ''releng'' 还是''baseline''作为基础配置文件
 
.
 
# cp -r /usr/share/archiso/configs/'''PROFILE'''/ ~/archlive
 
  
如果你要使用 ''releng'' 配置文件来定制一个完全自定义的Live介质,那么你可以继续到:[[#配置我们的Live介质]].
+
== 配置 Live 介质 ==
  
如果您使用“baseline”配置文件创建一个空白的映像,那么你不需要做任何的定制,可以继续到[[#构建ISO]].
+
本节详细介绍该如何配置您将创建的映像,允许您定义哪些包以及配置将被您的 Live 映像所包含。
 +
[[#安装和配置]] 中创建的{{ic|''archlive''}}目录中有许多文件和目录; 我们只关注其中一部分,主要是
 +
* {{ic|packages.*}} - 在这里一行行列出你想要安装的包,和
 +
* {{ic|airootfs}} 目录——这是一个覆盖目录,你将在这里完成所有的定制工作。
 +
一般来说,您在全新安装之后所执行的每个管理任务(不包括软件包安装)可以被写入这个脚本: {{ic|''archlive''/airootfs/root/customize_airootfs.sh}}。您必须从新环境的角度来写该脚本,所以脚本中的 / 代表方才被创建的 Live ISO 的根。
  
== 配置我们的Live介质==
+
=== 安装包 ===
  
本节详细配置你将创建的映像,允许您定义包和配置你想要包含你的Live映像。
+
[[Edit|编辑]] {{ic|packages.i686}},{{ic|packages.x86_64}} 或 {{ic|packages.both}} 中的程序包列表,以指示要在 live 媒体上安装那些程序包。这里的后缀表示包可用的架构。
  
更改到我们早些时候创建的目录 (~/archlive/releng/ 如果你一直按照本向导在执行), 你将会看到大量的文件和目录 ; 我们只关注这些,主要是:
+
{{Note|如果要在 Live CD 中使用 [[窗口管理器]],则必须添加必要且正确的 [[video drivers]],否则 WM 可能在加载时冻结。}}
packages.* -这是你列出一行一行你想要安装的包的地方, 和
 
根映像目录- 这是一个覆盖目录,你将在这里完成所有的定制工作。
 
  
一般来说,每一个管理任务,你通常会经过全新安装,除了安装程序包做可以编写脚本为 {{ic|~/archlive/releng/root-image/root/customize-root-image.sh}}. 它必须从新环境的角度写入, 所以脚本中的 / 意味着已被创建的Live ISO的根.
+
==== 自定义本地库 ====
  
=== 安装包 ===
+
{{Merge|Pacman/Tips_and_tricks_(简体中文)#自建本地仓库|移动一般信息 (如:仓库目录树) 到主文章.|Talk:Archiso}}
  
你会想在你的CD系统上创建一个你想安装的包的列表. 一个全是文件名列表的文件. 这是含有巨大特殊利益的Live CD,只需在packages.both指定你想要的包和烧录的镜像。
+
为了准备自定义包或是从 [[Arch User Repository (简体中文)|AUR]]/[[Arch Build System (简体中文)|ABS]] 安装包,你也可以 [[Custom local repository|创建自定义本地资源库]]。如果您希望支持多种体系结构,则应采取预防措施来防止发生错误。每个架构应该有自己的目录树:
The packages.i686 和 packages.x86_64 文件允许你分别只在32位还是64位安装文件。
 
  
若你准备在没有互联网连接的设备上安装系统,我建议你安装"rsync",要不然就重新跳过下载它. ([[#安装]])
+
{{hc|$ tree ~/customrepo/ {{!}} sed "s/$(uname -m)/<arch>/g"|
 +
/home/archie/customrepo/
 +
└── <arch>
 +
    ├── customrepo.db -> customrepo.db.tar.xz
 +
    ├── customrepo.db.tar.xz
 +
    ├── customrepo.files -> customrepo.files.tar.xz
 +
    ├── customrepo.files.tar.xz
 +
    └── personal-website-git-b99cce0-1-<arch>.pkg.tar.xz
  
==== 自定义本地库 ====
+
1 directory, 5 files
 +
}}
  
{{Merge|Pacman tips#自定义本地库|移动一般信息 (e.g. repo tree) 到主文章.}}
+
如此后,您可以添加您的仓库——把下面的句子加入 {{ic|~/archlive/pacman.conf}},并置于其他仓库条目上面(优先级最高):
  
你也可以 [[自定义本地库|创建自定义本地资源库]] 从[[AUR]]/[[ABS]]准备自定义包. 当这样处理这两种架构的软件包,您应该遵循一定的目录顺序,才不会出现问题。
+
{{hc|~/archlive/pacman.conf|...
例如
+
# custom repository
 +
[customrepo]
 +
SigLevel <nowiki>=</nowiki> Optional TrustAll
 +
Server <nowiki>=</nowiki> file:///home/'''user'''/customrepo/$arch
 +
...}}
  
*{{ic|~/customrepo}}
+
''repo-add'' 可执行文件检查软件包是否合适。如果不,那么你将得到与此类似的错误消息:
**{{ic|~/customrepo/x86_64}}
 
***~/customrepo/x86_64/foo-x86_64.pkg.tar.xz
 
***~/customrepo/x86_64/customrepo.db.tar.gz
 
***~/customrepo/x86_64/customrepo.db (symlink created by {{ic|repo-add}})
 
**{{ic|~/customrepo/i686}}
 
***~/customrepo/i686/foo-i686.pkg.tar.xz
 
***~/customrepo/i686/customrepo.db.tar.gz
 
***~/customrepo/i686/customrepo.db (symlink created by {{ic|repo-add}})
 
  
然后您可以添加您的存储库把下列句子变成 {{ic|~/archlive/releng/pacman.conf}}, 上面的其他存储库条目 (优先):
+
==> ERROR: '/home/archie/customrepo/<arch>/foo-<arch>.pkg.tar.xz' does not have a valid database archive extension.
  
# custom repository
+
==== 避免安装属于base组的包 ====
[customrepo]
 
SigLevel = Optional TrustAll
 
Server = file:///home/'''user'''/customrepo/$arch
 
  
因此,构建脚本只是为了寻找适当的程序包。
+
默认情况下,{{ic|/usr/bin/mkarchiso}}——一个被 {{ic|~/archlive/build.sh}} 使用的脚本——会调用 {{Pkg|arch-install-scripts}} 中一个名为 {{ic|pacstrap}} 的程序,且在调用时不使用 {{ic|-i}} 标志——这将使 [[Pacman]] 在安装过程中不等待用户输入。
  
如果不是这样你将运行到与此类似的错误消息:
+
当 base 组软件包被加入黑名单——把它们写到 {{ic|~/archlive/pacman.conf}} 中的 {{ic|IgnorePkg}} 行——时,[[Pacman]] 会询问是否仍然安装它们——意味着如果用户输入被跳过,它们就会被安装。为了避免安装这些包,这里有一些选择:
  
error: failed to prepare transaction (package architecture is not valid)
+
* '''丑陋'''方案(Dirty):在 {{ic|/usr/bin/mkarchiso}} 中每次调用 {{ic|pacstrap}} 的行上加入 {{ic|i}} 标志。
:: package foo-i686 does not have a valid architecture
 
  
====避免安装属于基础组的包 ====
+
* '''整洁'''方案(Clean):创建 {{ic|/usr/bin/mkarchiso}} 的一份复制。在该复制中增加此标志,并修改 {{ic|~/archlive/build.sh}} 以使其调用修改过的 mkarchiso 脚本。
(为保证文章的准确性,本节使用英文原文)
 
By, default {{ic|/usr/bin/mkarchiso}}, a script which is used by {{ic|~/archlive/releng/build.sh}}, calls one of the {{Pkg|arch-install-scripts}} named {{ic|pacstrap}} without the {{ic|-i}} flag, which causes [[Pacman]] to not wait for user input during the installation process.
 
  
When blacklisting base group packages by adding them to the {{ic|IgnorePkg}} line in {{ic|~/archlive/releng/pacman.conf}}, [[Pacman]] asks if they still should be installed, which means they will when user input is bypassed. To get rid of these packages there are several options:
+
* '''高级'''方案(Advanced): 在 {{ic|~/archlive/build.sh}} 中创建一个函数,该函数将在基础安装结束后显式移除那些包。若这样做,可以免去在安装过程中多次按回车键的麻烦。
  
* '''Dirty''': Add the {{ic|-i}} flag to each line calling {{ic|pacstrap}} in {{ic|/usr/bin/mkarchiso}}.
+
==== Installing packages from multilib ====
  
* '''Clean''': Create a copy of {{ic|/usr/bin/mkarchiso}} in which you add the flag and adapt {{ic|~/archlive/releng/build.sh}} so that it calls the modifed version of the mkarchiso script.
+
要从 [[Multilib (简体中文)|Multilib]] 资源库安装软件包,您必须创建两个 pacman 配置文件:一个用于 x86_64,一个用于 i686。 将 {{ic|pacman.conf}} 复制到 {{ic|pacmanx86_64.conf}} 和 {{ic|pacmani686.conf}}。 取消注释以下行以{{ic|pacmanx86_64.conf}} 中启用 ''multilib''):
 +
 +
{{hc|pacmanx86_64.conf|2=
 +
[multilib]
 +
SigLevel = PackageRequired
 +
Include = /etc/pacman.d/mirrorlist
 +
}}
  
* '''Advanced''': Create a function for {{ic|~/archlive/releng/build.sh}} which explicitly removes the packages after the base installation. This would leave you the comfort of not having to type enter so much during the installation process.
+
然后用编辑器编辑 {{ic|build.sh}}。 把:
  
=== 添加账户 ===
+
{{hc|build.sh|
 +
run_once make_pacman_conf
  
用户管理可以在正常的安装过程中用相同的方式处理,除了你把你的命令脚本放到 {{ic|~/archlive/releng/root-image/root/customize-root-image.sh}}. 详情参阅 [[用户和组#用户管理|用户管理]].
+
# Do all stuff for each airootfs
 +
for arch in i686 x86_64; do
 +
    run_once make_basefs
 +
    run_once make_packages
 +
done
  
=== 向映像里添加文件===
+
run_once make_packages_efi
  
{{注意|你必须使用根权限做到这一点, 不改变任何你复制过来的文件的所有权, 根映像中的所有文件必须是root用户所有. 适当的所有制将在不久被解决.}}
+
for arch in i686 x86_64; do
 +
    run_once make_setup_mkinitcpio
 +
    run_once make_customize_airootfs
 +
done
 +
}}
  
根映像目录作为要覆盖的文件,把它看作是在当前系统上的根目录'/',所以你在这个目录中放置的任何文件都将在开机时被复制。
+
改为:
  
所以,如果你在要作为Live镜像使用的当前系统上有一组iptables脚本,请这样复制:
+
{{hc|build.sh|
# cp -r /etc/iptables ~/archlive/releng/root-image/etc
+
cp -v releng/pacmanx86_64.conf releng/pacman.conf
 +
run_once make_pacman_conf
  
在用户home文件夹里放置文件的方法有些许不同. 别把它们放在root-image/home, 而是在root-image/里创建skel目录并将其放置在那里. 然后我们会将相关命令添加到 customize_root_image.sh(一个我们要使用复制道引导和梳理权限的文件)。
+
# Do all stuff for each airootfs
 +
for arch in x86_64; do
 +
    run_once make_basefs
 +
    run_once make_packages
 +
    run_once make_packages_efi
 +
    run_once make_setup_mkinitcpio
 +
    run_once make_customize_airootfs
 +
done
  
首先,创建 skel 目录; 确保你在 ~/archlive/releng/root-image/etc 目录 (如果这是你工作之地):
+
echo make_pacman_conf i686
# cd ~/archlive/releng/root-image/etc && mkdir skel
+
cp -v releng/pacmani686.conf releng/pacman.conf
 +
cp -v releng/pacmani686.conf ${work_dir}/pacman.conf
  
现在,复制 'home' 文件到skel目录, 再使用根权限做所有事!
 
e.g for .bashrc.
 
# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/
 
  
当 {{ic|~/archlive/releng/root-image/root/customize-root-image.sh}} 被执行,并且一个新用户已被创建, skel 目录中的文件将自动被复制到新的ome文件夹中,设置正确的权限。
+
for arch in i686; do
 +
    run_once make_basefs
 +
    run_once make_packages
 +
    run_once make_packages_efi
 +
    run_once make_setup_mkinitcpio
 +
    run_once make_customize_airootfs
 +
done
 +
}}
  
=== aitab ===
+
这样,x86_64 和 i686 的软件包将安装有自己的pacman配置文件。
  
默认的文件应该没有问题,所以你应该不需要去碰它。
+
=== 向映像里添加文件===
  
该aitab 文件保存有关必须创建的 mkarchiso 和 initramfs 阶段从 archiso 钩挂载的文件系统映像信息。
+
{{注意|你必须使用 root 权限来完成这件事,不要改变任何你复制过来的文件的所有权,airootfs 中的'''所有'''文件必须为 root 用户所有。适当的所有制将在不久被解决。}}
  
它包含一些定义映像行为的字段。
+
airootfs 目录作为要覆盖的文件,把它看作是在当前系统上的根目录'/',所以你在这个目录中放置的任何文件都将在开机时被复制。
  
  # <img>        <mnt>                <arch>  <sfs_comp>  <fs_type>  <fs_size>
+
所以,如果你在当前系统上有一组 iptables 脚本且想要在 Live 映像上使用,请这样复制:
 +
  # cp -r /etc/iptables ~/archlive/airootfs/etc
  
; <img>: 不带扩展名的映像名称 (.fs .fs.sfs .sfs).
+
在用户 home 文件夹里放置文件的方法有些许不同。不要把它们放在 {{ic|airootfs/home}},而是在 airootfs/ 里创建 skel 目录并将其放置在那里。然后我们会将相关命令添加到 {{ic|customize_airootfs.sh}}——我们要使用它在引导时复制文件以及梳理权限。
; <mnt>: 挂载点.
 
; <arch>:  结构{ i686 | x86_64 | any }.
 
; <sfs_comp>: SquashFS 压缩格式 { gzip | lzo | xz }.
 
; <fs_type>:  设置映像的文件系统格式 { ext4 | ext3 | ext2 | xfs | btrfs }. 一个特殊的值"none"表示没有使用文件系统. 在这种情况下所有文件都是直接推向 SquashFS 文件系统
 
; <fs_size>: 在 MiB 中的文件系统映像大小绝对值 (比如: 100, 1000, 4096, 等) 文件系统中的可用空间的相对值[百分比] {1%..99%} (比如 50%, 10%, 7%这是估计值,并以一种简单的方式计算出来。. 已用空间 + 10% (估计为元数据开销) + 所需 %
 
  
{{注意|有些组合是无效的. 这两个示例 {{ic|sfs_comp}} 和 {{ic|fs_type}} 都设置为 none}}
+
首先,创建 skel 目录
 +
# mkdir ~/archlive/airootfs/etc/skel
  
=== mkinitcpio.conf ===
+
现在,复制 'home' 的文件到 skel 目录。例如,对于 {{ic|.bashrc}}:
默认的文件应该可以正常工作,所以你不应该需要去碰它。
+
# cp ~/.bashrc ~/archlive/airootfs/etc/skel/
  
一个'Initcpio ' 有必要创建一个系统,能够从 CD/DVD/USB,"唤醒"
+
当 {{ic|~/archlive/airootfs/root/customize_airootfs.sh}} 被执行,并且一个新用户已被创建, skel 目录中的文件将自动被复制到新的 home 文件夹中,并被设置正确的权限。
  
默认列表将让你可以从CD/ DVD或USB设备的系统启动。硬件的自动检测和这种性质的东西在这里不做深入研究。只有必要让系统在它的foot部分 。“initcpio”真正属于这里,反正票友东东可以在引导系统上来完成。
+
类似地,需要注意位于层次结构下方的特殊配置文件。作为示例,配置文件 {{ic|/etc/X11/xinit/xinitrc}} 位于可能被安装包覆盖的路径上。要将 {{ic|xinitrc}} 的配置文件放在 {{ic|~/archlive/airootfs/etc/skel/}} ,然后修改 {{ic|customize_airootfs.sh}} 以适当地移动。
  
=== 引导载入程式 ===
+
=== 引导器 ===
  
 
默认的文件应该可以正常工作,所以你应该不需要去碰它。
 
默认的文件应该可以正常工作,所以你应该不需要去碰它。
  
由于 isolinux 的模块化性质,你都能够使用很多的插件,因为 *.c32 的所有文件都可以复制并可供您使用. 看看[http://syslinux.zytor.com/wiki/index.php/SYSLINUX 官方 syslinux 网站] 和 [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files Archiso Git Repo]. 使用所述插件,它能够使视觉上更有吸引力,并制作出更复杂的菜单. 参见 [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 此处].
+
由于 isolinux 的模块化性质,你能够使用很多插件,因为所有 *.c32 都被复制且可以可供您使用。看看[http://syslinux.zytor.com/wiki/index.php/SYSLINUX syslinux 官方网站] 和 [https://projects.archlinux.org/archiso.git/tree/configs/syslinux-iso/boot-files Archiso Git Repo]。使用所述插件,便有可能做出更具视觉吸引力及复杂的菜单。参见 [http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32 此处]
  
=== 登录界面管理器 ===
+
=== 登录管理器 ===
  
在引导时启动 X 通过使您登录管理器 [[system]] 的服务。如果您知道哪一个.service 文件需要软链接: 就太好了。如果不是,你可以轻松地找出,以防您在您建立您的 iso 的系统上使用相同的程序。只需使用
+
通过启用您登录管理器的 [[Systemd (简体中文)|systemd]] 服务来做到在引导时启动 X 。如果您知道哪一个 .service 文件需要软链接,那就太好了。如果不知道,你也可以轻松找出——如果你在创建 iso 所用的系统上使用相同的程序的话。只需使用:
  
# systemctl disable '''nameofyourloginmanager'''
+
  $ ls -l /etc/systemd/system/display-manager.service
  
若要暂时关闭。接下来再次键入相同的命令并替换"禁用"与"启用"来重新激活它。立即打印它创建软链接的信息。现在更改为 ~/archiso/releng/root-image/etc/systemd/system,在那里创建相同的软链接。
+
现在在 {{ic|~/archlive/airootfs/etc/systemd/system}} 中创建相同的软链接。如 LXDM:
  
一个例子 (请确保你是在 ~/archiso/releng/root-image/etc/systemd/system 或者将其添加到该命令):
+
# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service
  
# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service
+
这将使您在 live 系统启用在系统上启动 LXDM。(This will enable LXDM at system start on your live system.)
  
这将启动在系统启动时在您的Live系统上的 LXDM。
+
或者,您也可以启用 {{ic|airootfs/root/customize_airootfs.sh}} 中的服务以及其中启用的其他服务。
 +
 
 +
如果您希望图形环境在启动过程中自动启动,请确保编辑 {{ic|airootfs/root/customize_airootfs.sh}} 并替换
 +
systemctl set-default multi-user.target
 +
 +
systemctl set-default graphical.target
  
 
=== 改变自动登录状态 ===
 
=== 改变自动登录状态 ===
  
对于Getty的自动登录的配置位于root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf下。
+
Getty 的自动登录配置位于 {{ic|airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf}}。
  
 
您可以修改这个文件来更改自动登录用户:
 
您可以修改这个文件来更改自动登录用户:
Line 182: Line 214:
 
  ExecStart=-/sbin/agetty --autologin '''isouser''' --noclear %I 38400 linux
 
  ExecStart=-/sbin/agetty --autologin '''isouser''' --noclear %I 38400 linux
  
或者干脆删除它禁用自动登录。
+
或者干脆删除它来禁用自动登录。
  
 
== 构建ISO ==
 
== 构建ISO ==
  
现在,你可以准备把你的文件转换成.iso 然后可以刻录到 CD 或 USB:
+
现在,你已经准备好把你的文件转换成 .iso,以便可以刻录到 CD 或 USB:
在你工作的目录内, 不是 ~/archlive/releng, 就是 ~/archlive/baseline, 执行:
+
 
 +
首先创建 {{ic|out/}} 目录(可选,如果没有的话 build.sh 将会创建它),
 +
 
 +
# mkdir ~/archlive/out/
 +
 
 +
然后在 {{ic|~/archlive}} 里面执行:
  
 
  # ./build.sh -v
 
  # ./build.sh -v
  
该脚本将现在下载并安装你指定的软件包到work/*/root-image,创建内核和init图像,将您修改生成并最终建立ISO到/
+
该脚本将现在下载并安装你指定的软件包到 {{ic|work/*/airootfs}},创建内核和 init 映像(initramfs),应用您的修改,并最终把 ISO 建立到 {{ic|out/}}。
 +
 
 +
=== 重建ISO ===
 +
 
 +
在修改之后重建 ISO 不被官方支持。但是,通过应用两个步骤很容易。首先,您必须删除工作目录中的锁定文件:
 +
 
 +
# rm -v work/build.make_*
 +
 
 +
此外,需要编辑脚本 {{ic|airootfs/root/customize_airootfs.sh}},并在 {{ic|useradd}} 行的开头添加 {{ic|id}} 命令,如下所示。否则,重建将在此处停止,因为要添加的用户已经存在 [https://bugs.archlinux.org/task/41865]。
 +
{{Style|typo?}}
 +
 
 +
! id arch && useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch
 +
 
 +
同时删除创建的用户或符号链接,如 {{ic|/etc/sudoers}} 等持久性数据。
 +
 
 +
{{Expansion|报告需要删除或重置的更多数据。}}
 +
 
 +
通过编辑 pacstrap 脚本(位于 /bin/pacstrap)并在第 361 行更改以下内容,可以稍微加快重建速度:
 +
 
 +
修改前:
 +
 
 +
if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then
 +
 
 +
修改后:
 +
 
 +
if ! pacman -r "$newroot" -Sy --needed "${pacman_args[@]}"; then
 +
 
 +
这增加了初始引导的速度,因为它不必下载和安装任何已经安装的基础包。
  
 
== 使用ISO ==
 
== 使用ISO ==
  
=== CD ===
+
有关各种选项,请参见 [[Category:Installation process (简体中文)]] 部分。
 +
 
 +
== 提示和技巧 ==
 +
 
 +
=== 在沒有互联网连接的情况下安装 Archiso ===
 +
{{Move|Installation without Internet access|似乎这可以独立成一篇|Talk:Archiso}}
 +
{{Accuracy|可以将 Arch 镜像上提供的 “bootstrap” 映像直接提取到目标磁盘,而不是从 archiso 复制文件。 你将得到一个最小的系统,而不需要处理 archiso 修改。|Talk:Archiso}}
 +
 
 +
若你想在没有互联网连接或者你不想重复下载你想要的包的情况下安装 archiso(例如[https://www.archlinux.org/download/ 官方的每月发布版]):
 +
 
 +
首先,按照[[Installation guide (简体中文)|安装指南]],并跳过一些步骤(如[[Installation guide (简体中文)#连接到因特网|连接到因特网]]),直到[[Installation guide (简体中文)#安装基本系统|安装基本系统]]之前。
 +
 
 +
==== 安装 archiso 到新的 root ====
 +
 
 +
复制 Live 环境的''所有文件''到新的根目录,而不是使用 {{ic|pacstrap}}(这将尝试从远程存储库下载):
 +
  # cp -ax / /mnt
 +
{{注意|The option ({{ic|-x}})排除了一些特殊目录,因为它们不应该被复制到新的根目录。}}
 +
 
 +
然后,创建一些目录并复制内核映像到新的根,以保证新系统的完整性:
 +
 
 +
# cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux
 +
 
 +
完成之后,请按[[Installation guide (简体中文)#Fstab]]所述生成 fstab。
 +
 
 +
==== Chroot 并配置基本系统 ====
 +
 
 +
下一步,chroot 到您新安装的系统:
 +
 
 +
# arch-chroot /mnt /bin/bash
 +
 
 +
请注意,在您配置 locale、键盘映射等之前,你仍然需要为了避免延续 Live 环境的轨迹——或者说对 archiso 所做的一些不适用于非 Live 环境的修改——而做一些事情。
 +
 
 +
===== 恢复 journald 的配置 =====
 +
[https://projects.archlinux.org/archiso.git/tree/configs/releng/airootfs/root/customize_airootfs.sh#n19 archiso 的这个修改]会导致日志存储在 RAM 上——它意味着在重启后日志便会丢失。为了解决这个问题,执行:
 +
 
 +
# sed -i 's/Storage=volatile/#Storage=auto/' /etc/systemd/journald.conf
 +
 
 +
===== 删除特殊的 udev 规则 =====
 +
如果有任何有线网络接口,[https://projects.archlinux.org/archiso.git/tree/configs/releng/airootfs/etc/udev/rules.d/81-dhcpcd.rules udev 的这个规则]会自动启动dhcpcd。
 +
 
 +
# rm /etc/udev/rules.d/81-dhcpcd.rules
  
就是把iso刻录到光碟. 如你所愿,你可以看看 [[CD Burning]].
+
===== 禁用和移除 archiso 创建的服务 =====
 +
有一些服务文件是为 Live 环境创建的,请禁用这些服务并移除文件——因为它们对于新系统来说没必要存在:
  
=== USB ===
+
# systemctl disable pacman-init.service choose-mirror.service
 +
# rm -r /etc/systemd/system/{choose-mirror.service,pacman-init.service,etc-pacman.d-gnupg.mount,getty@tty1.service.d}
 +
# rm /etc/systemd/scripts/choose-mirror
  
参见 [[USB Flash Installation Media]].
+
===== 移除 Live 环境的特殊脚本 =====
 +
在 live 系统中通过 archiso 脚本安装了一些脚本,这对于新系统是不必要的:
  
=== grub4dos ===
+
# rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
 +
# rm /root/{.automated_script.sh,.zlogin}
 +
# rm /etc/mkinitcpio-archiso.conf
 +
# rm -r /etc/initcpio
  
Grub4dos 是一个实用程序,可以用于创建多重引导的 usbs,可以从相同的 usb 棒启动多个 linux 发行版。
+
===== 导入archlinux密钥 =====
  
要用GRUB4DOS引导已安装在USB上生成的系统上,循环挂载ISO和整个{{ic|/arch}} 目录到 '''USB根'''.
+
为了使用官方存储库,我们需要导入 archlinux 主密钥([[Pacman/Package signing (简体中文)#初始化密钥环]])。这一步通常是通过 pacstrap 完成的,但是可以通过
然后从grub4dos编辑 {{ic|menu.lst}} 文件 (必须在USB根上) 并添加:
 
  
{{bc|<nowiki>
+
# pacman-key --init
title Archlinux x86_64
+
# pacman-key --populate archlinux
kernel /arch/boot/x86_64/vmlinuz archisolabel=<your usb label>
 
initrd /arch/boot/x86_64/archiso.img
 
</nowiki>}}
 
  
根据需要,更改 {{ic|x86_64}} 部分并把你'''真实的''' usb 标签放在这儿.
+
{{注意|Keyboard or mouse activity is needed to generate entropy and speed-up the first step.}}
  
=== 安装 ===
+
===== 配置系统 =====
  
引导创建的 CD/DVD/USB. 如果你想安装你创建的Archiso '''-正如它所是-''',有几个方法可以做到这一点, 但我们下面的[[新手指南]]主要是这两种方式.
+
现在,您可以按照 [[Installation guide (简体中文)#配置系统]] 中跳过的步骤(设置语言环境,时区,主机名等),并通过创建初始 ramdisk 来完成安装,如 [[Installation guide (简体中文)#Initramfs]]。
  
如果你没有互联网连接在该 PC 上,, 或者你不想再次下载你想要的所有包, 跟随指南, 当你到 [[新手指南#安装基础系统]], 不是用下载, 请使用: [[用 rsync 进行完全系统备份]]. (详情参见: [[Talk:Archiso]])
+
===== 启用图形登录(可选) =====
  
你也可以试试: [[Archboot]], 图形界面安装程式.
+
如果使用像GDM这样的显示管理器,则可能需要将 systemd 默认目标从 multi-user.target 更改为允许图形登录的目标。
 +
# systemctl disable multi-user.target
 +
# systemctl enable graphical.target
  
== 另请参见 ==
+
== 参阅 ==
 +
=== 文档和教程 ===
 +
* [https://projects.archlinux.org/archiso.git  Archiso 项目页面]
 +
* [https://projects.archlinux.org/archiso.git/tree/docs 官方文档]
  
* [https://projects.archlinux.org/?p=archiso.git;a=summary Archiso project page]
+
=== 示例自定义模板 ===
* [[Archiso_as_pxe_server|Archiso as pxe server]]
+
* [http://easy.open.and.free.fr/didjix/ A live DJ distribution powered by ArchLinux and built with Archiso]
* [http://blog.jak.me/2011/09/07/creating-a-custom-arch-linux-live-usb/ Creating a custom Arch Linux live USB tutorial]
 
* [http://didjix.blogspot.com/ A live DJ distribution powered by ArchLinux and built with Archiso]
 

Latest revision as of 22:21, 12 November 2018

翻译状态: 本文是英文页面 Archiso翻译,最后翻译时间:2018-06-27,点击这里可以查看翻译后英文页面的改动。

Archiso 是一组 bash 脚本,它能够建立功能全面的 Arch Linux 的 Live CD/DVD/USB 映像。它同样是用来生成官方映像的工具,但由于它是一个非常通用的工具,所以它可以被用来生成从救援系统、安装盘,到特殊爱好的 Live CD/DVD/USB 系统——无人知晓还有其他什么。简单地说,如果要将 Arch 放在一条闪光的船上,它可以帮你做到这一点。Archiso 的核心以及灵魂是 mkarchiso。它的所有选项都写在它的用法输出上,所以它的直接使用方法将不在这里讨论。相反,这篇 wiki 文章将导引你迅速建立你的 Live 介质。

安装和配置

注意: 以下操作请在ROOT权限下使用,在错误的权限下操作会造成问题。

当你开始之前, 安装 archisoarchiso-gitAUR

Archiso 附带2个预定义配置(profiles): relengbaseline

  • 如果您想要创建完全定制的 Live Arch Linux ,并预装所有您喜爱的程序和配置,使用 releng
  • 如果您只是想构建一个简易 Live 镜像,无预装软件并仅有基础配置,那么使用 baseline

现在,将您选择的配置文件复制到目录(在下面的示例中为 archlive),您可以在其中进行调整和构建。 执行以下操作,用 relengbaseline 替换 profile

# cp -r /usr/share/archiso/configs/profile archlive
  • 如果你使用 releng 配置文件来创建一个完全自定义的镜像,那么你可以继续到:#配置 Live 介质
  • 如果您使用 baseline 配置文件创建一个简易映像,那么你不需要做任何定制,并可以直接继续到 #构建ISO.

配置 Live 介质

本节详细介绍该如何配置您将创建的映像,允许您定义哪些包以及配置将被您的 Live 映像所包含。 在 #安装和配置 中创建的archlive目录中有许多文件和目录; 我们只关注其中一部分,主要是

  • packages.* - 在这里一行行列出你想要安装的包,和
  • airootfs 目录——这是一个覆盖目录,你将在这里完成所有的定制工作。

一般来说,您在全新安装之后所执行的每个管理任务(不包括软件包安装)可以被写入这个脚本: archlive/airootfs/root/customize_airootfs.sh。您必须从新环境的角度来写该脚本,所以脚本中的 / 代表方才被创建的 Live ISO 的根。

安装包

编辑 packages.i686packages.x86_64packages.both 中的程序包列表,以指示要在 live 媒体上安装那些程序包。这里的后缀表示包可用的架构。

Note: 如果要在 Live CD 中使用 窗口管理器,则必须添加必要且正确的 video drivers,否则 WM 可能在加载时冻结。

自定义本地库

Merge-arrows-2.pngThis article or section is a candidate for merging with Pacman/Tips_and_tricks_(简体中文)#自建本地仓库.Merge-arrows-2.png

Notes: 移动一般信息 (如:仓库目录树) 到主文章. (Discuss in Talk:Archiso)

为了准备自定义包或是从 AUR/ABS 安装包,你也可以 创建自定义本地资源库。如果您希望支持多种体系结构,则应采取预防措施来防止发生错误。每个架构应该有自己的目录树:

$ tree ~/customrepo/ | sed "s/$(uname -m)/<arch>/g"
/home/archie/customrepo/
└── <arch>
    ├── customrepo.db -> customrepo.db.tar.xz
    ├── customrepo.db.tar.xz
    ├── customrepo.files -> customrepo.files.tar.xz
    ├── customrepo.files.tar.xz
    └── personal-website-git-b99cce0-1-<arch>.pkg.tar.xz

1 directory, 5 files

如此后,您可以添加您的仓库——把下面的句子加入 ~/archlive/pacman.conf,并置于其他仓库条目上面(优先级最高):

~/archlive/pacman.conf
...
# custom repository
[customrepo]
SigLevel = Optional TrustAll
Server = file:///home/user/customrepo/$arch
...

repo-add 可执行文件检查软件包是否合适。如果不,那么你将得到与此类似的错误消息:

==> ERROR: '/home/archie/customrepo/<arch>/foo-<arch>.pkg.tar.xz' does not have a valid database archive extension.

避免安装属于base组的包

默认情况下,/usr/bin/mkarchiso——一个被 ~/archlive/build.sh 使用的脚本——会调用 arch-install-scripts 中一个名为 pacstrap 的程序,且在调用时不使用 -i 标志——这将使 Pacman 在安装过程中不等待用户输入。

当 base 组软件包被加入黑名单——把它们写到 ~/archlive/pacman.conf 中的 IgnorePkg 行——时,Pacman 会询问是否仍然安装它们——意味着如果用户输入被跳过,它们就会被安装。为了避免安装这些包,这里有一些选择:

  • 丑陋方案(Dirty):在 /usr/bin/mkarchiso 中每次调用 pacstrap 的行上加入 i 标志。
  • 整洁方案(Clean):创建 /usr/bin/mkarchiso 的一份复制。在该复制中增加此标志,并修改 ~/archlive/build.sh 以使其调用修改过的 mkarchiso 脚本。
  • 高级方案(Advanced): 在 ~/archlive/build.sh 中创建一个函数,该函数将在基础安装结束后显式移除那些包。若这样做,可以免去在安装过程中多次按回车键的麻烦。

Installing packages from multilib

要从 Multilib 资源库安装软件包,您必须创建两个 pacman 配置文件:一个用于 x86_64,一个用于 i686。 将 pacman.conf 复制到 pacmanx86_64.confpacmani686.conf。 取消注释以下行以pacmanx86_64.conf 中启用 multilib):

pacmanx86_64.conf
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

然后用编辑器编辑 build.sh。 把:

build.sh
run_once make_pacman_conf

# Do all stuff for each airootfs
for arch in i686 x86_64; do
    run_once make_basefs
    run_once make_packages
done

run_once make_packages_efi

for arch in i686 x86_64; do
    run_once make_setup_mkinitcpio
    run_once make_customize_airootfs
done

改为:

build.sh
cp -v releng/pacmanx86_64.conf releng/pacman.conf
run_once make_pacman_conf

# Do all stuff for each airootfs
for arch in x86_64; do
    run_once make_basefs
    run_once make_packages
    run_once make_packages_efi
    run_once make_setup_mkinitcpio
    run_once make_customize_airootfs
done

echo make_pacman_conf i686
cp -v releng/pacmani686.conf releng/pacman.conf
cp -v releng/pacmani686.conf ${work_dir}/pacman.conf


for arch in i686; do
    run_once make_basefs
    run_once make_packages
    run_once make_packages_efi
    run_once make_setup_mkinitcpio
    run_once make_customize_airootfs
done

这样,x86_64 和 i686 的软件包将安装有自己的pacman配置文件。

向映像里添加文件

注意: 你必须使用 root 权限来完成这件事,不要改变任何你复制过来的文件的所有权,airootfs 中的所有文件必须为 root 用户所有。适当的所有制将在不久被解决。

airootfs 目录作为要覆盖的文件,把它看作是在当前系统上的根目录'/',所以你在这个目录中放置的任何文件都将在开机时被复制。

所以,如果你在当前系统上有一组 iptables 脚本且想要在 Live 映像上使用,请这样复制:

# cp -r /etc/iptables ~/archlive/airootfs/etc

在用户 home 文件夹里放置文件的方法有些许不同。不要把它们放在 airootfs/home,而是在 airootfs/ 里创建 skel 目录并将其放置在那里。然后我们会将相关命令添加到 customize_airootfs.sh——我们要使用它在引导时复制文件以及梳理权限。

首先,创建 skel 目录

# mkdir ~/archlive/airootfs/etc/skel

现在,复制 'home' 的文件到 skel 目录。例如,对于 .bashrc

# cp ~/.bashrc ~/archlive/airootfs/etc/skel/

~/archlive/airootfs/root/customize_airootfs.sh 被执行,并且一个新用户已被创建, skel 目录中的文件将自动被复制到新的 home 文件夹中,并被设置正确的权限。

类似地,需要注意位于层次结构下方的特殊配置文件。作为示例,配置文件 /etc/X11/xinit/xinitrc 位于可能被安装包覆盖的路径上。要将 xinitrc 的配置文件放在 ~/archlive/airootfs/etc/skel/ ,然后修改 customize_airootfs.sh 以适当地移动。

引导器

默认的文件应该可以正常工作,所以你应该不需要去碰它。

由于 isolinux 的模块化性质,你能够使用很多插件,因为所有 *.c32 都被复制且可以可供您使用。看看syslinux 官方网站Archiso Git Repo。使用所述插件,便有可能做出更具视觉吸引力及复杂的菜单。参见 此处

登录管理器

通过启用您登录管理器的 systemd 服务来做到在引导时启动 X 。如果您知道哪一个 .service 文件需要软链接,那就太好了。如果不知道,你也可以轻松找出——如果你在创建 iso 所用的系统上使用相同的程序的话。只需使用:

 $ ls -l /etc/systemd/system/display-manager.service

现在在 ~/archlive/airootfs/etc/systemd/system 中创建相同的软链接。如 LXDM:

# ln -s /usr/lib/systemd/system/lxdm.service ~/archlive/airootfs/etc/systemd/system/display-manager.service

这将使您在 live 系统启用在系统上启动 LXDM。(This will enable LXDM at system start on your live system.)

或者,您也可以启用 airootfs/root/customize_airootfs.sh 中的服务以及其中启用的其他服务。

如果您希望图形环境在启动过程中自动启动,请确保编辑 airootfs/root/customize_airootfs.sh 并替换

systemctl set-default multi-user.target

systemctl set-default graphical.target

改变自动登录状态

Getty 的自动登录配置位于 airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf

您可以修改这个文件来更改自动登录用户:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin isouser --noclear %I 38400 linux

或者干脆删除它来禁用自动登录。

构建ISO

现在,你已经准备好把你的文件转换成 .iso,以便可以刻录到 CD 或 USB:

首先创建 out/ 目录(可选,如果没有的话 build.sh 将会创建它),

# mkdir ~/archlive/out/

然后在 ~/archlive 里面执行:

# ./build.sh -v

该脚本将现在下载并安装你指定的软件包到 work/*/airootfs,创建内核和 init 映像(initramfs),应用您的修改,并最终把 ISO 建立到 out/

重建ISO

在修改之后重建 ISO 不被官方支持。但是,通过应用两个步骤很容易。首先,您必须删除工作目录中的锁定文件:

# rm -v work/build.make_*

此外,需要编辑脚本 airootfs/root/customize_airootfs.sh,并在 useradd 行的开头添加 id 命令,如下所示。否则,重建将在此处停止,因为要添加的用户已经存在 [1]

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: typo? (Discuss in Talk:Archiso (简体中文)#)
! id arch && useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh arch

同时删除创建的用户或符号链接,如 /etc/sudoers 等持久性数据。

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: 报告需要删除或重置的更多数据。 (Discuss in Talk:Archiso (简体中文)#)

通过编辑 pacstrap 脚本(位于 /bin/pacstrap)并在第 361 行更改以下内容,可以稍微加快重建速度:

修改前:

if ! pacman -r "$newroot" -Sy "${pacman_args[@]}"; then

修改后:

if ! pacman -r "$newroot" -Sy --needed "${pacman_args[@]}"; then

这增加了初始引导的速度,因为它不必下载和安装任何已经安装的基础包。

使用ISO

有关各种选项,请参见 部分。

提示和技巧

在沒有互联网连接的情况下安装 Archiso

Tango-go-next.pngThis article or section is a candidate for moving to Installation without Internet access.Tango-go-next.png

Notes: 似乎这可以独立成一篇 (Discuss in Talk:Archiso)

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: 可以将 Arch 镜像上提供的 “bootstrap” 映像直接提取到目标磁盘,而不是从 archiso 复制文件。 你将得到一个最小的系统,而不需要处理 archiso 修改。 (Discuss in Talk:Archiso)

若你想在没有互联网连接或者你不想重复下载你想要的包的情况下安装 archiso(例如官方的每月发布版):

首先,按照安装指南,并跳过一些步骤(如连接到因特网),直到安装基本系统之前。

安装 archiso 到新的 root

复制 Live 环境的所有文件到新的根目录,而不是使用 pacstrap(这将尝试从远程存储库下载):

 # cp -ax / /mnt
注意: The option (-x)排除了一些特殊目录,因为它们不应该被复制到新的根目录。

然后,创建一些目录并复制内核映像到新的根,以保证新系统的完整性:

# cp -vaT /run/archiso/bootmnt/arch/boot/$(uname -m)/vmlinuz /mnt/boot/vmlinuz-linux

完成之后,请按Installation guide (简体中文)#Fstab所述生成 fstab。

Chroot 并配置基本系统

下一步,chroot 到您新安装的系统:

# arch-chroot /mnt /bin/bash

请注意,在您配置 locale、键盘映射等之前,你仍然需要为了避免延续 Live 环境的轨迹——或者说对 archiso 所做的一些不适用于非 Live 环境的修改——而做一些事情。

恢复 journald 的配置

archiso 的这个修改会导致日志存储在 RAM 上——它意味着在重启后日志便会丢失。为了解决这个问题,执行:

# sed -i 's/Storage=volatile/#Storage=auto/' /etc/systemd/journald.conf
删除特殊的 udev 规则

如果有任何有线网络接口,udev 的这个规则会自动启动dhcpcd。

# rm /etc/udev/rules.d/81-dhcpcd.rules
禁用和移除 archiso 创建的服务

有一些服务文件是为 Live 环境创建的,请禁用这些服务并移除文件——因为它们对于新系统来说没必要存在:

# systemctl disable pacman-init.service choose-mirror.service
# rm -r /etc/systemd/system/{choose-mirror.service,pacman-init.service,etc-pacman.d-gnupg.mount,getty@tty1.service.d}
# rm /etc/systemd/scripts/choose-mirror
移除 Live 环境的特殊脚本

在 live 系统中通过 archiso 脚本安装了一些脚本,这对于新系统是不必要的:

# rm /etc/systemd/system/getty@tty1.service.d/autologin.conf
# rm /root/{.automated_script.sh,.zlogin}
# rm /etc/mkinitcpio-archiso.conf
# rm -r /etc/initcpio
导入archlinux密钥

为了使用官方存储库,我们需要导入 archlinux 主密钥(Pacman/Package signing (简体中文)#初始化密钥环)。这一步通常是通过 pacstrap 完成的,但是可以通过

# pacman-key --init
# pacman-key --populate archlinux
注意: Keyboard or mouse activity is needed to generate entropy and speed-up the first step.
配置系统

现在,您可以按照 Installation guide (简体中文)#配置系统 中跳过的步骤(设置语言环境,时区,主机名等),并通过创建初始 ramdisk 来完成安装,如 Installation guide (简体中文)#Initramfs

启用图形登录(可选)

如果使用像GDM这样的显示管理器,则可能需要将 systemd 默认目标从 multi-user.target 更改为允许图形登录的目标。

# systemctl disable multi-user.target
# systemctl enable graphical.target

参阅

文档和教程

示例自定义模板