****************************************** Debian GNU/Linux distribution installation ****************************************** .. todo:: * /etc/motd :: Choices ======= have up-to-date mirrors available --------------------------------- .. todo:: choose critical base packages ----------------------------- 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 | +-----------+--------------------------------------------------+ decide the desired type of system --------------------------------- * 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 ? Install required tools ====================== ||| ||| | 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" ``` Create a base file hierarchy ============================ prepare the system's directory ------------------------------ * devenir root * créer un répertoire, et s’y positionner ```bash su ``` ```bash mkdir -p "chemin" cd "chemin" ``` generate the minimal base ------------------------- ```bash debootstrap \ --arch="amd64" \ --include="locales,apt-utils,dialog" \ --variant="minbase" \ "stretch" \ . \ "miroir" ``` Configure preinstalled packages =============================== define default keyboard layouts ------------------------------- * /etc/default/keyboard ```bash XKBMODEL="pc105" XKBLAYOUT="fr,fr" XKBVARIANT="oss,bepo" XKBOPTIONS="" BACKSPACE="guess" ``` define default locales to generate ---------------------------------- * 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 ``` [configure command shell](../bash/index.md) ------------------------------------------- [configure package manager](../apt/index.md) -------------------------------------------- redefine hostname ----------------- ```bash echo "hostname" > "etc/hostname" ``` provide known file systems -------------------------- * etc/fstab Volume temporaire en RAM ``` tmpfs /tmp tmpfs auto,mode=1777 0 0 ``` Install additional packages =========================== switch into context ------------------- ```bash mount --bind /proc proc mount --bind /sys sys chroot . ``` TODO ? /dev generate locales ---------------- ```bash locale-gen ``` define root password -------------------- ```bash passwd ``` user, guest, 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 ``` authentications: passwords, SSH keys ------------------------------------ TODO upgrade system -------------- * 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 ``` apply system type elements -------------------------- ||| ||| | 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" ``` ---- initialization settings ----------------------- ```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 ``` keeping things light -------------------- ```bash apt-get install --no-install-recommends … ``` install useful packages ----------------------- ```bash apt-get install \ bash-completion \ lxc \ less nano vim \ pciutils usbutils \ python3 \ squashfs-tools \ ``` ```bash apt-get install -t "stretch-backports" \ debootstrap \ ``` install other packages ---------------------- [Choix de paquets commentés](packages.md) ```bash apt-get install "package1" … apt-get install -t stretch-backports "package1" … ``` properly switch back from context --------------------------------- * 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 ``` clean up commands history ------------------------- * root/.bash_history Configure installed packages ============================ .. todo:: Archive prepared file system ============================ .. code:: shell mksquashfs . "../name.squashfs" -comp "xz"