Mise à jour : Debian 10.8
Sommaire
$ sudo aptitude install debootstrap
$ mkdir debootstrap
$ sudo mount /dev/sdb2 /mnt
la version à installer (buster dans le cas présent, pourrait-être stable, unstable, ...)
le point de montage (ou le répertoire) sur lequel créer le nouveau système
$ sudo debootstrap buster /debootstrap
La construction démarre avec :
I: Retrieving InRelease
.....
et se termine par :
......
I: Base system installed successfully.
Elle nécessite le téléchargement et l'installation d'un petit nombre de paquets. Une fois la commande terminée, l'arborescence classique d'un système debian est disponible :
$ ls /debootstrap
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr va
La configuration du système s'effectuent dans un chroot :
$ sudo bash -c 'for i in {proc,sys,dev,dev/pts,run} ; do mount --bind /$i debootstrap/$i;done'
$ sudo bash -c 'for i in {proc,sys,sys/firmware/efi/efivars,dev,dev/pts,run} ; do mount --bind /$i debootstrap/$i;done'
main $ sudo chroot debootstap
chroot #
$ lsblk -n -o uuid,mountpoint,fstype /dev/sda? |sed 's/^/UUID=/'
UUID=EAB2-D953 /boot/efi vfat
UUID=e139bb8c-e6c2-4c83-8c57-128f2365eb90 / ext4
UUID=c36c2a86-f8dc-4da7-9a2a-60f131e1eb52 [SWAP] swap
UUID=e7ae8725-0486-46a3-9a34-8e49d93238e3 /home ext4
$ cat <<EOF |sudo tee /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
# Partition ESP
UUID=EAB2-D953 /boot/efi vfat umask=0077 0 2
# Partition SWAP
UUID=c36c2a86-f8dc-4da7-9a2a-60f131e1eb52 none swap sw,discard 0 0
# Partition système
UUID=e139bb8c-e6c2-4c83-8c57-128f2365eb90 / ext4 defaults 0 1
# Partition HOME
UUID=e7ae8725-0486-46a3-9a34-8e49d93238e3 /home ext4 defaults 0 2
# Lecteur - Graveur CD/DVD
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
EOF
Si la partition swap est sur un disque ssd, rajouter l'option discard
$ cat <<EOF |sudo tee /etc/initramfs-tools/conf.d/resume
RESUME=UUID=c36c2a86-f8dc-4da7-9a2a-60f131e1eb52
chroot # exit
main $
$ sudo bash -c 'for i in {run,dev/pts,dev,sys,proc} ; do umount debootstrap/$i;done'
$ sudo bash -c 'for i in {run,dev/pts,dev,sys,sys/firmware/efi/efivars,proc} ; do umount debootstrap/$i;done'
Vérifier que le point de montage est disponible
$ lsof debootstrap/
Le système peut-être redémarré en utilisant son système d'amorçage
Modifier le nom dans le fichier hostname
$ sudo nano /etc/hostname
nouveau_nom_hôte
Mettre à jour les alias dans le fichier hosts
$ sudo nano /etc/hosts
127.0.0.1 localhost
127.0.1.1 nouveau_nom_hôte.lan nouveau_nom_hôte
........
$ su -l -c 'hostname -F /etc/hostname'
user@nouveau_nom_hôte:~$
$ sudo mount -o loop debian.iso /mnt
$ cat <<EOF>>/etc/apt/sources.list
deb [trusted=yes] file:/mnt/ buster main non-free contrib
EOF
Si le gestionnaire de réseau ifupdown est disponible, pour établir une connexion réseau filaire
Vérifier la disponibilité de l'interface filaire
$ ip link
...
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 100
$ sudo ip link set eno1 up
$ sudo dhclient eno1
$ nmcli device
DEVICE TYPE STATE CONNECTION
eno1 ethernet déconnecté --
wlp0s20f3 wifi déconnecté --
lo loopback non-géré --
$ nmcli device connect eno1
Périphérique « eno1 » activé avec « 6fdfd64f-dd7c-34cf-9687-2db634f783dc ».
$ nmcli device wifi list
$ nmcli device wifi connect <ESSID> password <PASSWORD>
Périphérique « wlp0s20f3 » activé avec « 139759b8-99bd-40aa-bf84-102fe358d8db ».
$ nmcli device status
DEVICE TYPE STATE CONNECTION
eno1 ethernet connecté Connexion filaire 2
wlp0s20f3 wifi connecté SFR-fcc8 3
lo loopback non-géré --
--arch : architecture (ce doit-être une architecture disponible sur le système, par défaut, l'architecture courante)
--include : paquets supplémentaires à installer
--exclude : paquets à retirer
--components : main, contrib, non-free
suite (buster) target (/mnt), miroir à utiliser
$ sudo debootstrap --include=console-setup,locales,keyboard-configuration,tzdata,command-not-found,sudo,aptitude,tree,\
intel-microcode,firmware-linux-free,firmware-misc-nonfree,firmware-iwlwifi,cryptsetup,network-manager,\
linux-image-amd64,grub-efi-amd64-signed efibootmgr --exclude=vim \
--components=main,contrib,non-free \
buster /mnt https://deb.debian.org/debian
dbus-x11,xserver-xorg,xdg-utils,lightdm,xfce4,xfce4-terminal,network-manager-gnome,medit,firefox-esr
A noter que la résolution des dépendances par debootstrap n'est pas aussi performante que celle effectuée par apt et des échecs sont possibles. Dans ce cas
soit simplifier le système à construire et compléter le système dans les phases suivantes, avec apt ou tasksel, cette dernière possibilité est la méthode recommandée pour avoir un système "complet" le plus proche d'un système tel qu'il aurait pu être installé par un installateur standard
soit lui indiquer les paquets nécessaires