Вопрос или проблема
Я исследовал это, и ни один из ответов (пока) здесь, ни поиск в 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, это не помогает.
Проведенные мной исследования, похоже, указывают на то, что эта проблема связана с:
-
попытками установить 64-битную установку в 32-битную ОС (что я явно НЕ делаю)
-
возможными проблемами с procfs в определенных ядрах, но отчеты о багах неясны, и, очевидно, это выглядит старым
-
многими проблемами, связанными с виртуализацией (что я не делаю)
Я думаю, что поскольку это очень простая установка дистрибутива (другого) 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? Или, если нет, я полагаю, мои варианты будут:
-
Взломать дистрибутив Backbox, чтобы заставить его работать, есть ли предложения, с чего начать?
-
Скачать дистрибутив Xubuntu и затем применить PPA Backbox… Есть ли скрипт Xubuntu для debootstrap и есть ли ссылка на автоматизированный установщик для всех инструментов PPA BB, чтобы быстро установить их?
🙁
В моей системе это происходит с каждой Ubuntu/Backbox, которую я пробовал. Похоже, что CD не может быть использован в качестве репозитория (см. здесь), что имеет смысл: debootstrap
должен иметь путь к репозиторию (некоторой локальной/удаленной папке с предопределенной структурой и архивами .deb), а Ubuntu/Backbox поставляется с squashfs (по сути, образ с базовой системой в нем).
Поскольку Backbox, похоже, просто Ubuntu 12.04 (он использует в качестве источника пакетов http://archive.ubuntu.com) и некоторые дополнительные репозитории, я думаю, у вас есть два варианта:
-
Создать базовый Ubuntu chroot, а затем установить все необходимое программное обеспечение: вы можете предоставить
debootstrap
скрипт для добавления PPA, установки программного обеспечения и т.д. -
Извлечь 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.
-
Пробовали ли вы запустить проблемную команду вручную из оболочки? Это часто может дать больше представлений о том, что происходит.
-
Это кажется мне странным:
chroot /home/user/test/chroot mount -t proc proc /proc
. Действительно ли существует бинарник chroot под /home/user/test? -
Что произойдет, если вы попытаетесь указать полный путь к исполняемому файлу монтирования следующим образом:
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.
Надеюсь, это поможет вам решить вашу проблему. Удачи!