debootstrap хочет удалить целевую папку, почему?

В прошлом я использовал debootstrap для начальной загрузки систем Debian и Ubuntu. Но на этот раз, пытаясь загрузить систему Ubuntu из системы спасения Debian 6 (Примечание: у меня нет выбора в отношении системы спасения, поэтому, пожалуйста, не предлагайте использовать Ubuntu или что-то подобное, она не будет мне доступна). [ 1118]

Рассмотрим следующую структуру папок /target, которую я хочу использовать для начальной загрузки системы:

/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)

Теперь я выполняю следующую команду debootstrap:

# 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

Я запускаю это как root, но последние три строки меня отбрасывают. Если я попробую то же самое, но без /target/var и /target/home, последние строки изменятся на:

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

I am , используя:

# debootstrap --version
debootstrap 1.0.42ubuntu0.1

из здесь и я установил его через dpkg -i debootstrap_1.0.42ubuntu0.1_all.deb, который утверждал, что был успешным. Я также попытался установить вариант buildd вместо minbase. Тот же результат.

Что здесь происходит? Почему debootstrap пытается удалить целевую папку?

Примечание: Я также проверил страницу man, но не могу найти параметр, чтобы предотвратить эту попытку удаления.

Также обратите внимание: установка связки ключей для архива Ubuntu ничего не меняет. Я использовал wget -O /usr/share/keyrings/ubuntu-archive-keyring.gpg http://archive.ubuntu.com/ubuntu/project/ubuntu-archive-keyring.gpg для этого.

3
задан 1 June 2015 в 19:35

2 ответа

добавить --keep-debootstrap-dir в командную строку (даже при использовании --print-debs). Чтобы предотвратить удаление целевого каталога.

0
ответ дан 1 June 2015 в 19:35

Облом, проблема, кажется, ошибка (?) В debootstrap. Когда я запускаю команду следующим образом:

# 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
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

Теперь я удаляю --print-debs из командной строки и неожиданно я получить полезное сообщение об ошибке:

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

Сообщение об ошибке, которое я не получил при первой вызванной команде. Это похоже на реальную ошибку. Возможно, никто, кроме нескольких человек, не использует аргумент --print-debs, поэтому он так и не был найден. Удаление имен пакетов из списка в аргументе --include затем запускает правильный (и как он выглядит до сих пор) успешный процесс начальной загрузки.

0
ответ дан 1 June 2015 в 19:35

Другие вопросы по тегам:

Похожие вопросы: