UP | HOME

Nicolas Jeannerod

Installer Archlinux façon Niols

Attention: Il s'agit seulement de notes. De plus, il est important de ne pas suivre un tutoriel d'installation à la lettre : le fait qu'Archlinux soit une rolling release rend l'utilisation de n'importe quel tutoriel obsolète dangereuse.

Ces notes sont inspirées du guide d'installation de Archlinux et de sa version en français.

Elles utilisent également des conseils trouvés ça et là, notamment :

Globalement, le Wiki Archlinux est une excellente source d'information. La version française semble être très satisfaisante aussi.

Le tutoriel est adapté pour une machine personnelle, pas pour un serveur.

Préparer le disque

Utiliser `lsblk` pour repérer le disque principal. Dans la suite, on en parlera comme de `/dev/sdX`.

Effacer le disque (facultatif)

Cette étape est utile si vous ne voulez pas que des données disponibles avant cette installation soit trouvables. C'est tout à fait facultatif.

La version simple

Écrivez des zéros sur la partition.

La version sûre

Dans cette version, on écrit des données aléatoires sur le disque. Ça a l'inconvénient d'être plus long, puisqu'il faut les générez. Mais c'est tout de même mieux dans la mesure où ça ne permettra pas de distinguer les zones chiffrées des zones vides.

shred --verbose --random-source=/dev/urandom --iterations=3 /dev/sdX

Ça peut prendre très longtemps (compter des heures).

Créer les partitions

Créez les partitions avec `cgdisk`. Vous pouvez utiliser autre chose si vous le souhaitez, mais pas si vous êtes en UEFI.

Je crée seulement deux partitions (pour une machine personnelle, je n'ai pas l'impression que séparer en plusieurs partitions soit si utile) :

  • une partition /dev/sdX1 bootable de 100M;
  • une partition /dev/sdX2 occupant tout le reste.

Donnez à vos partitions le type 8300 (Linux filesystem). Si vous êtes en UEFI, la partition /dev/sdX1 doit avoir le type EF00 (EFI System). Si vous voulez ajouter un swap, donnez lui le type 8200.

Formatter les partitions

La partition de boot :

  • en FAT32 pour les UEFI : mkfs.fat -F32 /dev/sdX1
  • en EXT2 pour les autres : mkfs.ext2 /dev/sdX1

Les autres partitions en EXT4 :

mkfs.ext4 /dev/sdX2

Et si vous avez un swap :

mkswap /dev/sdXy
swapon /dev/sdXy

Monter les partitions

mount /dev/sdX2 /mnt
mkdir -p /mnt/boot
mount /dev/sdX1 /mnt/boot

Installer les fondations

Se connecter à internet

Si vous êtes branchés en ethernet, vous devriez déjà être connecté.

Si vous avez besoin de vous connecter en WiFi, utilisez la commande wifi-menu.

Vérifiez le tout avec un ping vers votre site préféré – archlinux.org !

Choisir son mirroir

On édite le fichier des mirroirs :

nano /etc/pacman.d/mirrorlist

On peut faire un Alt-R pour remplacer tous les Server par des #Server, puis un Ctrl-W pour trouver le mirroir mir.archlinux.fr (ou n'importe quel autre, mais c'est mon préféré).

Ajouter les utilitaires de base :

La base :

pacstrap /mnt base base-devel

Quelques utilitaires assez pratiques quand même :

pacstrap /mnt zip unzip p7zip emacs mc alsa-utils syslog-ng mtools dosfstools lsb-release ntfs-3g

Créer le fstab

genfstab -U -p /mnt >> /mnt/etc/fstab

Et on va dans notre nouvelle installation

arch-chroot /mnt

La configuration de base

Keymap et locales

Le fichier /etc/vconsole.conf gère le comportement du clavier en mode console. Tant qu'on y va pas, on s'en fichier. Mais le jour où on en a besoin, on est contents de le trouver en AZERTY.

/etc/vconsole.conf

KEYMAP=fr-latin9
FONT=lat9w-16

