Install from existing Linux (简体中文)
本指南给出了从当前 Linux 发行版安装 Arch Linux 所需的准备步骤。 准备完成后的安装参考Installation guide (简体中文)。
从当前 Linux 发行版安装 Arch Linux 对以下情形有所帮助:
- 远程安装 Arch Linux,如一台(虚拟的)根服务器
- 无需 LiveCD 替换当前 Linux 发行版(参见#无 LiveCD 替换当前系统)
- 创建基于 Arch Linux 的新 Linux 发行版或 LiveCD
- 创建 Arch Linux 的 chroot 环境,如可为 Docker 基础容器创建
- 为无盘机器准备 rootfs-over-NFS
这些准备步骤的目的在于为搭建一个 arch-install-scripts(如 pacstrap
和 arch-root
)可运行的环境。
这个目的可通过在当前系统安装 arch-install-scripts 或搭建基于 Arch Linux-based 的 chroot 环境达成。
若当前发行版为 Arch Linux,可直接安装 arch-install-scripts。
Contents
基于 Arch Linux 的 chroot
主意是在当前系统内运行 Arch Linux。 实际安装是在 Arch Linux 内进行的。 该嵌套系统包含于 chroot。 以下为搭建并进入 chroot 的方法,从简单到复杂。
创建 chroot
方法一:使用 Bootstrap 镜像(推荐)
从镜像站下载 bootstrap 镜像:
$ curl -O http://mirror.bjtu.edu.cn/archlinux/iso/2015.06.01/archlinux-bootstrap-2015.06.01-x86_64.tar.gz
解压 tarball:
# cd /tmp # tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-2015.06.01-x86_64.tar.gz
选择软件仓库服务器:
# nano /tmp/root.x86_64/etc/pacman.d/mirrorlist
进入 chroot
- 若安装了4或更高版本的 bash:
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
- 若无,执行:
# cd /tmp/root.x86_64 # cp /etc/resolv.conf etc # mount --rbind /proc proc # mount --rbind /sys sys # mount --rbind /dev dev # mount --rbind /run run (假设 /run 存在) # chroot /tmp/root.x86_64 /bin/bash
方法二:使用 LiveCD 镜像
挂载最新的 Arch Linux 安装介质并 chroot 是可能的。这种方法为当前系统提供了可运作的 Arch Linux 安装程序而无需另外准备。
- 依据构架的不同,根镜像能在镜像站的 arch/x86_64/ 或 arch/i686/ 目录下找到。squashfs 格式无法编辑,因此需要解压出根镜像并挂载。
- 解压,运行
# unsquashfs -d /squashfs-root root-image.fs.sfs
- 以 loop 挂载根镜像
# mkdir /arch # mount -o loop /squashfs-root/root-image.fs /arch
- chroot 前需设置些挂载点并为网络连接复制 resolv.conf。
# mount -t proc none /arch/proc # mount -t sysfs none /arch/sys # mount -o bind /dev /arch/dev # mount -o bind /dev/pts /arch/dev/pts # pacman 所需(用于签名检查) # cp -L /etc/resolv.conf /arch/etc # 网络连接所需
- 准备完毕,chroot 入新系统
# chroot /arch bash
使用 chroot 环境
初始化 pacman 密匙环
开始安装前,需要设置 pacman 密匙。执行以下命令前请阅读pacman-key_(简体中文)#初始化密匙环以理解其对熵的要求:
# pacman-key --init # pacman-key --populate archlinux
安装
请按照Installation guide (简体中文)中的挂载分区和安装基本系统小节进行安装。
基于 Debian 的当前系统
在基于 Debian 的当前系统上,pacstrap
会发生以下错误:
# pacstrap /mnt base # ==> Creating install root at /mnt # mount: mount point /mnt/dev/shm is a symbolic link to nowhere # ==> ERROR: failed to setup API filesystems in new root
Debian 中,/dev/shm 指向 /run/shm。而在基于 Arch 的 chroot 中,/run/shm 并不存在,因而链接失效。创建 /run/shm 目录可修复此错误:
# mkdir /run/shm
配置系统
请按照Installation guide (简体中文)中的挂载分区及余下小节完成配置。
无 LiveCD 替换当前系统
在硬盘上划分出 ~650MB 的空闲空间,如分割 swap 分区。若空闲空间小于 600 MB,则须筛选软件包,恰好使系统能在该分区上运行建立网络连接。这意味着需要为 pacstrap 通过选项 -c 指定软件包,以免占满了宝贵的空间。
一旦完成安装,重启进入该系统并rsync 整个系统至主分区。 重启前须修改引导器配置。