Install Arch Linux from existing Linux (Français)

État de la traduction:
Cet article est la version francophone de
Install Arch Linux from existing Linux
. Date de la dernière traduction: 2022-05-22. Vous pouvez aider à synchroniser la traduction s'il y a eu des
changements
dans la version anglaise.
Articles apparentés
Install from SSH
Ce document décrit le processus d'amorçage nécessaire pour installer Arch Linux à partir d'un système hôte Linux en fonctionnement.
Après l'amorçage, l'installation se déroule comme décrit dans le
Guide d'installation
.
Installer Arch Linux à partir d'un système Linux en fonctionnement est utile pour :
installer Arch Linux à distance, par exemple un serveur racine (virtuel)
remplacer un Linux existant sans LiveCD (voir
#Remplacer le système existant sans LiveCD
)
créer une nouvelle distribution Linux ou
LiveMedia basé sur Arch Linux
.
créer un environnement chroot Arch Linux, par exemple pour un conteneur de base Docker
rootfs-over-NFS for diskless machines
.
Le but de la procédure d'amorçage est de mettre en place un environnement à partir duquel les scripts de
arch-install-scripts
(tels que
pacstrap
et
arch-chroot
) peuvent être exécutés.
Si le système hôte utilise Arch Linux, il suffit d'installer
arch-install-scripts
. Si le système hôte fonctionne sous une autre distribution Linux, vous devrez d'abord configurer un chroot basé sur Arch Linux.
Note
Ce guide exige que le système hôte existant soit capable d'exécuter les programmes de la nouvelle architecture Arch Linux cible. Cela signifie qu'il doit s'agir d'un hôte x86_64.
Attention
Veuillez vous assurer que vous comprenez chaque étape avant de procéder. Il est facile de détruire votre système ou de perdre des données critiques, et votre fournisseur de services vous facturera probablement beaucoup pour vous aider à récupérer.
Sauvegarde et préparation
Sauvegardez toutes vos données, y compris les courriers électroniques, les serveurs Web, etc. Ayez toutes les informations à portée de main. Conservez toutes les configurations de vos serveurs, les noms d'hôtes, etc.
Voici une liste des données dont vous aurez probablement besoin :
adresse IP
nom(s) d'hôte (note : les serveurs racines font souvent partie du domaine du fournisseur, vérifiez ou sauvegardez votre
/etc/hosts
avant de le supprimer)
serveur DNS (vérifiez
/etc/resolv.conf
)
Clés SSH (si d'autres personnes travaillent sur votre serveur, elles devront accepter de nouvelles clés sinon. Cela inclut les clés de votre Apache, de vos serveurs de messagerie, de votre serveur SSH et autres).
Infos sur le matériel (carte réseau, etc. Référez-vous à votre
/etc/modules.conf
pré-installé)
Les fichiers de configuration de Grub.
En général, c'est une bonne idée d'avoir une copie locale de votre répertoire original
/etc
sur votre disque dur local.
Depuis un hôte exécutant Arch Linux
Installez le paquet
arch-install-scripts
.
Suivez
Guide d'installation#Montage des systèmes de fichiers
pour monter le système de fichiers qui sera utilisé pour le répertoire racine ainsi que tous les autres points de montage nécessaires. Si vous utilisez déjà le répertoire
/mnt
pour autre chose, créez simplement un autre répertoire tel que
/mnt/install
et utilisez-le comme base de point de montage pour le reste de l'installation.
À ce stade, Arch Linux peut soit être installé à partir de zéro, soit refléter l'installation de l'hôte. Les deux options sont décrites ci-après.
Créer une nouvelle installation d'Arch
Suivez
Guide d'installation#Installation
.
Dans la procédure, la première étape,
Guide d'installation#Sélection du miroir
, peut être sautée puisque l'hôte devrait déjà avoir une liste de miroirs correcte.
Astuce
Afin d'éviter de retélécharger tous les paquets, envisagez de suivre
Pacman (Français)/Tips and tricks (Français)#Cache pacman partagé en réseau
, ou utilisez l'option
-c
de
pacstrap
pour utiliser le cache des paquets de votre machine hôte.
Lorsque le chargeur d'amorçage GRUB est utilisé, le
grub-mkconfig
peut détecter les périphériques de manière incorrecte. Il en résultera
Error:no such device
lors de la tentative d'amorçage à partir de la clé. Pour résoudre ce problème, depuis l'hôte exécutant Arch Linux, montez les partitions nouvellement installées,
arch-chroot
sur la nouvelle partition, puis installez et configurez GRUB. La dernière étape peut nécessiter la désactivation de
lvmetad
dans
/etc/lvm/lvm.conf
en définissant
use_lvmetad=0
.
Créer une copie d'une installation Arch existante
Il est possible de répliquer une installation Arch Linux existante en copiant le système de fichiers hôte sur la nouvelle partition et en y apportant quelques ajustements pour la rendre amorçable et unique.
La première étape consiste à copier les fichiers hôtes dans la nouvelle partition montée, pour cela, envisagez d'utiliser l'approche exposée dans
Rsync (Français)#Clonage du système de fichiers
.
Ensuite, suivez la procédure décrite dans
Guide d'installation#Configuration du système
avec quelques avertissements et étapes supplémentaires :
Guide d'installation#Heure
,
Guide d'installation#Locales
et
Guide d'installation#Mot de passe administrateur
peuvent être ignorés.
Guide d'installation#Initramfs
peut être nécessaire en particulier si vous changez de système de fichiers, par exemple de
ext4
à
Btrfs
.
Concernant
Guide d'installation#Installation d'un chargeur d'amorçage
, il est nécessaire de réinstaller le chargeur d'amorçage
Supprimer
/etc/machine-id
pour qu'un nouveau, unique, soit généré au prochain démarrage.
Si l'installation miroir d'Arch peut être utilisée dans une configuration différente ou avec un autre matériel, envisagez les opérations supplémentaires suivantes :
Utilisez la mise à jour du
microcode
du processeur adaptée au système cible lors de l'étape
Guide d'installation#Installation d'un chargeur d'amorçage
.
Si une
Xorg (Français)#Configuration
spécifique était présente sur l'hôte et peut être incompatible avec le système cible, suivez
Moving an existing install into (or out of) a virtual machine#Disable any Xorg-related files
.
Effectuez tout autre ajustement approprié au système cible, comme la reconfiguration du réseau ou de l'audio.
Depuis un hôte exécutant une autre distribution Linux
Il existe de nombreux outils qui automatisent une grande partie des étapes décrites dans les sous-sections suivantes. Consultez leurs pages d'accueil respectives pour des instructions détaillées.
arch-bootstrap
(Bash)
digitalocean-debian-to-arch
(repartitionnement du disque, spécifique à DigitalOcean)
image-bootstrap
(Python)
vps2arch
(Bash)
archbashstrap
(Bash)
La méthode manuelle est présentée dans les sous-sections suivantes. L'idée est soit de faire fonctionner
pacman
directement sur le système hôte, soit de faire tourner un système Arch à l'intérieur du système hôte, l'installation réelle étant exécutée à partir du système Arch. Le système imbriqué est contenu dans un chroot.
Utiliser pacman depuis le système hôte
Pacman
peut être compilé sur la plupart des distributions Linux, et utilisé directement sur le système hôte pour amorcer Arch Linux. Les
arch-install-scripts
devraient s'exécuter sans problème directement à partir des sources téléchargées sur toute distribution récente.
Certaines distributions fournissent un paquet pour
pacman
et/ou
arch-install-scripts
dans leurs dépôts officiels qui peuvent être utilisés à cette fin. En juillet 2020, Void Linux est connu pour fournir le paquet
pacman
, et Alpine Linux et Fedora sont connus pour fournir à la fois
pacman
et
arch-install-scripts
.
Création d'un chroot
Deux méthodes pour configurer et entrer dans le chroot sont présentées ci-dessous, de la plus simple à la plus compliquée. Ne sélectionnez qu'une seule des deux méthodes. Ensuite, continuez à
#Utilisation d'un environnement chroot
.
Méthode A : Utilisation de l'image bootstrap (recommandée)
Téléchargez l'image bootstrap depuis un
mirror
dans
/tmp
. Vous pouvez également télécharger la signature (même URL avec
.sig
ajouté) et
vérifier avec GnuPG
.
Extrayez l'archive tarball :
# tar xzf <path-to-bootstrap-image>/archlinux-bootstrap-*-x86_64.tar.gz --numeric-owner
Prenez note de l'option finale
--numeric-owner
, qui est importante pour préserver les numéros UID et GID corrects des fichiers extraits dans le cas où votre système Linux existant utilise des numéros différents de ceux d'Arch Linux.
Sélectionnez un serveur de dépôt en éditant
/tmp/root.x86_64/etc/pacman.d/mirrorlist
.
Entrez dans le chroot :
Si bash 4 ou plus est installé, et que
unshare
prends en charge les options
--fork
et
--pid
:
# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/
Sinon, exécutez les commandes suivantes :
# mount --bind /tmp/root.x86_64 /tmp/root.x86_64
# cd /tmp/root.x86_64
# cp /etc/resolv.conf etc
# mount -t proc /proc proc
# mount --make-rslave --rbind /sys sys
# mount --make-rslave --rbind /dev dev
# mount --make-rslave --rbind /run run # (en supposant que /run existe sur le système)
# chroot /tmp/root.x86_64 /bin/bash
Méthode B : Utilisation de l'image LiveCD
Il est possible de monter l'image racine du dernier support d'installation d'Arch Linux et d'y accéder par chroot.  Cette méthode a l'avantage de fournir une installation d'Arch Linux fonctionnelle au sein même du système hôte sans avoir besoin de le préparer en installant des paquets spécifiques.
Note
Avant de procéder, assurez-vous que la dernière version de
squashfs
est installée sur le système hôte. Sinon, des erreurs comme celles qui suivent sont à prévoir :
FATAL ERROR aborting : uncompress_inode_table : failed to read block}.
L'image racine peut être trouvée sur l'un des
mirrors
sous
iso/latest/arch/x86_64/
. Le format squashfs n'est pas modifiable, donc nous déséquilibrons l'image racine et la montons.
Pour déséquiper l'image racine, exécutez
# unsquashfs airootfs.sfs
Sélectionnez un serveur de dépôt en éditant
squashfs-root/etc/pacman.d/mirrorlist
.
Avant de
chrooter
vers l'image racine non squashfs, nous devons configurer quelques points de montage et copier le
resolv.conf
pour le réseau.
# mount --bind squashfs-root squashfs-root
# mount -t proc none squashfs-root/proc
# mount -t sysfs none squashfs-root/sys
# mount -o bind /dev squashfs-root/dev
# mount -o bind /dev/pts squashfs-root/dev/pts ## important pour pacman (pour la vérification de la signature)
# cp -L /etc/resolv.conf squashfs-root/etc ## ceci est nécessaire pour utiliser le réseau dans le chroot.
Maintenant, tout est prêt pour le chroot dans l'environnement Arch nouvellement installé :
# chroot squashfs-root bash
Utilisation d'un environnement chroot
L'environnement bootstrap est vraiment dépouillé (pas de
nano
ou
lvm2
). Par conséquent, nous devons configurer pacman afin de télécharger les autres paquets nécessaires.
Initialisation du trousseau de clés pacman
Avant de commencer l'installation, les trousseaux de clés pacman doivent être configurés. Avant d'exécuter les deux commandes suivantes, lisez
Pacman (Français)/Package signing (Français)#Initialisation du trousseau de clés
pour comprendre les exigences en matière d'entropie :
# pacman-key --init
# pacman-key --populate
Astuce
Si vous devez exécuter
pacman-key --init
sur un ordinateur qui ne génère pas beaucoup d'entropie (par exemple, un serveur sans affichage), la génération de clés peut prendre beaucoup de temps. Pour générer une pseudo-entropie, installez
haveged
ou
rng-tools
sur le système hôte
et démarrez le service correspondant avant d'exécuter
pacman-key --init
. (L'installation de ces services sur le système cible ne fonctionnera pas, puisque
systemd
refuse de démarrer les services à partir d'un chroot
et que vous devez initialiser le trousseau de clés pacman avant d'installer tout paquet).
Si vous préférez générer de l'entropie à travers l'activité du système et décidez d'exécuter
ls -Ra /
dans une autre console (TTY, terminal, session SSH...), n'ayez pas peur de l'exécuter en boucle plusieurs fois : cinq ou six exécutions depuis l'hôte se sont avérées suffisantes pour générer suffisamment d'entropie sur un serveur distant sans affichage.
Téléchargement des outils de base
Refresh the package lists
et
install
ce dont vous avez besoin :
base-devel
,
parted
etc.
Note
Lorsque vous essayez d'installer des paquets avec pacman, vous pouvez obtenir
error : could not determine cachedir mount point /var/cache/pacman/pkg
. Pour contourner ce problème, exécutez
mount --bind
directory-to-livecd-or-bootstrap
directory-to-livecd-or-bootstrap
avant le chrootage. Consultez
FS#46169
.
Conseils d'installation
Vous pouvez maintenant passer à
Guide d'installation#Montage des systèmes de fichiers
et suivre le reste du
Guide d'installation
.
Certains systèmes hôtes ou configurations peuvent nécessiter certaines étapes supplémentaires. Consultez les sections ci-dessous pour obtenir des conseils.
Hôte basé sur Debian
/dev/shm
Sur certains systèmes hôtes basés sur Debian,
pacstrap
peut produire l'erreur suivante :
# pacstrap /mnt base
==> Création de la racine de l'installation sur /mnt
mount : le point de montage /mnt/dev/shm est un lien symbolique vers nulle part.
==> ERROR : échec de la configuration des systèmes de fichiers API dans la nouvelle racine
Ceci est dû au fait que dans certaines versions de Debian,
/dev/shm
pointe vers
/run/shm
alors que dans le chroot basé sur Arch,
/run/shm
n'existe pas et le lien est rompu. Pour corriger cette erreur, créez un répertoire
/run/shm
:
# mkdir /run/shm
/dev/pts
Lors de l'installation de
archlinux-2015.07.01-x86_64
depuis un hôte Debian 7, l'erreur suivante a empêché
pacstrap(8)
et
arch-chroot
de fonctionner :
# pacstrap -i /mnt
mount : le point de montage /mnt/dev/pts n'existe pas
==> ERROR : échec de la configuration du chroot /mnt
Apparemment, c'est parce que ces deux scripts utilisent une fonction commune.
chroot_setup()
[1]
s'appuie sur de nouvelles fonctionnalités de
util-linux
, qui sont incompatibles avec l'espace utilisateur de Debian 7 (voir
FS#45737
).
La solution pour
pacstrap
est d'exécuter manuellement ses
various tasks
, mais d'utiliser la
regular procedure
pour monter les systèmes de fichiers du noyau sur le répertoire cible (
"$newroot"
) :
# newroot=/mnt
# mkdir -m 0755 -p "$newroot"/var/{cache/pacman/pkg,lib/pacman,log} "$newroot"/{dev,run,etc}
# mkdir -m 1777 -p "$newroot"/tmp
# mkdir -m 0555 -p "$newroot"/{sys,proc}
# mount --bind "$newroot" "$newroot"
# mount -t proc /proc "$newroot/proc"
# mount --rbind /sys "$newroot/sys"
# mount --rbind /run "$newroot/run"
# mount --rbind /dev "$newroot/dev"
# pacman -r "$newroot" --cachedir="$newroot/var/cache/pacman/pkg" -Sy base base-devel ... ## ajoutez les paquets que vous voulez
# cp -a /etc/pacman.d/gnupg "$newroot/etc/pacman.d/"       ## copier le porte-clés
# cp -a /etc/pacman.d/mirrorlist "$newroot/etc/pacman.d/"  ## copy mirrorlist
Au lieu d'utiliser
arch-chroot
pour
Guide d'installation#Chroot
, utilisez simplement :
# chroot "$newroot"
lvmetad
Essayer de créer
LVM
volumes logiques
à partir d'un environnement
archlinux-bootstrap-2015.07.01-x86_64
sur un hôte Debian 7 a entraîné l'erreur suivante :
# lvcreate -L 20G lvm -n root
/run/lvm/lvmetad.socket : connect failed : Aucun fichier ou répertoire de ce type
  WARNING : Échec de la connexion à lvmetad. Retour à l'analyse interne.
  /dev/lvm/root : non trouvé : périphérique non effacé
  Abandon. Échec de l'effacement du début du nouveau LV.
