Installation par chroot

De ArchwikiFR


Dans cet article, nous allons détailler l'installation de la distribution Arch Linux à partir d'une autre distribution GNU/Linux (noyau >= 2.6.27).

Calimero a rédigé un script effectuant les étapes de cette page de wiki : install-chroot.sh
Cela ne dispense pas de la lecture du processus, bien au contraire !

Pré-requis

Pour installer ArchLinux, il nous faut certaines données:

Variable Description Exemple
install_path Répertoire d'installation: Vous devrez monter dans ce répertoire
toutes les partitions qui vont composer votre nouveau système
/mnt/newarch
arch Architecture du système: (on ne peut installer qu'i686 sur un i686) i686 ou x86_64
mirror Mirroir de téléchargement: Vous pouvez avoir la liste ici http://mir.archlinux.fr
pacman_mirrorlist_ver Version actuelle de pacman-mirrorlist, à voir ici. 20100131-1


Vous aurez aussi besoin d'un chroot minimal dont vous pourrez trouver une archive correspondant à votre architecture ici.
Pour information, la manière de créer cette archive est la suivante, depuis un système archlinux et en utilisant le script chroot.sh présent dans le wiki concernant le chroot:

chroot.sh chroot_archive bash pacman ls more cat env ping vi ex nano /lib/libnss* bsdtar
cd chroot_archive
mkdir -p etc var/log var/lib/pacman var/cache/pacman/pkg dev sys proc
pacman -Sw pacman # au cas où vous ne l'auriez plus dans le cache
# la commande suivante dépend bien sûr de la version et de l'architecture
bsdtar xf /var/cache/pacman/pkg/pacman-3.3.3-1-x86_64.pkg.tar.gz etc/pacman.conf
bsdtar -zcvf ../archlinux.chroot.x86_64.tgz *

Vous pouvez exporter des variables via cette commande, par exemple :

export install_path="/mnt/newarch"
Attention: Cette méthode ne fonctionne que pour installer un système compilé sur la même architecture que le système hôte ou pour installer un système 32 bits sur un système 64 bits uniquement (i.e. vous pouvez installer Archlinux i686 depuis un système tournant en 64 bits mais pas l’inverse).
Important: Pour la suite, on utilisera donc les variables $install_path et $arch.
Tout répertoire ne commençant pas par / fera référence à un répertoire à l'intérieur de $install_path
Important: Vous devez avoir monté votre future partition racine dans $install_path, ainsi que vos autres partitions suivant votre configuration. (boot, var, home etc..)

Avant de commencer, on va créer un répertoire tmp dans la nouvelle installation pour y placer certains fichiers temporaire. En se plaçant dans $install_path:

mkdir tmp
chmod 1777 tmp

Création du système de base

Il nous faut télécharger l'archive ainsi que le paquet pacman-mirrorlist:

cd "$install_path"/tmp
wget "$mirror/core/os/$arch/pacman-mirrorlist-$pacman_mirrorlist_ver-any.pkg.tar.gz"
wget "http://mir.archlinux.fr/~tuxce/chroot/archlinux.chroot.$arch.tgz"
cd ..
tar zxvf tmp/pacman-mirrorlist-$pacman_mirrorlist_ver-any.pkg.tar.gz
tar zxvf tmp/archlinux.chroot.$arch.tgz
Note: Archlinux passe progressivement vers des archives xz, si la page n'est pas mise à jour et que le téléchargement de pacman-mirrorlist échoue, essayez avec .xz comme extension.

Le fichier de configuration des miroirs (etc/pacman.d/mirrorlist)a toutes les lignes de commentées, il faut en dé-commenter une au minimum, par exemple:

Server = http://mir.archlinux.fr/$repo/os/i686

Préparation du chroot

Chroot signifie change root (changer de racine). C'est à dire qu'après un chroot le répertoire racine / n'est plus le même. Cela signifie aussi que le nouveau répertoire racine doit être prêt à tout points de vue pour faire fonctionner un système Linux.

Le réseau / Internet

Sur Internet, il y a ce qu'on appelle les noms de domaines. C'est un système qui permet d'associer un nom facilement compréhensible par l'humain (exemple : archlinux.fr) a une adresse IP, un numéro qui permet à l'ordinateur de retrouver son chemin (exemple : 213.186.33.2). Cette traduction se fait par des serveurs de noms, et l'adresse de ces serveurs est stockée dans le fichier /etc/resolv.conf. Il faut donc copier le fichier du système hôte vers le chroot afin de permettre aux applications du chroot de bénéficier de cette fonctionnalité :

cp /etc/resolv.conf etc/resolv.conf

Monter les systèmes de fichiers spéciaux

Linux utilise des fichiers spéciaux qui ont besoin d'être présents dans le chroot. C'est le cas des périphériques présents dans /dev ou encore de /proc. Rendons donc cela accessible au chroot :

mount -o bind /proc "$install_path"/proc
mount -o bind /dev "$install_path"/dev
mount -o bind /sys "$install_path"/sys

Renseigner les partitions montées

Les partitions montées sont listées dans le fichier /etc/mtab, il nous faut copier le contenu de ce dernier:

grep -v rootfs /proc/mounts > etc/mtab

Dans le chroot

Notre chroot est prêt, il faut maintenant y entrer. Cela se fait le plus simplement du monde par la commande :

chroot "$install_path" /bin/bash
Important: A partir de ce point, on considère qu'on est dans l'environnement chroot.

Installation du système de base

pacman -Syf base

Configurer le nouveau système

Maintenant configurons le nouveau système. Cela peut vouloir dire assez peu ou beaucoup plus en fonction de ce que vous désirez. Ici, nous ne couvrirons que ce qui est nécessaire mais vous pouvez en faire plus.

Tout d'abord, on peut sortir et rentrer à nouveau dans l'environnement chroot pour avoir une prise en compte des variables d'environnement puis exécutez:

export PS1="(chroot) $PS1"

Configurer le /etc/rc.conf

Peut-être la partie centrale d'Arch Linux ;-)
Mais tout est mieux expliqué sur cette page.

Configurer les partitions

Les partitions qui seront montées doivent être configurées dans le fichier /etc/fstab. Je vous conseille de vous inspirer du fichier de votre ancien système ou de ce qui est présenté ici. Sachez que vous pouvez utiliser l'éditeur de texte nano qui a été installé. Votre fichier doit ressembler à :

#
# /etc/fstab: static file system information
#
# <file system>    <dir>         <type>    <options>          <dump> <pass>
devpts             /dev/pts      devpts    defaults            0      0
shm                /dev/shm      tmpfs     nodev,nosuid        0      0

/dev/sda5          swap          swap      defaults            0      0
/dev/sda6          /             ext3      defaults            0      1
/dev/sda7          /home         ext3      defaults            0      2

Faites attention à ce que les dossiers de vos points de montage existent.

Astuce: Le noyau fourni par Arch Linux reconnaît normalement les partitions IDE en tant que /dev/sdxy
Pour s'assurer que c'est le cas pour vous, vous pouvez lancer dans le chroot:
mkinitcpio -k $(ls /lib/modules) -M | grep piix
Si le résultat n'est pas vide, les partitions IDE seront reconnues en /dev/sdxy

Grub

Maintenant, vous voudrez peut être installer GRUB.

Toujours dans le chroot, tentez l'installation de grub (ici, je l'installe sur la partition /, mais vous pouvez plus classiquement l'installer sur /dev/sda) :

cp /usr/lib/grub/i386-pc/* /boot/grub/
grub-install /dev/sda6

Notez que le dossier s'appelle i386-pc quelle que soit l'architecture (i686 ou x86_64)

Les utilisateurs et leurs mot de passe

Le mot de passe Root

A la suite de cette installation, le mot de passe root est normalement vide, il est préférable d'en définir un:

passwd root

L'utilisateur principal

Une page est dédié à la gestion des utilisateurs et groupes. Je vous conseille de la consulter. Si vous voulez faire simple, adaptez juste la ligne de commande suivante :

useradd -G wheel,audio,optical,storage,video,power -m nom_utilisateur
passwd nom_utilisateur

Configuration de sudo

A voir ici: Installer et configurer sudo.

Configurer le reste

Voilà, votre système devrait être opérationnel, afin de finaliser, je vous invite à consulter la liste des catégories.