Debootstrap créer un système de base

Partagez ici vos Trucs et vos Astuces.
Répondre
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Deebootstrap

Le principe est assez simple: Le programme debootstrap installe dans un répertoire une arborescence complète d'une Debian minimale (Sans noyau et sans environnement graphique).
Debootstrap va vous permettre de créer un système de fichier complet.
On choisit l'architecture, la branche, tout le reste est automatique. La commande:

debootstrap [OPTION...] SUITE TARGET [MIRROR [SCRIPT]]

Par exemple vous souhaitez une Debian jessie minimal amd64:
debootstrap --arch=amd64 jessie chroot http://httpredir.debian.org/debian/

Architecture:
--arch=i386
amd64, arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, ou s390x

Branche:
wheezie, jessie, testing, ...

Une option intéressante: pré-installer certains paquets:

Options:
--include linux-image-amd64,grub-pc,locales

Exemple. Création d'une Debian Jessie amd64 avec noyau, grup-pc et locales installées:

Code : Tout sélectionner

# cd /var/local
# debootstrap --include linux-image-amd64,grub-pc,locales --arch=amd64 jessie custom http://httpredir.debian.org/debian/

Pour savoir à quoi vous attendre... l'option --print-debs qui va lister les packages à télécharger/installer

Code : Tout sélectionner

# cd /var/local
# debootstrap --print-debs --arch=amd64 jessie custom http://httpredir.debian.org/debian/I: Retrieving InRelease 
I: Retrieving Release 
I: Retrieving Release.gpg 
I: Checking Release signature
gpgv: Signature made Sat Jan 14 14:04:51 2017 EAT
gpgv:                using RSA key 8B48AD6246925553
gpgv: Good signature from "Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>"
gpgv: Signature made Sat Jan 14 14:04:51 2017 EAT
gpgv:                using RSA key 7638D0442B90D010
gpgv: Good signature from "Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>"
gpgv: Signature made Sat Jan 14 14:32:44 2017 EAT
gpgv:                using RSA key CBF8D6FD518E17E1
gpgv: Good signature from "Jessie Stable Release Key <debian-release@lists.debian.org>"
I: Valid Release signature (key id 75DDC3C4A499F1A18CB5F3C8CBF8D6FD518E17E1)
I: Retrieving Packages 
I: Validating Packages 
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: acl adduser dmsetup insserv libaudit-common libaudit1 libbz2-1.0 libcap2 libcap2-bin libcryptsetup4 libdb5.3 libdebconfclient0 libdevmapper1.02.1 libgcrypt20 libgpg-error0 libkmod2 libncursesw5 libprocps3 libsemanage-common libsemanage1 libslang2 libsystemd0 libudev1 libustr-1.0-1 procps systemd systemd-sysv udev 
I: Found additional base dependencies: libdns-export100 libffi6 libgmp10 libgnutls-deb0-28 libgnutls-openssl27 libhogweed2 libicu52 libidn11 libirs-export91 libisc-export95 libisccfg-export90 libmnl0 libnetfilter-acct1 libnettle4 libnfnetlink0 libp11-kit0 libpsl0 libtasn1-6 
acl adduser base-files base-passwd bash bsdutils coreutils dash debconf debconf-i18n debianutils diffutils dmsetup dpkg e2fslibs e2fsprogs findutils gcc-4.8-base gcc-4.9-base grep gzip hostname init initscripts insserv libacl1 libattr1 libaudit-common libaudit1 libblkid1 libbz2-1.0 libc-bin libc6 libcap2 libcap2-bin libcomerr2 libcryptsetup4 libdb5.3 libdebconfclient0 libdevmapper1.02.1 libgcc1 libgcrypt20 libgpg-error0 libkmod2 liblocale-gettext-perl liblzma5 libmount1 libncurses5 libncursesw5 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libprocps3 libselinux1 libsemanage-common libsemanage1 libsepol1 libslang2 libsmartcols1 libss2 libsystemd0 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libtinfo5 libudev1 libustr-1.0-1 libuuid1 login lsb-base mawk mount multiarch-support ncurses-base ncurses-bin passwd perl-base procps sed sensible-utils startpar systemd systemd-sysv sysv-rc sysvinit-utils tar tzdata udev util-linux zlib1g apt apt-utils bsdmainutils cpio cron debian-archive-keyring dmidecode gnupg gpgv groff-base ifupdown init-system-helpers iproute2 iptables iputils-ping isc-dhcp-client isc-dhcp-common kmod less libapt-inst1.5 libapt-pkg4.12 libboost-iostreams1.55.0 libdns-export100 libestr0 libffi6 libgdbm3 libgmp10 libgnutls-deb0-28 libgnutls-openssl27 libhogweed2 libicu52 libidn11 libirs-export91 libisc-export95 libisccfg-export90 libjson-c2 liblogging-stdlog0 liblognorm1 libmnl0 libnetfilter-acct1 libnettle4 libnewt0.52 libnfnetlink0 libp11-kit0 libpipeline1 libpopt0 libpsl0 libreadline6 libsigc++-2.0-0c2a libssl1.0.0 libstdc++6 libtasn1-6 libusb-0.1-4 libxtables10 logrotate man-db manpages nano net-tools netbase netcat-traditional nfacct readline-common rsyslog tasksel tasksel-data traceroute vim-common vim-tiny wget whiptail 
I: Deleting target directory