(La création du volume physique et du groupe de volumes a fonctionné malgré
/run/lvm/lvmetad.socket : connect failed : No such file or directory
s'affiche).
Ceci peut être facilement contourné en créant les volumes logiques en dehors du chroot (depuis l'hôte Debian). Ils sont alors disponibles une fois le chroot rétabli.
De plus, si le système que vous utilisez dispose de lvm, vous pouvez obtenir le résultat suivant :
# grub-install --target=i386-pc --recheck /dev/main/archroot
Installation pour la plate-forme i386-pc.
  /run/lvm/lvmetad.socket : échec de la connexion : Aucun fichier ou répertoire de ce type
  WARNING : échec de la connexion à lvmetad. Retour à l'analyse interne.
  /run/lvm/lvmetad.socket : connect failed : No such file or directory
  WARNING : Échec de la connexion à lvmetad. Retour à l'analyse interne.
  /run/lvm/lvmetad.socket : échec de la connexion : No such file or directory
  WARNING : Échec de la connexion à lvmetad. Retour à l'analyse interne.
  /run/lvm/lvmetad.socket : échec de la connexion : No such file or directory
  WARNING : Échec de la connexion à lvmetad. Retour à l'analyse interne.
  /run/lvm/lvmetad.socket : échec de la connexion : No such file or directory
  WARNING : Échec de la connexion à lvmetad. Retour à l'analyse interne.
Ceci est dû au fait que debian n'utilise pas lvmetad par défaut. Vous devez éditer
/etc/lvm/lvm.conf
et définir
use_lvmetad
à
0
:
use_lvmetad = 0
Cela déclenchera plus tard une erreur au démarrage dans l'étape initrd. Par conséquent, vous devez le modifier après la génération de grub. Dans un RAID logiciel + LVM, les étapes seraient les suivantes :
Après avoir installé le système, vérifiez votre
Mkinitcpio
et vos paramètres de chargeur d'amorçage. Consultez
Chargeur d'amorçage
pour une liste de chargeurs de démarrage.
Vous devrez peut-être modifier votre
/etc/mdadm.conf
pour refléter vos paramètres
RAID
(si applicable).
Vous devrez peut-être modifier vos
HOOKS
et
MODULES
en fonction de vos besoins en
LVM
et
RAID
:
MODULES="dm_mod" HOOKS="base udev
mdadm_udev
... block
lvm2
filesystems ..."
}
Vous aurez très probablement besoin de générer de nouvelles images initrd avec mkinitcpio. Consultez
Mkinitcpio (Français)#Création et activation d'images
.
Définissez
use_lvmetad = 0
dans
/etc/lvm/lvm.conf
.
Mettez à jour les paramètres de votre chargeur d'amorçage. Consultez la page wiki de votre chargeur d'amorçage pour plus de détails.
Définissez
use_lvmetad = 1
dans
/etc/lvm/lvm.conf
.
Hôte basé sur Fedora
Sur les hôtes basés sur Fedora et les live USB, vous pouvez rencontrer des problèmes en utilisant
genfstab
pour générer votre
fstab
. Supprimez les entrées en double et l'option "seclabel" lorsqu'elle apparaît, car elle est spécifique à Fedora et empêchera votre système de démarrer normalement.
Choses à vérifier avant de redémarrer
Avant de redémarrer, vérifiez quelques détails de votre installation afin d'obtenir une installation réussie. Pour ce faire, il faut d'abord chrooter sur le système nouvellement installé, puis :
créer un utilisateur avec un mot de passe
, afin que vous puissiez vous connecter via
ssh
. Ceci est essentiel puisque la connexion root est désactivée par défaut depuis OpenSSH-7.1p2.
créer un mot de passe root
pour que vous puissiez passer en tant que root via
su
plus tard.
installer
une solution
ssh
et
activer
son instance de serveur pour qu'elle démarre automatiquement au démarrage.
Configurez votre
configuration réseau
afin qu'une connexion soit lancée automatiquement au démarrage.
Installez un
chargeur d'amorçage
et configurez-le pour qu'il utilise la partition swap que vous vous êtes appropriée plus tôt comme partition racine. Vous voudrez peut-être configurer votre chargeur d'amorçage pour pouvoir démarrer sur votre ancien système ; il est utile de réutiliser la partition
/boot
existante du serveur dans le nouveau système à cette fin.
Remplacer le système existant sans LiveCD
Trouvez ~700 MB d'espace libre quelque part sur le disque, par exemple en partitionnant une partition swap. Vous pouvez désactiver la partition swap et y installer votre système.
Définir l'ancienne partition swap comme nouvelle partition racine
Vérifiez
cfdisk
,
/proc/swaps
ou
/etc/fstab
pour trouver votre partition swap. En supposant que votre disque dur est situé sur
sda
X
(
X
sera un nombre).
Faites ce qui suit :
Désactivez l'espace d'échange :
# swapoff /dev/sda
X
Créez un système de fichiers dessus
# fdisk /dev/sda
(définissez le champ ID de /dev/sda
X
à "Linux" - Hex 83)
# mke2fs -j /dev/sda
X
Créez un répertoire pour le monter
# mkdir /mnt/newsys
Enfin, montez le nouveau répertoire pour installer le système intermédiaire.
# mount -t ext4 /dev/sda
X
/mnt/newsys
Installation
Installation des paquets essentiels
et tout autre paquet nécessaire pour obtenir un système avec une connexion internet opérationnelle dans la partition temporaire, en faisant attention à la limite de ~700 Mo d'espace. Lorsque vous spécifiez les paquets à installer avec
pacstrap
, pensez à ajouter le paramètre
-c
pour éviter de remplir un espace précieux en téléchargeant les paquets sur le système hôte.
Une fois le nouveau système Arch Linux installé, corrigez la configuration du chargeur d'amorçage, puis redémarrez le système nouvellement créé, et
rsync the entire system
sur la partition primaire.