Использование chroot

Материал из IT в школе
Версия от 15:02, 15 мая 2026; Sonsenimia (обсуждение | вклад) (Новая страница: «<big>'''Chroot''' — это утилита, которая изменяет корневой каталог (<code>/</code>) для текущего процесса, создавая изолированное окружение. Процесс воспринимает только указанную директорию как корень файловой системы, не имея доступа к остальным частям реальной с...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Chroot — это утилита, которая изменяет корневой каталог (/) для текущего процесса, создавая изолированное окружение. Процесс воспринимает только указанную директорию как корень файловой системы, не имея доступа к остальным частям реальной системы. Может использоваться для тестирования, восстановления системы.

Для входа в систему через chroot выполните следующие действия:

  • Загрузитесь с помощью загрузочного USB-накопителя с МОС12;
  • Выберите МОС live;
  • Определите системный раздел:

Для этого введите в консоли команду lsblk

Или войдите в Диспетчер разделов от KDE, нажмите левой кнопкой мыши на название устройства и обратите внимание на название разделов EFI и BTRFS.

  • Создайте точку монтирования (временную директорию, в которую будет примонтирована система) с помощью команды sudo mkdir /mnt/root;
  • Примонтируйте разделы с BTRFS командой sudo mount -o subvol=root /dev/sdXX /mnt/root (Замените sdXX на имя вашего раздела);
  • Примонтируйте EFI-раздел командой sudo mount /dev/sdX1 /mnt/root/boot (Замените sdX1 на имя вашего раздела);
  • Примонтируйте специальные псевдо-файловые системы из Live-окружения, используя следующие команды:

sudo mount --bind /dev /mnt/root/dev

sudo mount --bind /proc /mnt/root/proc

sudo mount --bind /sys /mnt/root/sys

  • Скопируйте настройки DNS, чтобы внутри chroot был Интернет, введя команду:

sudo mount --bind /etc/resolv.conf /mnt/root/etc/resolv.conf

Если нет доступа в Интернет, проверьте, что сетевое соединение работает в Live-системе.

  • Выполните chroot командой sudo chroot /mnt/root.

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

  • После завершения всех действий корректно выйдите из chroot, введя exit.
  • Отмонтируйте разделы в обратном порядке:

sudo umount /mnt/root/dev

sudo umount /mnt/root/proc

sudo umount /mnt/root/sys

sudo umount /mnt/root/boot

sudo umount /mnt/root

  • Перезагрузите устройство, используя sudo reboot.

Возможные ошибки

/mnt/root/etc/resolv.conf mount point is a symbolic link to nowhere

При возникновении такой ошибки удалите ссылку внутри примонтированной системы:

sudo rm /mnt/root/etc/resolv.conf

Скопируйте рабочий файл resolv.conf из Live-системы:

sudo cp /etc/resolv.conf /mnt/root/etc/resolv.conf

После исправления ссылки выполните монтирование других системных директорий и сам chroot по инструкции выше.


umount: /mnt/root target is busy

Данная ошибка означает, что внутри каталога /mnt/rootв данный момент работают какие-то процессы или открыты файлы. Также данная ошибка может возникать, если были попытки размонтировать корневой раздел, не размонтировав предварительно дочерние точки монтирования.

Чтобы завершить все процессы используйте команду:

sudo fuser -km /mnt/root

Если данная команда не помогает, используйте команду:

sudo umount -l /mnt/root

После успешного размонтирования перезагрузите или выключите устройство.