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

From ArchWiki
Jump to navigation Jump to search
Line 16: Line 16:
 
== 本文翻译进度 ==
 
== 本文翻译进度 ==
  
40%翻译为简体中文。翻译工程仍在继续。
+
100%翻译为简体中文。翻译工程已经结束。
  
 
== 安装和配置 ==
 
== 安装和配置 ==

Revision as of 02:58, 28 June 2014

zh-CN:Archiso

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

“Archiso”是一个能够建立功能全面的基于Arch Linux的Live CD和USB映像的bash脚本小工具。它是用来生成正式的CD / USB镜像的工具,但它是一个非常实用的工具,它可以被用来生成救援系统,安装盘,以及含有特殊利益的live CD/ DVD / USB系统和其他。简单地说,如果要将Arch放入其他可移动设备,它可以帮你做到这一点。 Archiso的核心,是mkarchiso。它的所有选项都记录在它的用法输出,所以mkarchiso的直接使用方法将不在这里讨论。相反,这篇wiki文章将在任何时候教你使用Archiso。

本文翻译进度

100%翻译为简体中文。翻译工程已经结束。

安装和配置

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

当我们开始之前, 我们需要 install archisoofficial repositories. 另外, archiso-gitAUR 能在 AUR中找到.

创建一个用于工作的目录, 实时镜像将会在这里被处理: ~/archlive 需要做精.

$ mkdir ~/archlive

更早安装到主机的Archiso脚本现在需要复制到你新建的工作目录内。

Archiso 配置了2个"profiles": relengbaseline.

如果您想要创建完全定制的Live Arch Linux,预安装所有您最喜爱的程序和配置,使用 ' releng '。

如果你只是想构建一个简易的Live镜像,那么使用“baseline”来配置一些十分基础的配置即可。

所以根据你的需要来决定使用 releng 还是baseline作为基础配置文件 .

# cp -r /usr/share/archiso/configs/PROFILE/ ~/archlive

如果你要使用 releng 配置文件来定制一个完全自定义的Live介质,那么你可以继续到:#配置我们的Live介质.

如果您使用“baseline”配置文件创建一个空白的映像,那么你不需要做任何的定制,可以继续到#构建ISO.

配置我们的Live介质

本节详细配置你将创建的映像,允许您定义包和配置你想要包含你的Live映像。

更改到我们早些时候创建的目录 (~/archlive/releng/ 如果你一直按照本向导在执行), 你将会看到大量的文件和目录 ; 我们只关注这些,主要是: packages.* -这是你列出一行一行你想要安装的包的地方, 和 根映像目录- 这是一个覆盖目录,你将在这里完成所有的定制工作。

一般来说,每一个管理任务,你通常会经过全新安装,除了安装程序包做可以编写脚本为 ~/archlive/releng/root-image/root/customize-root-image.sh. 它必须从新环境的角度写入, 所以脚本中的 / 意味着已被创建的Live ISO的根.

安装包

你会想在你的CD系统上创建一个你想安装的包的列表. 一个全是文件名列表的文件. 这是含有巨大特殊利益的Live CD,只需在packages.both指定你想要的包和烧录的镜像。 The packages.i686 和 packages.x86_64 文件允许你分别只在32位还是64位安装文件。

