1 ответ:

вот некоторые ресурсы:

"изменение корня" или "chrooting" - это метод масштабирования части вашей файловой системы, так что, например, /path будет ссылаться на то, что ранее было доступно в /mnt/path. "Корень" в выражении "chroot" относится к корневой файловой системе /, а не для пользователя root. (Хотя, как правило, вам потребуется root-права пользователя, чтобы сделать chroot.)

подготовка

  • все шаги в этом руководстве, должны быть выполнены от пользователя root.

  • мы предполагаем, что ваш жесткий диск находится в /dev / sda1 и его тип файла ext3. Если вы не знаете расположение и тип файла вашего диска, прочитайте выход fdisk -l.

  • убедитесь, что архитектуры системы, в которую вы загрузились (например, это 32bit LiveCD) и система, которую вы хотите ввести (например, это 32bit установка на жесткий диск) матч. Вы можете определить архитектура, которую вы загрузили с помощью uname -m.

  • убедитесь, что все необходимые модули ядра загружены.

  • Настройка сети, Если вам это нужно (например, для установки обновленного пакеты.)

  • при необходимости инициализируйте раздел подкачки (например,swapon /dev/sda3).

выполнение chroot

cd /
mount -t ext3 /dev/sda1 /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev

если /boot каталог находится на другом разделе от вашего /, и вы хотите манипулировать файлами на нем (например, если вы будете работать с GRUB, выполнять обновление ядра и т. д.), вам также необходимо смонтировать этот раздел. Если он находится в /dev / sda2 и его тип файла ext2, то делать:

mount -t ext2 /dev/sda2 /mnt/boot

аналогично для любых других частей файловой системы (/var,/usr), которые находятся на отдельных разделах, но к которым вам нужен доступ. Как правило, когда вы chrooting, чтобы исправить что-то, вам не понадобится доступ к /home, поэтому вам не нужно беспокоиться об этом.

(также можно монтировать файловые системы после того, как вы chrooted, но разумнее сделать это заранее. Причина в том, что когда вы сделаете это после, внешняя среда / ядро не будет знать о смонтированные файловые системы, поэтому, если вы забудете их смонтировать перед выходом из chroot, система также не будет знать об этом при завершении работы. Это может повредить файловые системы.)

если вы настроили свою сеть и хотите использовать ее в корневой системе, скопируйте /etc/resolv.conf, так что вы сможете разрешать доменные имена:

cp -L /etc/resolv.conf /mnt/etc/resolv.conf

теперь вы готовы перейти в смонтированную файловую систему:

chroot /mnt /bin/bash

(если это возвращает ошибку chroot: cannot run command '/bin/bash': Exec format error, это обычно означает, что вы загрузились с одной архитектурой (например, x86_32) и пытаетесь chroot в другую (например, x86_64). Решение состоит в том, чтобы использовать LiveCD, который имеет ту же архитектуру, что и система, в которую вы хотите chroot.)

на данный момент Вы все еще используете ядро, с которым вы загрузились, но все пути /path будет относиться к тому, что раньше /mnt/path.

если вы будете делать что-нибудь с GRUB, вы должны быть уверены, что ваш это до-до-даты:

grep -v rootfs /proc/mounts > /etc/mtab

это также может быть полезно в этот момент, чтобы сделать:

source /etc/profile
export PS1="(chroot) $PS1"  # add a reminder to your prompt

делай свою грязную работу

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

  • resintall GRUB на MBR вашего диска
  • сброс забытого пароля
  • выполнить обновление ядра (или понижения)
  • перестроить initramdisk
  • исправить вашу / etc / fstab
  • переустановите пакеты с помощью диспетчера пакетов
  • все

очистка

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

exit

теперь размонтируйте все смонтированные разделы:

umount /mnt/boot # if you mounted this or any other separate partitions
umount /mnt/{proc,sys,dev}

наконец, попробуйте размонтировать жесткий диск:

umount /mnt

если вы получаете сообщение об ошибке, что /mnt (или любой другой раздел) занят, это может означать одно из двух:

  • программа осталась работать внутри chroot.

  • или чаще: точка монтирования все еще существует на этом монтировании. Например, /mnt /usr по-прежнему монтируется при попытке размонтировать / mnt.

в последнем случае, просто размонтировать оскорбительную точку монтирования в первую очередь. Чтобы получить напоминание обо всех текущих точках монтирования, запустите mount без параметры.

и наконец:

reboot