Le fichier /etc/locale.conf

/etc/locale.conf

LANG=fr_FR.UTF-8
LC_COLLATE=C

Pour pouvoir utiliser la locale, il faut l'avoir générée avant. Pour ça, on édite le fichier locale.gen:

nano /etc/locale.gen

Et on décommente les lignes des locales :

  • en_US.UTF-8
  • fr_FR.UTF-8

On les génère :

locale-gen

On exporte…. :

export LANG=fr_FR.UTF-8

Le nom de la machine

Il suffit de l'écrire dans /etc/hostname

echo archipel > /etc/hostname

Il y a aussi l'utilitaire de systemd hostnamectl.

Le temps

On règle le fuseau horaire.

ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime

Il y a aussi l'utilitaire de systemd timedatectl.

On utilise le temps UTC (attention: pas si on est en train d'installer un dual-boot avec Windows) :

hwclock --systohc --utc

Les administrateurs

On définit un mot de passe pour l'utilisateur root:

passwd root

On donne les droits d'utiliser sudo au groupe des administrateurs. Ça nous servira plus tard, quand on ajoutera des utilisateurs. On ouvre donc le fichier de configuration de sudo avec l'utilitaire visudo:

$ EDITOR=nano visudo

##Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL) ALL

et on décommente ce qu'il faut. Si vous ne voulez pas taper votre mot de passe à chaque fois, vous pouvez décommenter la section d'après. Mais ce n'est pas recommandé.

cpio

mkinitcpio -p linux

Un gestionnaire de connexion

Que vous soyez en Wifi ou en ethernet, vous serez content d'avoir internet quand vous redémarrerez votre ordinateur.

Network Manager

C'est le gestionnaire par défaut de GNOME, et celui que j'aime bien utiliser.

pacman -S networkmanager
systemctl enable NetworkManager

Netctl

Ou bien vous pouvez préférer netctl. C'est ce que l'ISO d'archlinux utilise, et c'est ce que vous avez utilisé avec wifi-menu (si vous faites une installation sur un WiFi).

pacman -S iw wpa_supplicant dialog

C'est ce que j'ai utilisé pendant un temps, avant d'essayer Network Manager que j'ai gardé pour deux raisons :

  • il gère plus naturellement des choses plus complexes (comme les VPN)
  • il semble plus stable pour les connexions WiFi (en tous cas, il a résolu le problème de déconnexions intenpestives que je rencontrais).

Wicd

Si vous n'aimez pas Network Manager (ou s'il ne vous aime pas), vous pouvez préferer wicd :

pacman -S wicd wicd-gtk
systemctl enable wicd

Et dans ce cas, je vous renverrai sur le [Wiki][archlinux-wiki], parce que je ne sais pas du tout comment il marche.

Le bootloader

Syslinux

J'aime beaucoup Syslinux. Il est léger et très facilement configurable. Un gros défaut cependant: il est assez complexe de gérer les UEFI avec lui.

