debootstrap не удаётся смонтировать /proc

Вопрос или проблема

Я исследовал это, и ни один из ответов (пока) здесь, ни поиск в Google не совпадает с моей проблемой.

Вот ситуация:

Я запускаю Xubuntu 12.04 как базовую установку и пытаюсь настроить debootstrap chroot установку BackBox 3.01 (также 12.04). ОБЕ архитектуры amd64 и я проверил этот факт взад и вперед.

Я следовал инструкциям на обоих ресурсах:

https://help.ubuntu.com/community/DebootstrapChroot
https://unix.stackexchange.com/questions/12956/how-do-i-run-32-bit-programs-on-a-64-bit-ubuntu/12957#12957 (спасибо, Джайлс!)

Проблемы с RTFM и неуместными нажатиями клавиш в сторону, я сейчас столкнулся с проблемой во время установки debootstrap, где я достигаю точки и получаю:

W: Ошибка при попытке выполнить: chroot /home/user/test/chroot mount -t proc proc /proc

Установка, которая ложится, недостаточна для schroot, как я уже пробовал, ни если я повторю с опцией –foreign, это не помогает.

Проведенные мной исследования, похоже, указывают на то, что эта проблема связана с:

  1. попытками установить 64-битную установку в 32-битную ОС (что я явно НЕ делаю)

  2. возможными проблемами с procfs в определенных ядрах, но отчеты о багах неясны, и, очевидно, это выглядит старым

  3. многими проблемами, связанными с виртуализацией (что я не делаю)

Я думаю, что поскольку это очень простая установка дистрибутива (другого) Ubuntu на основе file:/// в моем окружении chroot (64 -> 64), должно быть что-то очень простое в шагах настройки, которые я пропустил или забыл. Должен ли я сделать что-то вроде предварительной монтировки /srv/chroot/backbox3_01/var/proc на что-то вроде:

sudo mount -o bind /proc /srv/chroot/backbox3_01

Буду признателен за любую помощь.

****** ОБНОВЛЕНИЕ *******
Итак, я немного покопался, и по крайней мере теперь я знаю, в чем часть проблемы. Ошибка возникает из-за того, что “mount” является неизвестным “файлом или директорией”, что означает, что в контексте, из которого выполняется chroot, нет исполняемого файла “mount”, который можно было бы вызвать. Я предполагаю, что:

a. Какой-то исполняемый контекст не был перенесен и “предварительно” настроен должным образом на этапе перед этим шагом?

или

b. Возможно, некоторые свойства окружения нужно экспортировать перед выполнением этого скрипта?

или

c. ??

Буду признателен за любую помощь…

*********** Дальнейшее обновление ***************
По всей видимости, установка Backbox не распаковывается в директории chroot должным образом. Backbox 3 – это дистрибутив на основе Precise (Ubuntu 12.04), и я только что запустил debootstrap на Precise. Я получаю полную установку.

Когда я делаю то же самое для Backbox, я получаю только /dev, /etc и /var. Ничего больше, что означает, что “mount” не существует в структуре chroot. Я пробовал установить это с CD и из локальной копии CD (в своей файловой системе). Я проверил документ “Release” на установочном CD, и он кажется полным, но я не вижу, почему он останавливается перед установкой остальных компонентов.