Possibilités intéressantes d'économiser votre bande passante et votre temps.
Vous disposez d'un cache local de paquet (apt-cacher-ng par exemple):
Remplacer MIRROR par http://IP:PORT/httpredir.debian.org/debian/

Cette possibilité est marquée comme fonctionnelle, je n'ai pas réussi... Si vous avez des infos, merci!
Vous disposez d'un live CD Debian récent:
Remplacer MIRROR par file:/cdrom/debian/ (ou /cdrom/debian est le point de montage du CD...

Une fois terminé, vous avez une arborescence complète dans le répertoire cible:

Code : Tout sélectionner

# cd /var/local
# ls custom
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
vohu
Membre
Membre
Messages : 455
Inscription : 16 avr. 2016, 12:02
Localisation : Strasbourg
Status : Hors-ligne

Mais comment tu fais l'iso bootable ensuite ?

Il me semblait qu'il fallait passer par un chroot pour installer le noyau.
Qu'il fallait générer un squashfs, et un système de boot isolinux. enfin, un truc bien lourdingue.
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
Oui, oui. C'est juste le début.

Debootstrap
Chroot (ce sera un autre T&A)
ISO (ce sera la dernier).

J'ai préféré séparer pour être clair à chaque fois (et debootstrap n'est pas que fait pour créer un CD LIVE).

Edit: Et j'ai changé le titre qui prêtait à confusion...
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
vohu
Membre
Membre
Messages : 455
Inscription : 16 avr. 2016, 12:02
Localisation : Strasbourg
Status : Hors-ligne

C'est pas trop grave, mais y a un truc qui colle pas dans le tuto. tu fais un "ls custom' en bas, alors qu'en haut, c'était "essai".

Du coup, le passage au tuto suivant est assez problématique. Alors c'est pas super difficile de comprendre, mais pour les débutants, ça risque d'être très déroutant.

Est ce que tu pourrais modifier ce tuto pour que le debootstrap soit créé dans le dossier /var/local/custom ?
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
Merci pour la correction. J'ai mis custom partout... :-)
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
PengouinPdt
Contributeur
Contributeur
Messages : 1343
Inscription : 23 avr. 2016, 23:37
Localisation : 47/FR
Diaspora* : https://framasphere.org/u/hucste
Contact :
Status : Hors-ligne

On pourrait créer par ce biais une Debian Sid, si je comprends bien, n'est-ce pas ?!
PengouinPdt { le seul, le vrai } ~ " Libre as a Pengouin "
- DIY - Debian Sid | Devuan Ceres
----
Ne réponds pas aux PM d'assistance
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Salut,
PengouinPdt a écrit : 17 mars 2017, 21:05On pourrait créer par ce biais une Debian Sid, si je comprends bien, n'est-ce pas ?!
Oui, n'importe quel branche. :icon_wink:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
piratebab
Site Admin
Site Admin
Messages : 4946
Inscription : 24 avr. 2016, 18:41
Localisation : sud ouest
Status : Hors-ligne

C'était la solution préférée de Mat, ancien modo d'un forum debian bien connu.
Peut on créer un système avec busybox au lieu de tout les outils en mode "standard" ?
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4974
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Avec l'option --variant=minbase tu aura le minimum de chez minimum...

Sans noyau:

Code : Tout sélectionner

# du -sh custom/
166M	custom/
--variant=minbase|buildd|fakechroot|scratchbox

Name of the bootstrap script variant to use. Currently, the variants supported are:
- minbase, which only includes essential packages and apt;
- buildd, which installs the build-essential packages into TARGET;
- fakechroot, which installs the packages without root privileges.
- scratchbox, which is for creating targets for scratchbox usage.

The default, with no --variant=X argument, is to create a base Debian installation in TARGET.
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Répondre