Install Arch Linux from existing Linux (Русский)
Этот документ описывает bootstrapping process, нужный для того, чтобы установить Arch Linux из уже работающего хоста Linux. После bootstrapping, установка продолжается так, как описано в руководстве по установке Arch Linux.
Установка Arch Linux из-под другого Linux полезна для:
- беспроводной установки Arch Linux, например для виртуального сервера
- замены существующего Linux без LiveCD (смотрите #Замена уже существующей системы без LiveCD)
- создания нового дистрибутива Linux или LiveCD основанного на Arch Linux
- создания chroot окружения Arch Linux, например для контейнеров Docker
- rootfs-over-NFS для бездисковых систем
Цель процедуры начальной загрузки в том, чтобы настроить окружение, из которого можно будет запустить arch-install-scripts (содержит такие скрипты как pacstrap
и arch-root
). Установить arch-install-scripts нужно на самой хост-системе или настройкой chroot основанного на Arch Linux.
Если хост работает под Arch Linux, сразу установите arch-install-scripts.
Arch Linux-based chroot
Идея состоит в том, чтобы как бы запустить Arch Linux внутри уже имеющейся системы. Настоящая установка, которая будет содержаться внутри chroot, будет затем запущена из этой Arch системы. Есть два способа настроить и войти в chroot, они представлены ниже.
Создаём chroot
Способ 1: Использование Bootstrap образа (рекомендуется)
Скачиваем образ bootstrap с любого желаемого зеркала, либо сразу используя прямую ссылку на нужный вам образ (с зеркала kernel.org):
Образ x86_64:
$ curl -O https://mirrors.kernel.org/archlinux/iso/2016.04.01/archlinux-bootstrap-2016.04.01-x86_64.tar.gz[устаревшая ссылка 2020-08-02]
Образ i686:
$ curl -O https://mirrors.kernel.org/archlinux/iso/2016.04.01/archlinux-bootstrap-2016.04.01-i686.tar.gz[устаревшая ссылка 2020-08-02]
Внимание! Ссылки могут оказаться нерабочими. В этом случае перейдите по адресу https://mirrors.kernel.org/archlinux/iso/ и найдите образ там
Распаковываем его:
# cd /tmp # tar xzf <путь-к-каталогу-где-образ>/archlinux-bootstrap-2016.04.01-*.tar.gz
Выбираем подходящий для вашего интернета сервер, откуда будут загружаться основные репозитории:
# nano /tmp/root.*/etc/pacman.d/mirrorlist
/tmp/root.i686/etc/pacman.conf
, ясно указав Architecture = i686
, чтобы pacman качал пакеты под архитектуру i686.Войдём в chroot
- Если установлен bash 4 или новее, то:
# /tmp/root.*/bin/arch-chroot /tmp/root.*/
- Иначе:
# cd /tmp/root.* # 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.* /bin/bash
Способ 2: Используя образ LiveCD
Можно смонтировать корневой образ последнего установочного диска Arch Linux и затем заchroot'ить туда. Плюс этого способа в том, что у вас будет сразу рабочий Arch Linux installation прямо внутри хост-системы без надобности в его настройки.
FATAL ERROR aborting: uncompress_inode_table: failed to read block
.- Корневой образ можно скачать с одного из зеркал в папке arch/x86_64/ либо arch/i686/, смотря какую архитектуру хотите. Образ имеет формат squashfs, который является read-only, поэтому нам надо распаковать его и смонтировать корневой образ (root-image.fs).
- Чтобы распаковать корневой образ, надо
# unsquashfs -d /squashfs-root root-image.fs.sfs
- Теперь смонтируем его с помощью опции loop
# mkdir /arch # mount -o loop /squashfs-root/root-image.fs /arch
- Перед тем как chrooting to it, нужно смонтировать некоторые виртуальные системные разделы, а затем скопировать 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
- Теперь всё готово, чтобы to chroot в только что установленное окружение Arch
# chroot /arch bash
Используем наше chroot окружение
Начальная настройка хранилища ключей pacman
Перед установкой, ключи pacman должны быть настроены. Перед тем как вводить следующие две команды, можете почитать pacman/Подпись пакета#Инициализация связки ключей, чтобы узнать entropy requirements:
# pacman-key --init # pacman-key --populate archlinux
Установка
Следуйте Installation guide#Format the partitions и Installation guide#Install the base packages[ссылка недействительна: раздел не найден].
Хост 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-based chroot не существует, поэтому ссылка не рабочая. Чтобы исправить это, просто создайте каталог /run/shm
:
# mkdir /run/shm
Хост Fedora
На хостах Fedora и Live USB, если у вас не получается сгенерировать ваш fstab
с помощью genfstab
, то удалите из fstab одинаковые записи и везде опции seclabel
(это опция специфична для Fedora и поэтому не даст вам загрузиться).
Настройка системы
С этого момента просто следуйте согласно разделам начиная с «Монтирование разделов» из руководства по установке Arch Linux.
Замена уже существующей системы без LiveCD
Освободите ~650МБ, например, переформатировав существующий swap-раздел (после окончания установки, можете обратно создать swap). Если не можете столько освободить, выясните точно, какие пакеты группы base вам понадобятся для того, чтобы get a system с работающим интернетом and running in the temporary partition. То есть надо будет ясно указать каждый пакет для pacstrap. И ещё надо указать -c, чтобы пакеты скачивались на хост-систему, дабы избежать недостатка свободного места.
После того как установили, перезагрузитесь в свою новую систему, затем rsync the entire system[ссылка недействительна: раздел не найден] to the primary partition. Fix the bootloader configuration before rebooting.