diff --git a/source/debian/system.rst b/source/debian/system.rst new file mode 100644 index 0000000..bcad04c --- /dev/null +++ b/source/debian/system.rst @@ -0,0 +1,291 @@ +Installation d’une distribution GNU/Linux Debian + +--- + +TODO etc/motd + +``` +``` + +# Décisions + +1. ## disposer de miroirs à jour + + TODO + +* ## choisir les paquets indispensables + + paquets proposés pour pouvoir travailler correctement + + ||| + ||| + | locales | générer des locales binaires pour les messages + | apt-utils | sinon la configuration des paquets est repoussée + | dialog | sans quoi APT remonte des messages d’alerte + +* ## décider du type de système souhaité + + * le système sera-t-il architecturé + * en 64 bits ? + * en 32 bits ? + * les 2 ?! + * le système sera-t-il exécuté + * sur une machine physique ? + * dans une machine virtuelle ? + * dans un conteneur ? + * dans un conteneur dans une machine virtuelle ? + * le système sera-t-il utilisé + * en écriture, sur un support de stockage ? + * en lecture, chargé en mémoire au démarrage ? + +# Installer les outils nécessaires + +||| +||| +| debootstrap | générer un système de fichiers de base minimal +| squashfs-tools | compresser ou décompresser une image de système + +```bash +apt-get install "debootstrap squashfs-tools" +``` + +# Créer une arborescence de base + +## préparer le chroot + +* devenir root +* créer un répertoire, et s’y positionner + +```bash +su +``` +```bash +mkdir -p "chemin" +cd "chemin" +``` + +## générer le système de fichiers + +```bash +debootstrap \ +--arch="amd64" \ +--include="locales,apt-utils,dialog" \ +--variant="minbase" \ +"stretch" \ +. \ +"miroir" +``` + +# Configurer les paquets préinstallés + +## définir les claviers par défaut + +* /etc/default/keyboard + +```bash +XKBMODEL="pc105" +XKBLAYOUT="fr,fr" +XKBVARIANT="oss,bepo" +XKBOPTIONS="" +BACKSPACE="guess" +``` + +## définir les locales à générer + +* etc/default/locale + +``` +LANG=en_US.UTF-8 +LANGUAGE=en_US +LC_CTYPE="fr_FR.UTF-8" +LC_NUMERIC="fr_FR.UTF-8" +LC_TIME="fr_FR.UTF-8" +LC_COLLATE="fr_FR.UTF-8" +LC_MONETARY="fr_FR.UTF-8" +LC_MESSAGES="en_US.UTF-8" +LC_PAPER="fr_FR.UTF-8" +LC_NAME="fr_FR.UTF-8" +LC_ADDRESS="fr_FR.UTF-8" +LC_TELEPHONE="fr_FR.UTF-8" +LC_MEASUREMENT="fr_FR.UTF-8" +LC_IDENTIFICATION="fr_FR.UTF-8" +``` + +* etc/locale.gen + +``` +en_US.UTF-8 UTF-8 +fr_FR.UTF-8 UTF-8 +``` + +## [configurer l’interpréteur de commandes](../bash/index.md) + +## [configurer le gestionnaire de paquets](../apt/index.md) + +## redéfinir le nom d’hôte + +```bash +echo "hostname" > "etc/hostname" +``` + +## renseigner les volumes connus + +* etc/fstab + +Volume temporaire en RAM + +``` +tmpfs /tmp tmpfs auto,mode=1777 0 0 +``` + +# Installation + +## changer de contexte + +```bash +mount --bind /proc proc +mount --bind /sys sys +chroot . +``` +TODO ? /dev + +## générer les locales + +```bash +locale-gen +``` + +## définir le mot de passe root + +```bash +passwd +``` + +## utilisateur, invité, sudo + +```bash +apt-get install sudo + +useradd -s /bin/bash user +mkdir /home/user +chown user: /home/user +adduser user sudo + +useradd -s /bin/bash guest +chown guest: /home/guest +``` + +## authentifications : mots de passe, clés SSH + +TODO + +## mettre le système à jour + +* dans tous les cas : + +```bash +apt-get update +apt-get upgrade +``` + +* si besoin, car des paquets rétroportés modifient la distribution : + +```bash +apt-get dist-upgrade +``` + +## appliquer le type de système choisi + +||| +||| +| linux-image-amd64 | s’il ne s’agit pas d’un conteneur +| live-boot | si à destination de boot live +| systemd-sysv | sans quoi le système ne démarrera pas complètement + +```bash +apt-get install -t stretch-backports "linux-image-amd64" +apt-get install "live-boot" +``` + +--- + +## définir les paramètres d’initialisation +```bash +apt-get install -t stretch-backports "systemd-sysv" +``` + + +* etc/sysctl.conf + +Espace mémoire maximum allouable (à augmenter si hébergement de conteneurs) +Pourcentage de RAM disponible avant utilisation de la partition d’échange + +```ini +vm.max_map_count=1048576 +vm.swappiness=0 +``` + +## pour s’en tenir au strict nécessaire + +```bash +apt-get install --no-install-recommends … +``` + +## installer des paquets utiles + +```bash +apt-get install \ +bash-completion \ +lxc \ +less nano vim \ +pciutils usbutils \ +python3 \ +squashfs-tools \ +``` + +```bash +apt-get install -t "stretch-backports" \ +debootstrap \ +``` + +## installer des paquets au choix + +[Choix de paquets commentés](packages.md) + +```bash +apt-get install "package1" … +apt-get install -t stretch-backports "package1" … +``` + +## sortir correctement du contexte + +* vider le cache d’APT + +```bash +apt-get clean +``` + +* s’extraire de l’environnement + +```bash +exit +``` + +* démonter les liens au système hôte + +```bash +umount sys +umount proc +``` + +## épurer l’historique des commandes + +* root/.bash_history + +# Configurer les paquets installés + +# Archiver le système de fichiers + +```bash +mksquashfs . "../name.squashfs" -comp "xz" +```