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

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

From ArchWiki

Ссылки по теме

- Install from SSH (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Эта статья или раздел нуждается в переводе

Примечания: Устаревший контент был заменён английским на момент 21 февраля 2015. (обсуждение: Talk:Install 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. В случае с x86_64 хостом, можно даже использовать i686-pacman при сборке 32-битного окружения chroot. Смотрите Arch64 - установка встроенной 32-битной системы.

## 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

Образ i686:

     $ curl -O https://mirrors.kernel.org/archlinux/iso/2016.04.01/archlinux-bootstrap-2016.04.01-i686.tar.gz

Внимание! Ссылки могут оказаться нерабочими. В этом случае перейдите по адресу 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-key#Initializing the keyring, чтобы узнать 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[broken link: invalid section] to the primary partition. Fix the bootloader configuration before rebooting.

Categories:

- Installation process (Русский)
- Русский

Hidden category:

- Pages with broken section links