>>>> Les lignes suivantes ne marchent pas pour les UEFI. Si vous voulez tenter >>>> quand même, je vous [redirige vers le Wiki](https://wiki.archlinux.fr/Syslinux#Syst.C3.A8mes_UEFI).

On installe le paquet :

pacman -S syslinux

On touche un peu à la configuration : FIXME

Il faut surtout regarder les lignes APPEND root=/dev/sda3 rw, et remplacer ce /dev/sda3 par ce qui vous correspond. Dans ces notes, il faudrait le remplacer par /dev/sda2 (même si le /dev/sdX n'est pas /dev/sda).

Personnellement, je rajoute aussi un TIMEOUT 5 pour ne passer que 5ms dans Syslinux (contre 5s par défaut), et un MENU HIDDEN parce que je n'ai pas envie de voir ce menu bleu quand je n'en ai pas besoin (il peut toujours apparaitre, il suffit d'appuyer sur une touche quelconque).

Ensuite, on installe le bootloader :

syslinux-install_update -iam

Grub2

Si vous préférez Grub, ou si vous n'aimez pas avoir à toucher un fichier de configuration, et que vous n'êtes pas en UEFI, entrez les commandes suivantes :

pacman -S grub os-prober
grub-mkconfig -o /boot/grub/grub.cfg
grub-install --no-floppy --recheck /dev/sdX

qui devraient tout faire magiquement.

Si vous êtes en UEFI, c'est très légèrement différent

pacman -S grub os-prober efibootmgr
grub-mkconfig -o /boot/grub/grub.cfg

>>>> Il manque des choses ici.

Bon, bah ça c'est fait…

Hop, on quitte tout :

exit
umount -R /mnt

On enlève le périphérique d'installation, et on redémarre :

reboot

Finaliser l'installation

Connectez-vous en tant que root (il n'y a pas encore d'autre utilisateur de toute façon).

Et bien voilà, il ne nous reste plus que tout le reste !

Internet

Si vous n'avez pensé à installer un gestionnaire de connexion, pas de miracle : reprennez l'installation à la section précédente, et installez en un.

Sinon, et si vous êtes en ethernet, vous devriez avoir internet.

Et en wifi :

Network Manager

Pour lister les réseaux WiFi disponnibles :

nmcli d wifi

Pour se connecter :

nmcli d wifi connect "<SSID>" password "<PASSWORD>"

en remplaçant <SSID> par le nom de la borne, et <PASSWORD> par son mot de passe.

Netctl

Comme pendant l'installation :

wifi-menu

Wicd

Je sais pas.

Si on veut des applications en plus

Pour l'instant, vous avez accès aux "repositories" de base de Archlinux : core, extra et community.

Vous pouvez avoir envie des deux suivants :

archlinuxfr
Le repo de Archlinuxfr. Vous y trouverez notamment l'outil yaourt qui propose une interface peut être un peu plus simple que pacman, et qui donne accès à [AUR][archlinux-wiki-aur].
multilib
Le repo qui donne accès aux programmes 32bit. Il est nécessaire si vous voulez installer des programmes comme Skype ou Steam.

Personnellement, j'utilise le deuxième mais pas le premier. Cependant, je le recommande à tout utilisateur qui ne voudrait pas avoir à compiler lui même les programmes qu'il ne trouve pas dans core, extra ou community.

Pour les activer, il faut éditer le fichier de configuration de pacman et on les décommente les passages qui leurs correspondent.

Dans tous les cas, on met à jour pacman :

pacman -Syu

Le son

pacman -S pavucontrol pulseaudio

`jack2`, dépendance de `pulseaudio-jack` sera en conflit avec `jack` si ce dernier est déjà installé. Acceptez donc quand `pacman` vous suggère de le supprimer.

pacman -S gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav

Et si vous voulez le bluetooth:

pacman -S bluez bluez-utils bluez-libs blueman pulseaudio-bluetooth

L'image

pacman -S xorg-server xorg-xinit xorg-xmessage xorg-utils \
          xorg-server-utils xorg-apps xorg-xrandr xf86-input-mouse \
          xf86-input-synaptics xf86-input-keyboard xdg-user-dirs

Si vous n'avez pas de touchpad, pas la peine d'installer xf86-input-synaptics.

Notez que c'est juste la base de l'environnement graphique. Avez seulement ces paquets, vous n'arriverez à rien.

Carte graphique dédiée

Ça, c'est compliqué. Si vous n'en avez pas, passez votre chemin. Sinon, faites un petit tour [par ici][archlinux-wiki-xorg-driver].

Les polices

Il peut être utile de voir les textes…

pacman -S ttf-bitstream-vera ttf-liberation ttf-freefont ttf-dejavu

Les applications

Là, on installe tout ce qui nous est utile. Je mets tout ce qui m'est utile, et quelques trucs en plus qui pourraient vous intéresser. Je vous invite à lire les noms des paquets, et à voir s'ils vous intéressent vraiment.

Pour que les utilisateurs puissent installer ce qu'ils veulent en python :

pacman -S python-pip python2-pip

Pour le petit applet de Network Manager et pour la gestion d'OpenVPN :

pacman -S network-manager-applet networkmanager-openvpn

Pour la bureautique :

pacman -S gimp gimp-help-fr
pacman -S firefox firefox-i18n-fr
pacman -S thunderbird thunderbird-i18n-fr
pacman -S libreoffice-fresh libreoffice-fresh-fr
pacman -S texlive-most
pacman -S lilypond
pacman -S evince
pacman -S nautilus nautilus-share nautilus-actions nautilus-open-terminal
pacman -S ristretto tumbler ffmpegthumbnailer
pacman -S filezilla
pacman -S vlc

Des petits utilitaires (et des dépendances si besoin) :

pacman -S cronie
pacman -S mosh
pacman -S git
pacman -S httpie
pacman -S wget
pacman -S htop
pacman -S gnu-netcat
pacman -S scrot imagemagick
pacman -S redshift
pacman -S openntpd
pacman -S xfce4-terminal
pacman -S nextcloud-client gnome-keyring libgnome-keyring
pacman -S pwgen
pacman -S ocaml
pacman -S bind
pacman -S dunst
pacman -S yaourt

Les services de base

systemctl enable syslog-ng

cronie if installed:

systemctl enable cronie

openntpd, to sync hour on the network

systemctl enable openntpd

Si vous avez installé le bluetooth:

systemctl enable bluetooth

L'utilisateur

Pas question de rester en root tout le temps, on crée donc un utilisateur :

useradd -m -c 'Prénom Nom' nom-d-utilisateur

On définit son mot de passe :

passwd nom-d-utilisateur

On peut lui donner les droits sudo en l'ajoutant au groupe wheel:

usermod -aG wheel nom-d-utilisateur

Un dossier personnel chiffré

Je ne peux que recommander de chiffrer le $HOME de l'utilisateur, mais c'est bien sûr facultatif. La façon la plus transparente de le faire est via eCryptfs.

On installe les outils nécessaires :

pacman -S ecryptfs-utils rsync lsof

On charge le module :

modprobe ecryptfs

On chiffre son $HOME:

ecryptfs-migrate-home -u nom-d-utilisateur

Il faut utiliser le même mot de passe pour le chiffrement et pour l'identification (donc celui que vous lui avez donné avec passwd).

Ouvrez un autre terminal (Ctrl+Alt+F2), connectez-vous avec votre utilisateur, et exécutez :

ecryptfs-mount-private

puis rechargez votre $HOME:

cd

et regardez si ça a marché. Il devrait y avoir les dossiers par défaut (Bureau, Téléchargements, Images, …) si vous avez bien installé xdg-user-dirs.

Si tout est bon, sans erreur, démontez :

ecryptfs-umount-private

Déconnectez-vous :

exit

Et retournez à votre terminal root (Ctrl+Alt+F1).

Ajouter les hooks eCryptfs à PAM. (cf wiki)

The End

Créer une clef SSH

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Note: le mail n'est pas nécessairement un email existant, ni même valide. Personnellement, j'utilise ce champ pour y noter la date de création (niols@machine 2016-02-12).

Autres

  • récupérer la configuration sur le git
  • paramétrer firefox
  • paramétrer thunderbird
  • démarrer steam, changer son emplacement (pour pas être dans eCryptfs)
  • supprimer les fichiers chiants:

    find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete
    
    
  • lib32-alsa-plugins pour être sur d'avoir du son partout
  • set-x11-keymap fr pc105 oss
  • i3-wm i3lock i3status dmenu
  • slim archlinux-themes-slim gnome-keyring libgnome-keyring
  • https://github.com/DaveDavenport/rofi/releases/latest (rofi)
  • bluetoothtcl
  • agent KeyboardOnly
  • default-agent
  • scan on
  • pair <dev>
  • connect <dev>
  • sudo hciconfig hci0 up

See : https://wiki.archlinux.org/index.php/Bluetooth_headset Pairing works, but connecting does not

pactl load-module module-bluetooth-discover