« Archlinux installation » : différence entre les versions
Apparence
(27 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[ | [[Category:ArchLinux]] | ||
[ | = [https://wiki.archlinux.org/index.php/Installation_guide#Set_the_keyboard_layout Clavier fr] = | ||
<kode lang=bash> | <kode lang=bash> | ||
loadkeys fr_CH | |||
# _ → ? | # _ → ? | ||
# loadkeys fr-pc | |||
</kode> | </kode> | ||
= [http://wiki.archlinux.org/index.php/Partitioning Partitionnement] = | = [http://wiki.archlinux.org/index.php/Partitioning Partitionnement] = | ||
{| class="wikitable wtp wtmono1" | {| class="wikitable wtp wtmono1" | ||
| / || | | / || 30 Go | ||
|- | |- | ||
| /var || | | /var || 25 Go. Contient le cache pacman, comme celui-ci grossit il est intéressant de mettre {{boxx|/var}} dans une partition à part afin de ne pas bloquer le système si la partition n'a plus d'espace libre.<br>Éviter de le mettre sur un disque SSD car elle contient les logs ce qui génère beaucoup d'écriture. | ||
|- | |- | ||
| / | | /boot || 512 Mo | ||
|- | |- | ||
| [https://wiki.archlinux.org/index.php/Swap Swap] || | | /home || 40 Go | ||
|- | |||
| [https://wiki.archlinux.org/index.php/Swap Swap] || 2/5 of the RAM size for [https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate#About_swap_partition/file_size hibernation] | |||
|- | |- | ||
| [https://wiki.archlinux.org/index.php/Swap#Swap_file Swap file] || dans un fichier plutôt que dans une partition. Permet d'en modifier facilement la taille. | | [https://wiki.archlinux.org/index.php/Swap#Swap_file Swap file] || dans un fichier plutôt que dans une partition. Permet d'en modifier facilement la taille. | ||
Ligne 23 : | Ligne 23 : | ||
<kode lang=bash> | <kode lang=bash> | ||
# listez les disques | # listez les disques: list block devices | ||
lsblk | lsblk | ||
# -f: Output info about filesystems like UUID | |||
# | |||
</kode> | </kode> | ||
Ligne 53 : | Ligne 47 : | ||
{{info | Pour un système UEFI, la première partition doit être l'EFI System Partition d'une taille comprise entre 100MiB et 512MiB et formatée en FAT32<br> | {{info | Pour un système UEFI, la première partition doit être l'EFI System Partition d'une taille comprise entre 100MiB et 512MiB et formatée en FAT32<br> | ||
Pour un système BIOS/GPT, une partition dans les premiers 2TiB doit être la BIOS boot partition d'une taille de 1MiB et formatée en FAT32}} | Pour un système BIOS/GPT, une partition dans les premiers 2TiB doit être la BIOS boot partition d'une taille de 1MiB et formatée en FAT32}} | ||
== [https://wiki.archlinux.org/index.php/MBR MBR: Master Boot Record] == | |||
<kode lang=bash> | |||
# création des partitions | |||
fdisk /dev/sda | |||
# fdisk codes: 82 → Swap, 83 → Linux | |||
</kode> | |||
= [[Formater_une_partition|Formatage]] = | = [[Formater_une_partition|Formatage]] = | ||
<kode lang=bash> | <kode lang=bash> | ||
# ext4 | |||
mkfs.ext4 /dev/sdx0 | |||
# add a label | |||
e2label /dev/sdx0 myLabel | |||
# EFI | # EFI | ||
mkfs.fat -F 32 /dev/ | mkfs.fat -F 32 /dev/sdx0 | ||
# swap | # swap | ||
mkswap /dev/ | mkswap /dev/sdx0 | ||
# fat 32 | # fat 32 | ||
mkfs.vfat -F 32 -n LABEL /dev/ | mkfs.vfat -F 32 -n LABEL /dev/sdx0 | ||
</kode> | </kode> | ||
Ligne 93 : | Ligne 96 : | ||
= Installation du système de base = | = Installation du système de base = | ||
<kode lang=bash> | <kode lang=bash> | ||
pacstrap /mnt base base-devel | pacstrap /mnt base base-devel linux linux-firmware | ||
# activez la swap pour qu'elle soit détectée par genfstab | # activez la swap pour qu'elle soit détectée par genfstab | ||
swapon /dev/ | swapon /dev/sdx0 | ||
# Générer le fichier /etc/fstab | # Générer le fichier /etc/fstab | ||
genfstab - | genfstab -U /mnt >> /mnt/etc/fstab | ||
# -U Use UUIDs for source identifiers | |||
# -L Use labels for source identifiers | |||
# -p Avoid printing pseudofs mounts (default behavior) | |||
# Chrooter dans le nouveau système | # Chrooter dans le nouveau système | ||
Ligne 108 : | Ligne 111 : | ||
</kode> | </kode> | ||
= Configuration = | |||
== /etc/hostname == | == /etc/hostname == | ||
<filebox fn=/etc/hostname lang=bash> | <filebox fn=/etc/hostname lang=bash> | ||
Ligne 118 : | Ligne 122 : | ||
== /etc/localtime == | == /etc/localtime == | ||
<kode lang=bash> | <kode lang=bash> | ||
ln - | ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime | ||
</kode> | </kode> | ||
Ligne 157 : | Ligne 160 : | ||
== [https://wiki.archlinux.org/index.php/Keyboard_Configuration_in_Console /etc/vconsole.conf] == | == [https://wiki.archlinux.org/index.php/Keyboard_Configuration_in_Console /etc/vconsole.conf] == | ||
<filebox fn=/etc/vconsole.conf lang=bash> | <filebox fn=/etc/vconsole.conf lang=bash> | ||
KEYMAP=fr_CH-latin1 | |||
# KEYMAP=fr-latin9 | # KEYMAP=fr-latin9 | ||
# pour latin1 | # pour latin1 | ||
Ligne 195 : | Ligne 198 : | ||
<kode lang=bash> | <kode lang=bash> | ||
# Créer le RAM disk | # Créer le RAM disk | ||
mkinitcpio - | mkinitcpio -P | ||
</kode> | </kode> | ||
Ligne 232 : | Ligne 235 : | ||
<kode lang=bash> | <kode lang=bash> | ||
passwd | passwd | ||
</kode> | |||
= Unmount and reboot = | |||
<kode lang='bash'> | |||
# exit the chroot environment | |||
exit | |||
# unmount all the partitions | |||
umount -R /mnt | |||
# restart | |||
reboot | |||
</kode> | </kode> | ||
Ligne 263 : | Ligne 278 : | ||
# Installation | # Installation | ||
pacman -S sudo | pacman -S sudo | ||
# run command as another user | |||
sudo -u <user> <command> | |||
</kode> | </kode> | ||
Ligne 286 : | Ligne 304 : | ||
# changer les autorisations des utilisateurs | # changer les autorisations des utilisateurs | ||
<user> <host>=(<user>:<group>) <commands> | <user> <host>=(<user>:<group>) <commands> | ||
# Allow members of group sudo to execute any command | |||
%sudo ALL=(ALL:ALL) ALL | |||
# Autorise l'utilisateur 'nicolas' à utiliser 'sudo' depuis la machine locale | # Autorise l'utilisateur 'nicolas' à utiliser 'sudo' depuis la machine locale | ||
Ligne 376 : | Ligne 397 : | ||
{{boxx|HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal}} | {{boxx|HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal}} | ||
= [https://wiki.archlinux.org/index.php/Solid_state_drive#Periodic_TRIM Disque SSD: periodic TRIM] = | |||
<kode lang='bash'> | |||
# verify TRIM support | |||
lsblk --discard | |||
# TRIM support if DISC-GRAN (discard granularity) and DISC-MAX (discard max bytes) != 0 | |||
# periodic TRIM | |||
sc-start fstrim.timer | |||
sc-enable fstrim.timer | |||
# list running timers | |||
systemctl list-timers | |||
</kode> |
Dernière version du 8 août 2023 à 16:49
Clavier fr
loadkeys fr_CH
# _ → ?
# loadkeys fr-pc
|
Partitionnement
/ | 30 Go |
/var | 25 Go. Contient le cache pacman, comme celui-ci grossit il est intéressant de mettre /var dans une partition à part afin de ne pas bloquer le système si la partition n'a plus d'espace libre. Éviter de le mettre sur un disque SSD car elle contient les logs ce qui génère beaucoup d'écriture. |
/boot | 512 Mo |
/home | 40 Go |
Swap | 2/5 of the RAM size for hibernation |
Swap file | dans un fichier plutôt que dans une partition. Permet d'en modifier facilement la taille. |
# listez les disques: list block devices
lsblk
# -f: Output info about filesystems like UUID
|
GPT: GUID Partition Table
# création des partitions
gdisk /dev/sda
|
Commandes:
- n → new partition
- p → print the partition list
- w → write and exit
- q → quit
Codes de partitions:
- ef00 → EFI System Partition
- ef02 → BIOS boot partition (GRUB avec BIOS/GPT)
- 8200 Swap
- 8300 Linux (/, /var)
- 8302 Linux home (/home)
- 0700 NTFS
![]() |
Pour un système UEFI, la première partition doit être l'EFI System Partition d'une taille comprise entre 100MiB et 512MiB et formatée en FAT32 Pour un système BIOS/GPT, une partition dans les premiers 2TiB doit être la BIOS boot partition d'une taille de 1MiB et formatée en FAT32 |
MBR: Master Boot Record
# création des partitions
fdisk /dev/sda
# fdisk codes: 82 → Swap, 83 → Linux
|
Formatage
# ext4
mkfs.ext4 /dev/sdx0
# add a label
e2label /dev/sdx0 myLabel
# EFI
mkfs.fat -F 32 /dev/sdx0
# swap
mkswap /dev/sdx0
# fat 32
mkfs.vfat -F 32 -n LABEL /dev/sdx0
|
Montage des partitions
# root
mount /dev/sdaX /mnt
# var
mkdir /mnt/var
mount /dev/sdaX /mnt/var
# home
mkdir /mnt/home
mount /dev/sdaX /mnt/home
# boot pour UEFI
mkdir /mnt/boot
mount /dev/sdaX /mnt/boot
|
Connexion au réseau
![]() |
Nécessaire pour l'installation du système |
Installation du système de base
pacstrap /mnt base base-devel linux linux-firmware
# activez la swap pour qu'elle soit détectée par genfstab
swapon /dev/sdx0
# Générer le fichier /etc/fstab
genfstab -U /mnt >> /mnt/etc/fstab
# -U Use UUIDs for source identifiers
# -L Use labels for source identifiers
# -p Avoid printing pseudofs mounts (default behavior)
# Chrooter dans le nouveau système
arch-chroot /mnt
|
Configuration
/etc/hostname
/etc/hostname |
MON_PC |
# équivalent: ajoute MON_PC au fichier /etc/hostname
hostnamectl set-hostname MON_PC
|
/etc/localtime
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
|
/etc/locale.gen
/etc/locale.gen |
# Décommentez la ligne suivante pour le français
fr_FR.UTF-8 UTF-8
|
# Puis générez les locales
locale-gen
|
/etc/locale.conf
/etc/locale.conf |
LANG=en_US.UTF-8
# LANG=fr_FR.UTF-8
# LANG=fr_CH.UTF-8
# LC_COLLATE: ordre de trie des fichiers
# . E e f é
LC_COLLATE=C
# é e E f
LC_COLLATE=fr_FR.UTF-8
# dates
LC_TIME=fr_FR.UTF-8
|
![]() |
Format: langage[_pays][.encodage][@modification] |
# liste les locales disponibles
locale -a
|
/etc/vconsole.conf
/etc/vconsole.conf |
KEYMAP=fr_CH-latin1
# KEYMAP=fr-latin9
# pour latin1
FONT=lat1-16
FONT_MAP=8859-1
# pour latin9
FONT=lat9w-16
FONT_MAP=8859-15
|
- KEYMAP configure le mapping du clavier
- FONT gère l'affichage des caractères spéciaux.
- lat1 (Latin-1) pour l’Europe de l'ouest (8859 specification)
- 16 pour la taille de la police
# liste des keymap disponibles
ls /usr/share/kbd/keymaps/
localectl list-keymaps
# liste des fonts disponibles
ls /usr/share/kbd/consolefonts/
# chamgement temporaire
loadkeys fr-pc
|
![]() |
|
/etc/mkinitcpio.conf
# Créer le RAM disk
mkinitcpio -P
|
/etc/hosts
Fichier de traduction nom de domaine → adresse IP
![]() |
Inutile d'ajouter le nom d'hôte au fichier /etc/hosts car systemd gère la résolution de noms d'hôte |
/etc/hosts |
# Ajouter le HOSTNAME du fichier /etc/hostname
127.0.0.1 localhost.localdomain localhost MON_PC
::1 localhost.localdomain localhost MON_PC
|
Autres
/etc/modprobe.conf | Configuration des modules |
/etc/pacman.conf | Configuration des dépôts |
/etc/pacman.d/mirrorlist | Définition du site de téléchargement pour pacman |
NumLock au boot
sudo mkdir /etc/systemd/system/getty@.service.d
|
/etc/systemd/system/getty@.service.d/activate-numlock.conf |
[Service]
ExecStartPost=/bin/sh -c 'setleds +num < /dev/%I'
|
Installer un boot loader
Mot de passe root
passwd |
Unmount and reboot
# exit the chroot environment
exit
# unmount all the partitions
umount -R /mnt
# restart
reboot
|
Environnement de bureau
- Environnement de bureau : Cinnamon, KDE Plasma, Xfce, Deepin, Gnome
- Display Manager : LightDM, GDM, SLiM
- Pilote de la carte graphique
DHCP
# listez les noms des périphériques réseau
ls /sys/class/net
# activez le service DHCP pour le périphériques réseau enp3s0
dhcpcd enp3s0
# activez au démarrage le service DHCP pour le périphériques réseau enp3s0
systemctl enable dhcpcd@enp3s0
|
Ajouter un utilisateur
useradd -m -s /bin/bash utilisateur
# -m, --create-home
passwd utilisateur
usermod -G users,wheel,audio,optical,lp,scanner,log,power,floppy,storage,video utilisateur
|
Sudo
# Installation
pacman -S sudo
# run command as another user
sudo -u <user> <command>
|
Configuration sudo
# éditez le fichier /etc/sudoers avec la commande visudo
sudo EDITOR=nano visudo
# afficher la configuration de l'utilisateur courant
sudo -ll
# afficher la configuration d'un utilisateur
sudo -lU <user>
|
/etc/sudoers |
# Reset environment by default
Defaults env_reset
# afficher des étoiles lors de la saisie du mdp
Defaults pwfeedback
# Set default EDITOR to nano, and do not allow visudo to use EDITOR/VISUAL.
Defaults editor=/usr/bin/nano, !env_editor
# changer les autorisations des utilisateurs
<user> <host>=(<user>:<group>) <commands>
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# Autorise l'utilisateur 'nicolas' à utiliser 'sudo' depuis la machine locale
# HostName est le HOSTNAME définit dans /etc/hostname
nicolas HostName=(ALL) ALL
# L'option 'NOPASSWD: ALL' permet d'utiliser 'sudo' sans mot de passe
nicolas HostName=(ALL) NOPASSWD: ALL
# Autorise tous les utilisateurs du group 'wheel' à utiliser 'sudo'
%wheel ALL=(ALL) ALL NOPASSWD: ALL
# Le groupe wheel correspond aux utilisateurs ayant le droit de lancer la commande 'su'
# plus de saisie de mot de passe pour <USER_NAME>
Defaults:<USER_NAME> !authenticate
|
![]() |
Quand un utilisateur correspond à plusieurs lignes, c'est la dernière qui sera utilisée. Ajouter les nouvelles entrées à la fin du fichier. |
Complétion avec bash
~/.bashrc |
complete -cf sudo |
Obtenir le chemin vers le dossier de l'utilisateur courant dans un script lancé avec sudo
echo $(getent passwd $SUDO_USER | cut -d: -f6)
|
Date/Heure
# Définir la date et l'heure réelle, décalage compris
sudo timedatectl set-time "2013-05-18 20:06:00"
|
![]() |
Cela suppose que le fichier /etc/localtime ait déjà été configuré |
https://wiki.archlinux.org/index.php/Time
# changez le hardware clock en mode "localtime"
# même date/heure que le system clock
hwclock --localtime
# changez le hardware clock en mode "utc"
# utc: date/heure à GMT +0 sans notion de changement d'heure (DST = Daylight Saving Time)
# le system clock est donc calculé en prenant en compte la time zone et le changement d'heure
hwclock --utc
# changez durablement le mode de hardware clock
# editez le fichier /etc/rc.conf
HARDWARECLOCK="localtime"
HARDWARECLOCK="UTC"
|
# affichez la hardware clock
hwclock --show
# définir la hardware clock
hwclock --set --date "MM/DD/YYYY hh:mm:ss"
# définir la hardware clock à partir de la system clock
hwclock --systohc
# affichez la system clock
date
# définir la system clock
date MMDDhhmmYYYY
# définir la system clock à partir de la hardware clock
hwclock --hctosys
|
Synchroniser la date au travers du réseau
# activer au démarrage et démarrer
timedatectl set-ntp true
# status
timedatectl status
|
/etc/systemd/timesyncd.conf |
[Time] NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.fr.pool.ntp.org |
UTC in Windows
Mettre à 1 le DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
Disque SSD: periodic TRIM
# verify TRIM support
lsblk --discard
# TRIM support if DISC-GRAN (discard granularity) and DISC-MAX (discard max bytes) != 0
# periodic TRIM
sc-start fstrim.timer
sc-enable fstrim.timer
# list running timers
systemctl list-timers
|