• # debootstrap est ton ami

    Posté par . En réponse au journal Snap, Flatpak, Packagekit : c'est quoi ce bordel ?. Évalué à 6.

    Salut.

    Si tu considères (comme moi) que l'installateur de Debian installe trop de merdes par défaut, tu peux utiliser (c)debootstrap (l'un ou l'autre, peu importe).

    Je préviens, c'est une méthode d'installation très "low level", faut connaître son système un minimum, mais bon, on est sur linuxfr ici, ça devrais donc aller.

    Pour détailler un peu plus, quand j'installe une Debian maintenant, je commence par booter le CD en mode "dépannage" ou whatever. Je réponds vite fait à la chiée de questions dont on devrait se foutre royalement dans ce mode (domaine, nom de la machine, ce genre de choses) ainsi qu'a celles utiles (config réseau, sur quelle partition me chrooter ou juste me chrooter dans le contexte de l'installateur) en prenant soin de chrooter dans le contexte de l'installateur.

    De là, je fais un p'tit fdisk, histoire de préparer mon disque dur (bon, certes, c'est chiant pour le boot UEFI vu qu'il faut bricoler l'UUID de la partoche de boot, du coup j'ai tendance a booter en mode legacy la 1ère fois, et corriger ça ensuite), que j'enchaîne avec quelques mkfs bien sentis. Étape finale: monter la future "/", y créer les dossiers qui vont bien (dans mon cas, /boot/EFI, /var, /home, et le jour ou je serais motivé pour que mon système boot en read-only, probablement le /usr) et y monter les partitions.

    Un petit debootstrap --variant=minbase buster /target plus tard, le système réellement minimal est prêt.

    for i in dev proc sys
    do
     mount --bind /$i /target/$i
    done

    fini de préparer le chroot /target, ou j'invoque l'installation des paquets qui me permettrons d'avoir un système autonome: apt-get install --no-install-recommends linux-image-amd64 syslinux syslinux-efi syslinux-common busybox vim aptitude runit-init sudo.

    L'oeil averti notera que je me permets du confort inutile avec vim, sudo et aptitude, j'aurai pu me passer du 1er puisqu'un close vi est embarqué dans busybox, les autres... bon, bref.
    Il notera également l'absence de grub, car je préfère et de très loin syslinux, malgré le fait de devoir copier manuellement (oh mon dieu, une copie manuelle!) les fichiers /initrd et /vmlinuz dans la partition de boot. Je pourrais sûrement installer un hook dans dpkg, mais je n'ai jamais cherché comment faire.
    Pour finir, le troll averti notera l'absence de systemd, remplacé par syslinux, Debian 10 mettant à disposition un paquet syslinux-init qui permets de l'utiliser comme système d'init.

    Création d'un user qui fait partie de quelques groupes (sudo ici): useradd -m -G sudo user -s /bin/bash , modification des passwords de user et root via passwd ou chpasswd (bien utile pour les scripts, le 2nd) et il me sera possible de me loguer.

    Création d'un fichier syslinux.cfg, installation du boot loader et copie des kernel/initrd:

    timeout 50
    outimeout buster
    default buster
    prompt 0
    ui vesamenu.c32
    menu title oOo Chargement du démarrage OoO
    append ro
    label buster
     menu label Buster
     linux /buster/vmlinuz
     initrd /buster/initrd.img
     append root=LABEL=main_sys
    
    dd if=/usr/lib/syslinux/gptmbr of=/dev/$TARGET
    syslinux -i /dev/$TARGET -d /mnt/bios
    mount /dev/$TARGET /mnt
    cp -r /usr/lib/syslinux/modules/* /mnt
    cp /usr/lib/SYSLINUX.EFI/efi32/syslinux.efi /mnt/efi32/
    cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /mnt/efi64/
    cp $SOURCE/syslinux.cfg /mnt/bios
    cp $SOURCE/syslinux.cfg /mnt/efi32
    cp $SOURCE/syslinux.cfg /mnt/efi64
    mkdir /mnt/distro
    cp /vmlinuz /initrd.img /mnt/distro

    Reste plus qu'à créer quelques fichiers systèmes: /etc/fstab et /etc/hostname et configurer le système est bootable.

    Bon, je vais être honnête:

    • je n'ai jamais utilisé l'efi32,
    • d'habitude je ne copie que les modules dont j'ai besoin,
    • l'efi64 nécessite quelques autres manipulations pour être réellement utilisable, à base d'efibootmgr, qui ne fonctionne que si le système a booté en mode efi. Pour ça, suivre les excellentes instructions du wiki d'archlinux
    • j'ai juste testé ça pour Debian, d'où le "buster" dans debootstrap,
    • il est possible de tout installer direct du debootstrap,
    • j'utilise perso un proxy apt nommé apt-cacher-ng,

    m'enfin, chez moi, ça marche. Si avec ça, t'as encore des cochonneries installées, faut vraiment penser à changer de distro.