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