3 votes

debootstrap veut supprimer le dossier cible, pourquoi ?

Dans le passé, j'ai utilisé debootstrap pour amorcer les systèmes Debian et Ubuntu. Mais cette fois, j'essaie d'amorcer un système Ubuntu à partir d'un système de secours Debian 6 (Note : je n'ai pas le choix du système de secours, donc ne me suggérez pas d'utiliser Ubuntu ou autre, je n'en aurais pas la possibilité).

Considérons la structure de dossier suivante /target que je veux utiliser pour amorcer le système :

/dev/md0 on /target type ext4 (rw,relatime,data=ordered)
/dev/md1 on /target/home type ext4 (rw,relatime,data=ordered)
/dev/md2 on /target/var type ext4 (rw,relatime,data=ordered)

J'exécute maintenant le programme suivant debootstrap commande :

# LANG=en_US.UTF-8 debootstrap --exclude=dhcp3-common,dhcp3-client,laptop-detect,tasksel,tasksel-data --include=bash-completion,sudo,lshw,tmux,mercurial,etckeeper,unzip,mc,htop,pciutils,usbutils,openssh-server,localepurge,unattended-upgrades --print-debs --variant=minbase --arch=amd64 precise /target
I: Retrieving InRelease
I: Failed to retrieve InRelease
I: Retrieving Release
W: Cannot check Release signature; keyring file not available /usr/share/keyrings/ubuntu-archive-keyring.gpg
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: apt-utils bzr gnupg gpgv libapt-inst1.4 libapt-pkg4.12 libbsd0 libedit2 libevent-2.0-5 libexpat1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpci3 libreadline6 libsqlite3-0 libstdc++6 libusb-0.1-4 libusb-1.0-0 libwrap0 lsb-release mime-support openssh-client python python-apt python-apt-common python-bzrlib python-configobj python2.7 readline-common ubuntu-keyring ucf
adduser base-files base-passwd bash bsdutils busybox-initramfs coreutils cpio dash debconf debianutils diffutils dpkg e2fslibs e2fsprogs findutils gcc-4.6-base grep gzip hostname ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute klibc-utils libacl1 libattr1 libblkid1 libbz2-1.0 libc-bin libc6 libcomerr2 libdb5.1 libdbus-1-3 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libelf1 libffi6 libgcc1 libglib2.0-0 libklibc liblzma5 libmount1 libncurses5 libncursesw5 libnih-dbus1 libnih1 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpciaccess0 libpcre3 libplymouth2 libpng12-0 libselinux1 libslang2 libss2 libssl1.0.0 libtinfo5 libudev0 libuuid1 locales login lsb-base makedev mawk module-init-tools mount mountall multiarch-support ncurses-base ncurses-bin passwd perl-base plymouth procps python-minimal python2.7-minimal sed sensible-utils sysv-rc sysvinit-utils tar tzdata udev upstart util-linux xz-utils zlib1g apt apt-utils bash-completion bzr etckeeper gnupg gpgv htop libapt-inst1.4 libapt-pkg4.12 libbsd0 libedit2 libevent-2.0-5 libexpat1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpci3 libreadline6 libsqlite3-0 libstdc++6 libusb-0.1-4 libusb-1.0-0 libwrap0 localepurge lsb-release lshw mc mercurial mime-support openssh-client openssh-server pciutils python python-apt python-apt-common python-bzrlib python-configobj python2.7 readline-common sudo tmux ubuntu-keyring ucf unattended-upgrades unzip usbutils
I: Deleting target directory
rm: cannot remove `/target/var': Device or resource busy
rm: cannot remove `/target/home': Device or resource busy

Je l'exécute en tant que root mais les trois dernières lignes me laissent perplexe. Si j'essaie la même chose mais sans /target/var y /target/home Les dernières lignes se transforment en :

I: Deleting target directory
rm: cannot remove `/target': Device or resource busy

I am en utilisant :

# debootstrap --version
debootstrap 1.0.42ubuntu0.1

de aquí et je l'ai installé via dpkg -i debootstrap_1.0.42ubuntu0.1_all.deb qui s'est déclarée fructueuse. J'ai également essayé d'installer la variante buildd au lieu de la minbase un. Même résultat.

Que se passe-t-il ici ? Pourquoi les debootstrap tenter de supprimer le dossier cible ?

Nota: J'ai également vérifié le man mais ne trouve pas d'option pour empêcher cette tentative de suppression.

À noter également : l'installation du trousseau de clés pour l'archive Ubuntu ne change rien. J'ai utilisé wget -O /usr/share/keyrings/ubuntu-archive-keyring.gpg http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg pour cela.

1voto

0xC0000022L Points 5221

Le problème semble provenir d'un bug ( ?) dans l'application debootstrap . Lorsque j'exécute la commande comme suit :

# LANG=en_US.UTF-8 debootstrap --exclude=dhcp3-common,dhcp3-client,laptop-detect,tasksel,tasksel-data --include=bash-completion,sudo,lshw,tmux,mercurial,etckeeper,unzip,mc,htop,pciutils,usbutils,openssh-server,localepurge,unattended-upgrades --print-debs --variant=minbase --arch=amd64 precise /target

J'obtiens la sortie (pleine sortie) :

I: Retrieving InRelease
I: Failed to retrieve InRelease
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
gpgv: Signature made Thu Apr 26 00:49:42 2012 CEST using DSA key ID 437D05B5
gpgv: Good signature from "Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>"
I: Valid Release signature (key id 630239CC130E1A7FD81A27B140976EAF437D05B5)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: apt-utils bzr gnupg gpgv libapt-inst1.4 libapt-pkg4.12 libbsd0 libedit2 libevent-2.0-5 libexpat1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpci3 libreadline6 libsqlite3-0 libstdc++6 libusb-0.1-4 libusb-1.0-0 libwrap0 lsb-release mime-support openssh-client python python-apt python-apt-common python-bzrlib python-configobj python2.7 readline-common ubuntu-keyring ucf
adduser base-files base-passwd bash bsdutils busybox-initramfs coreutils cpio dash debconf debianutils diffutils dpkg e2fslibs e2fsprogs findutils gcc-4.6-base grep gzip hostname ifupdown initramfs-tools initramfs-tools-bin initscripts insserv iproute klibc-utils libacl1 libattr1 libblkid1 libbz2-1.0 libc-bin libc6 libcomerr2 libdb5.1 libdbus-1-3 libdrm-intel1 libdrm-nouveau1a libdrm-radeon1 libdrm2 libelf1 libffi6 libgcc1 libglib2.0-0 libklibc liblzma5 libmount1 libncurses5 libncursesw5 libnih-dbus1 libnih1 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpciaccess0 libpcre3 libplymouth2 libpng12-0 libselinux1 libslang2 libss2 libssl1.0.0 libtinfo5 libudev0 libuuid1 locales login lsb-base makedev mawk module-init-tools mount mountall multiarch-support ncurses-base ncurses-bin passwd perl-base plymouth procps python-minimal python2.7-minimal sed sensible-utils sysv-rc sysvinit-utils tar tzdata udev upstart util-linux xz-utils zlib1g apt apt-utils bash-completion bzr etckeeper gnupg gpgv htop libapt-inst1.4 libapt-pkg4.12 libbsd0 libedit2 libevent-2.0-5 libexpat1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpci3 libreadline6 libsqlite3-0 libstdc++6 libusb-0.1-4 libusb-1.0-0 libwrap0 localepurge lsb-release lshw mc mercurial mime-support openssh-client openssh-server pciutils python python-apt python-apt-common python-bzrlib python-configobj python2.7 readline-common sudo tmux ubuntu-keyring ucf unattended-upgrades unzip usbutils
I: Deleting target directory
rm: cannot remove `/target': Device or resource busy

Je supprime maintenant le --print-debs à partir de la ligne de commande et j'obtiens soudain un message d'erreur utile :

I: Retrieving InRelease
I: Failed to retrieve InRelease
I: Retrieving Release
I: Retrieving Release.gpg
I: Checking Release signature
I: Valid Release signature (key id 630239CC130E1A7FD81A27B140976EAF437D05B5)
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: apt-utils bzr gnupg gpgv libapt-inst1.4 libapt-pkg4.12 libbsd0 libedit2 libevent-2.0-5 libexpat1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libpci3 libreadline6 libsqlite3-0 libstdc++6 libusb-0.1-4 libusb-1.0-0 libwrap0 lsb-release mime-support openssh-client python python-apt python-apt-common python-bzrlib python-configobj python2.7 readline-common ubuntu-keyring ucf
I: Checking component main on http://archive.ubuntu.com/ubuntu...
E: Couldn't find these debs: mc localepurge htop mercurial

Un message d'erreur que je n'ai pas obtenu lors de la première commande invoquée. Cela ressemble à un véritable bogue. Il est possible que seules quelques personnes utilisent la commande --print-debs Il n'a donc jamais été trouvé. La suppression des noms de paquets de la liste de l'argument --include argument lance alors le processus d'amorçage approprié (et, d'après ce qu'il semble être jusqu'à présent, couronné de succès).

-1voto

user358148 Points 1

Añada --keep-debootstrap-dir à la ligne de commande (même en cas d'utilisation de --print-debs ). Pour éviter que le répertoire cible ne soit supprimé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X