Поэтому я предполагаю, что в дистрибутиве Backbox есть что-то, что не настроено для того, чтобы debootstrap мог должным образом распаковать его – по крайней мере, из CD дистрибутива. Знает ли кто-нибудь о онлайн-архиве (эквивалентном http://archive.ubuntu.com/ubuntu/) для Backbox? Или, если нет, я полагаю, мои варианты будут:

  1. Взломать дистрибутив Backbox, чтобы заставить его работать, есть ли предложения, с чего начать?

  2. Скачать дистрибутив Xubuntu и затем применить PPA Backbox… Есть ли скрипт Xubuntu для debootstrap и есть ли ссылка на автоматизированный установщик для всех инструментов PPA BB, чтобы быстро установить их?

🙁

В моей системе это происходит с каждой Ubuntu/Backbox, которую я пробовал. Похоже, что CD не может быть использован в качестве репозитория (см. здесь), что имеет смысл: debootstrap должен иметь путь к репозиторию (некоторой локальной/удаленной папке с предопределенной структурой и архивами .deb), а Ubuntu/Backbox поставляется с squashfs (по сути, образ с базовой системой в нем).

Поскольку Backbox, похоже, просто Ubuntu 12.04 (он использует в качестве источника пакетов http://archive.ubuntu.com) и некоторые дополнительные репозитории, я думаю, у вас есть два варианта:

  1. Создать базовый Ubuntu chroot, а затем установить все необходимое программное обеспечение: вы можете предоставить debootstrap скрипт для добавления PPA, установки программного обеспечения и т.д.

  2. Извлечь squashfs: вам нужно будет смонтировать ISO, затем смонтировать squashfs в нем и, наконец, скопировать корневую файловую систему:

    sudo mount /path/to/backbox.iso <bb_mount_point>
    sudo mount -t squashfs <bb_mount_point>/casper/filesystem.squashfs <squash_mount_point>
    sudo cp -rxv <squash_mount_point> <chroot_destination>
    

Я не пробовал ни один из этих способов, поэтому не могу гарантировать, что какой-либо из них сработает. Также действительным способом достижения этого будет установка BB в виртуальной машине (вы можете использовать QEMU/KVM и т.д.), а затем копирование корневой файловой системы в любое место, где вам это нужно.

Удачи.

У меня есть просто куча диких предположений, так как мой опыт в основном с debootstrap для Debian.

  1. Пробовали ли вы запустить проблемную команду вручную из оболочки? Это часто может дать больше представлений о том, что происходит.

  2. Это кажется мне странным: chroot /home/user/test/chroot mount -t proc proc /proc. Действительно ли существует бинарник chroot под /home/user/test?

  3. Что произойдет, если вы попытаетесь указать полный путь к исполняемому файлу монтирования следующим образом: chroot /home/user/test/chroot /bin/mount -t proc proc /proc?

Ответ или решение

Решение проблемы: ошибочный монтирование /proc при использовании debootstrap

Ваша проблема с ошибкой монтирования /proc во время установки chroot-окружения BackBox через debootstrap может быть вызвана несколькими факторами. Давайте подробно рассмотрим возможные причины и шаги для их устранения.

1. Проверка архитектуры

Вы уже подтвердили, что используете соответствующую архитектуру (amd64), что исключает вероятность несовместимости между 32-битной и 64-битной системами. Убедитесь, что оба дистрибутива (Xubuntu и BackBox) действительно основаны на одной и той же версии Ubuntu и имеют совместимые пакеты.

2. Структура файловой системы

Ошибка, которая досаждает вам, указывает на недоступность команды mount в chroot-окружении. Чтобы обеспечить корректное создание chroot, вам необходимо удостовериться, что все необходимые исполняемые файлы и библиотеки перенесены в новое окружение.

Подходы к устранению проблемы:

  • Создание стандартного chroot и установка BackBox через PPA: Вы можете сначала создать стандартное окружение Ubuntu через debootstrap, а затем добавлять необходимые PPA для установки компонентов BackBox. Это даст вам больше контроля над процессом установки.

  • Извлечение squashfs: Если ISO-образ BackBox не может быть использован напрямую, попробуйте смонтировать его, затем извлечь содержимое squashfs образа и скопировать файловую систему в ваш chroot. Вот пример команд для выполнения этой операции:

    sudo mount /path/to/backbox.iso /mnt/backbox
    sudo mount -t squashfs /mnt/backbox/casper/filesystem.squashfs /mnt/squash
    sudo cp -r /mnt/squash/* /srv/chroot/backbox3_01/

3. Монтирование proc

Для устранения ошибки, связанной с монтированием /proc, попытайтесь выполнить монтирование вручную:

sudo mount -t proc /proc /srv/chroot/backbox3_01/proc

4. Проверка исполняемых файлов

Если ошибка с командой mount продолжает возникать, выполните следующие шаги:

  • Убедитесь, что в вашем chroot-окружении доступен исполняемый файл mount. Проверьте наличие /bin/mount после установки:

    ls /srv/chroot/backbox3_01/bin/mount
  • Если файл отсутствует, возможно, установка BackBox предыдущим методом оказалась неполной.

5. Экспортирование переменных окружения

При работе в chroot не забудьте экспортировать необходимые переменные окружения. Это может включать такие переменные, как PATH. Вы можете выполнить это перед запуском chroot:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Заключение

Если все вышеперечисленное не принесли успеха, рекомендуется попробовать перезапустить процесс с чистого листа, внимательно следя за каждым шагом, чтобы точно идентифицировать момент, когда начинается ошибка. Это может дать представление о том, где происходит сбой.

Кроме того, для использования системного ресурса, такого как интернет, вы можете попробовать посетить онлайн-архивы, относящиеся к BackBox, или, в случае неудачи, возможно рассмотрите возможность установки стандартной версии Ubuntu и добавление нужных пакетов из BackBox.

Надеюсь, это поможет вам решить вашу проблему. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...