UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

186 lines (115 loc) 14 kB
Ссылки по теме * [Install from SSH (Русский)](/index.php/Install_from_SSH_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Install from SSH (Русский)") Этот документ описывает bootstrapping process, нужный для того, чтобы установить Arch Linux из уже работающего хоста Linux. После bootstrapping, установка продолжается так, как описано в [руководстве по установке](/index.php/Installation_guide_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Installation guide (Русский)") Arch Linux. Установка Arch Linux из-под другого Linux полезна для: * беспроводной установки Arch Linux, например для виртуального сервера * замены существующего Linux без LiveCD (смотрите [#Замена уже существующей системы без LiveCD](#.D0.97.D0.B0.D0.BC.D0.B5.D0.BD.D0.B0_.D1.83.D0.B6.D0.B5_.D1.81.D1.83.D1.89.D0.B5.D1.81.D1.82.D0.B2.D1.83.D1.8E.D1.89.D0.B5.D0.B9_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D0.B1.D0.B5.D0.B7_LiveCD)) * создания нового дистрибутива Linux или LiveCD основанного на Arch Linux * создания chroot окружения Arch Linux, например для контейнеров Docker * [rootfs-over-NFS для бездисковых систем](/index.php/Diskless_network_boot_NFS_root "Diskless network boot NFS root") Цель процедуры начальной загрузки в том, чтобы настроить окружение, из которого можно будет запустить [arch-install-scripts](https://www.archlinux.org/packages/?name=arch-install-scripts) (содержит такие скрипты как `pacstrap` и `arch-root`). Установить [arch-install-scripts](https://www.archlinux.org/packages/?name=arch-install-scripts) нужно на самой хост-системе или настройкой chroot основанного на Arch Linux. Если хост работает под Arch Linux, сразу установите [arch-install-scripts](https://www.archlinux.org/packages/?name=arch-install-scripts). **Примечание:** Этот гайд расчитан на то, что имеющийся хост может запускать программы архитектуры нового Arch Linux. В случае с x86_64 хостом, можно даже использовать i686-pacman при сборке 32-битного окружения chroot. Смотрите [Arch64 - установка встроенной 32-битной системы](/index.php/Arch64_Install_bundled_32bit_system "Arch64 Install bundled 32bit system"). ## Contents * [1 Arch Linux-based chroot](#Arch_Linux-based_chroot) * [1.1 Создаём chroot](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D1.91.D0.BC_chroot) * [1.1.1 Способ 1: Использование Bootstrap образа (рекомендуется)](#.D0.A1.D0.BF.D0.BE.D1.81.D0.BE.D0.B1_1:_.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_Bootstrap_.D0.BE.D0.B1.D1.80.D0.B0.D0.B7.D0.B0_.28.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D1.83.D0.B5.D1.82.D1.81.D1.8F.29) * [1.1.2 Способ 2: Используя образ LiveCD](#.D0.A1.D0.BF.D0.BE.D1.81.D0.BE.D0.B1_2:_.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D1.8F_.D0.BE.D0.B1.D1.80.D0.B0.D0.B7_LiveCD) * [1.2 Используем наше chroot окружение](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D0.B5.D0.BC_.D0.BD.D0.B0.D1.88.D0.B5_chroot_.D0.BE.D0.BA.D1.80.D1.83.D0.B6.D0.B5.D0.BD.D0.B8.D0.B5) * [1.2.1 Начальная настройка хранилища ключей pacman](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D1.85.D1.80.D0.B0.D0.BD.D0.B8.D0.BB.D0.B8.D1.89.D0.B0_.D0.BA.D0.BB.D1.8E.D1.87.D0.B5.D0.B9_pacman) * [1.2.2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0) * [1.2.2.1 Хост Debian](#.D0.A5.D0.BE.D1.81.D1.82_Debian) * [1.2.2.2 Хост Fedora](#.D0.A5.D0.BE.D1.81.D1.82_Fedora) * [1.2.3 Настройка системы](#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B) * [2 Замена уже существующей системы без LiveCD](#.D0.97.D0.B0.D0.BC.D0.B5.D0.BD.D0.B0_.D1.83.D0.B6.D0.B5_.D1.81.D1.83.D1.89.D0.B5.D1.81.D1.82.D0.B2.D1.83.D1.8E.D1.89.D0.B5.D0.B9_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D0.B1.D0.B5.D0.B7_LiveCD) ## Arch Linux-based chroot Идея состоит в том, чтобы как бы запустить Arch Linux внутри уже имеющейся системы. Настоящая установка, которая будет содержаться внутри chroot, будет затем запущена из этой Arch системы. Есть два способа настроить и войти в chroot, они представлены ниже. **Примечание:** Хост-система должна использовать Linux 2.6.32 или новее. **Примечание:** Используйте только один из двух способов, и не забудьте дочитать эту статью до конца, чтобы закончить установку. ### Создаём chroot #### Способ 1: Использование Bootstrap образа (рекомендуется) Скачиваем образ bootstrap с [любого желаемого зеркала](https://www.archlinux.org/download), либо сразу используя прямую ссылку на нужный вам образ (с зеркала kernel.org): Образ x86_64: ``` $ curl -O [https://mirrors.kernel.org/archlinux/iso/2016.04.01/archlinux-bootstrap-2016.04.01-x86_64.tar.gz](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/2016.04.01/archlinux-bootstrap-2016.04.01-i686.tar.gz) ``` Внимание! Ссылки могут оказаться нерабочими. В этом случае перейдите по адресу [https://mirrors.kernel.org/archlinux/iso/](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](http://squashfs.sourceforge.net/) на хост-системе. Иначе будут ошибки типа: `FATAL ERROR aborting: uncompress_inode_table: failed to read block`. * Корневой образ можно скачать с одного из [зеркал](https://www.archlinux.org/download) в папке 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](/index.php/Change_root "Change root") 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](/index.php/Pacman-key#Initializing_the_keyring "Pacman-key"), чтобы узнать entropy requirements: ``` # pacman-key --init # pacman-key --populate archlinux ``` #### Установка Следуйте [Installation guide#Format the partitions](/index.php/Installation_guide#Format_the_partitions "Installation guide") и [Installation guide#Install the base packages](/index.php/Installation_guide#Install_the_base_packages "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-based chroot не существует, поэтому ссылка не рабочая. Чтобы исправить это, просто создайте каталог `/run/shm`: ``` # mkdir /run/shm ``` ##### Хост Fedora На хостах Fedora и Live USB, если у вас не получается сгенерировать ваш `[fstab](/index.php/Fstab_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Fstab (Русский)")` с помощью `genfstab`, то удалите из fstab одинаковые записи и везде опции `seclabel` (это опция специфична для Fedora и поэтому не даст вам загрузиться). #### Настройка системы С этого момента просто следуйте согласно разделам начиная с «[Монтирование разделов](/index.php/Installation_guide_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9C.D0.BE.D0.BD.D1.82.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.80.D0.B0.D0.B7.D0.B4.D0.B5.D0.BB.D0.BE.D0.B2 "Installation guide (Русский)")» из [руководства по установке Arch Linux](/index.php/Installation_guide "Installation guide"). ## Замена уже существующей системы без LiveCD Освободите ~650МБ, например, переформатировав существующий swap-раздел (после окончания установки, можете обратно создать swap). Если не можете столько освободить, выясните точно, какие пакеты группы base вам понадобятся для того, чтобы get a system с работающим интернетом and running in the temporary partition. То есть надо будет ясно указать каждый пакет для pacstrap. И ещё надо указать -c, чтобы пакеты скачивались на хост-систему, дабы избежать недостатка свободного места. После того как установили, перезагрузитесь в свою новую систему, затем [rsync the entire system](/index.php/Full_system_backup_with_rsync#With_a_single_command "Full system backup with rsync") to the primary partition. Fix the bootloader configuration before rebooting.