« Archlinux installation » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
(9 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 9 : | Ligne 9 : | ||
= [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 276 : | Ligne 278 : | ||
# Installation | # Installation | ||
pacman -S sudo | pacman -S sudo | ||
# run command as another user | |||
sudo -u <user> <command> | |||
</kode> | </kode> | ||
Ligne 299 : | 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 |
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 |