Install Arch Linux from existing Linux (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale.pngЭта статья или раздел нуждается в переводеTango-preferences-desktop-locale.png

Примечания: Устаревший контент был заменён английским на момент 21 февраля 2015. (обсуждение: Talk:Install Arch Linux from existing Linux (Русский)#)

Этот документ описывает bootstrapping process, нужный для того, чтобы установить Arch Linux из уже работающего хоста Linux. После bootstrapping, установка продолжается так, как описано в руководстве по установке Arch Linux.

Установка Arch Linux из-под другого Linux полезна для:

Цель процедуры начальной загрузки в том, чтобы настроить окружение, из которого можно будет запустить arch-install-scripts (содержит такие скрипты как pacstrap и arch-root). Установить arch-install-scripts нужно на самой хост-системе или настройкой chroot основанного на Arch Linux.

Если хост работает под Arch Linux, сразу установите arch-install-scripts.

Примечание: Этот гайд расчитан на то, что имеющийся хост может запускать программы архитектуры нового Arch Linux. В случае с x86_64 хостом, можно даже использовать i686-pacman при сборке 32-битного окружения chroot. Смотрите Arch64 - установка встроенной 32-битной системы[archived page].

Arch Linux-based chroot

Идея состоит в том, чтобы как бы запустить Arch Linux внутри уже имеющейся системы. Настоящая установка, которая будет содержаться внутри chroot, будет затем запущена из этой Arch системы. Есть два способа настроить и войти в chroot, они представлены ниже.

Примечание: Хост-система должна использовать Linux 2.6.32 или новее.
Примечание: Используйте только один из двух способов, и не забудьте дочитать эту статью до конца, чтобы закончить установку.

Создаём 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
Примечание: Если ваша хост-система — x86_64, а образ boostrap — i686, то также подправьте /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 прямо внутри хост-системы без надобности в его настройки.

Примечание: Перед тем как продолжить, удостоверьтесь, что у вас последняя версия squashfs на хост-системе. Иначе будут ошибки типа: 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 essential 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.