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

From ArchWiki
Jump to: navigation, search

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

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

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

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

Примечания: Устаревший контент был заменён английским на момент 21 февраля 2015. (обсуждение: Talk:Install 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-битной системы.

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