若你准备在没有互联网连接的设备上安装系统,我建议你安装"rsync",要不然就重新跳过下载它. (#安装)

自定义本地库

Merge-arrows-2.pngThis article or section is a candidate for merging with Pacman tips#自定义本地库.Merge-arrows-2.png

Notes: 移动一般信息 (e.g. repo tree) 到主文章. (Discuss in Talk:Archiso (简体中文)#)

你也可以 创建自定义本地资源库AUR/ABS准备自定义包. 当这样处理这两种架构的软件包,您应该遵循一定的目录顺序,才不会出现问题。 例如

  • ~/customrepo
    • ~/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 repo-add)
    • ~/customrepo/i686
      • ~/customrepo/i686/foo-i686.pkg.tar.xz
      • ~/customrepo/i686/customrepo.db.tar.gz
      • ~/customrepo/i686/customrepo.db (symlink created by repo-add)

然后您可以添加您的存储库把下列句子变成 ~/archlive/releng/pacman.conf, 上面的其他存储库条目 (优先):

# custom repository
[customrepo]
SigLevel = Optional TrustAll
Server = file:///home/user/customrepo/$arch

因此,构建脚本只是为了寻找适当的程序包。

如果不是这样你将运行到与此类似的错误消息:

error: failed to prepare transaction (package architecture is not valid)
:: package foo-i686 does not have a valid architecture

避免安装属于基础组的包

(为保证文章的准确性,本节使用英文原文) By, default /usr/bin/mkarchiso, a script which is used by ~/archlive/releng/build.sh, calls one of the arch-install-scripts named pacstrap without the -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 IgnorePkg line in ~/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:

  • Dirty: Add the -i flag to each line calling pacstrap in /usr/bin/mkarchiso.
  • Clean: Create a copy of /usr/bin/mkarchiso in which you add the flag and adapt ~/archlive/releng/build.sh so that it calls the modifed version of the mkarchiso script.
  • Advanced: Create a function for ~/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.

添加账户

用户管理可以在正常的安装过程中用相同的方式处理,除了你把你的命令脚本放到 ~/archlive/releng/root-image/root/customize-root-image.sh. 详情参阅 用户管理.

向映像里添加文件

注意: 你必须使用根权限做到这一点, 不改变任何你复制过来的文件的所有权, 根映像中的所有文件必须是root用户所有. 适当的所有制将在不久被解决.

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

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

# cp -r /etc/iptables ~/archlive/releng/root-image/etc

在用户home文件夹里放置文件的方法有些许不同. 别把它们放在root-image/home, 而是在root-image/里创建skel目录并将其放置在那里. 然后我们会将相关命令添加到 customize_root_image.sh(一个我们要使用复制道引导和梳理权限的文件)。

首先,创建 skel 目录; 确保你在 ~/archlive/releng/root-image/etc 目录 (如果这是你工作之地):

# cd ~/archlive/releng/root-image/etc && mkdir skel

现在,复制 'home' 文件到skel目录, 再使用根权限做所有事! e.g for .bashrc.

# cp ~/.bashrc ~/archlive/releng/root-image/etc/skel/

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

aitab

默认的文件应该没有问题,所以你应该不需要去碰它。

该aitab 文件保存有关必须创建的 mkarchiso 和 initramfs 阶段从 archiso 钩挂载的文件系统映像信息。

它包含一些定义映像行为的字段。

# <img>         <mnt>                 <arch>   <sfs_comp>  <fs_type>  <fs_size>
<img>
不带扩展名的映像名称 (.fs .fs.sfs .sfs).
<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% (估计为元数据开销) + 所需 %
注意: 有些组合是无效的. 这两个示例 sfs_compfs_type 都设置为 none

mkinitcpio.conf

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

一个'Initcpio ' 有必要创建一个系统,能够从 CD/DVD/USB,"唤醒"

默认列表将让你可以从CD/ DVD或USB设备的系统启动。硬件的自动检测和这种性质的东西在这里不做深入研究。只有必要让系统在它的foot部分 。“initcpio”真正属于这里,反正票友东东可以在引导系统上来完成。

引导载入程式

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

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

登录界面管理器

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

# systemctl disable nameofyourloginmanager

若要暂时关闭。接下来再次键入相同的命令并替换"禁用"与"启用"来重新激活它。立即打印它创建软链接的信息。现在更改为 ~/archiso/releng/root-image/etc/systemd/system,在那里创建相同的软链接。

一个例子 (请确保你是在 ~/archiso/releng/root-image/etc/systemd/system 或者将其添加到该命令):

# ln -s /usr/lib/systemd/system/lxdm.service display-manager.service

这将启动在系统启动时在您的Live系统上的 LXDM。

改变自动登录状态

对于Getty的自动登录的配置位于root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf下。

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

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

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

构建ISO

现在,你可以准备把你的文件转换成.iso 然后可以刻录到 CD 或 USB: 在你工作的目录内, 不是 ~/archlive/releng, 就是 ~/archlive/baseline, 执行:

# ./build.sh -v

该脚本将现在下载并安装你指定的软件包到work/*/root-image,创建内核和init图像,将您修改生成并最终建立ISO到/。

使用ISO

CD

就是把iso刻录到光碟. 如你所愿,你可以看看 CD Burning.

USB

参见 USB Flash Installation Media.

grub4dos

Grub4dos 是一个实用程序,可以用于创建多重引导的 usbs,可以从相同的 usb 棒启动多个 linux 发行版。

要用GRUB4DOS引导已安装在USB上生成的系统上,循环挂载ISO和整个/arch 目录到 USB根. 然后从grub4dos编辑 menu.lst 文件 (必须在USB根上) 并添加:

title Archlinux x86_64
kernel /arch/boot/x86_64/vmlinuz archisolabel=<your usb label>
initrd /arch/boot/x86_64/archiso.img

根据需要,更改 x86_64 部分并把你真实的 usb 标签放在这儿.

安装

引导创建的 CD/DVD/USB. 如果你想安装你创建的Archiso -正如它所是-,有几个方法可以做到这一点, 但我们下面的新手指南主要是这两种方式.

如果你没有互联网连接在该 PC 上,, 或者你不想再次下载你想要的所有包, 跟随指南, 当你到 新手指南#安装基础系统, 不是用下载, 请使用: 用 rsync 进行完全系统备份. (详情参见: Talk:Archiso)

你也可以试试: Archboot, 图形界面安装程式.

另请参见