chroot - изменение корневой системы

 

Подготовка системной среды для режима Chroot

Загружаемся с LiveCD 

Для того, чтобы обеспечить полноценное использование Chroot-среды, необходимо предварительно соблюсти ряд условий, а также подготовить для неё соответствующее окружение.
Должен быть примониторан корневой раздел той Linux-системы, в которую необходимо выполнить chroot. Чтобы легче сориентироваться в наименовании разделов и определить нужный, можно воспользоваться командой lsblk

$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232,9G 0 disk
├─sda1 8:1 0 524M 0 part /boot
├─sda2 8:2 0 18,6G 0 part /
├─sda3 8:3 0 167,7G 0 part /usr
├─sda4 8:4 0 18,6G 0 part /var
└─sda5 8:5 0 27,5G 0 part /opt
sdb 8:32 0 149,1G 0 disk
└─sdb1 8:33 0 149,1G 0 part /home
sr0 11:0 1 1024M 0 rom

В данном случае это sda2. Теперь нужно создать каталог для монтирования этого раздела и примонтировать его командой mount:

#mkdir /mnt/test
#mount /dev/sda2 /mnt/test

В случае, когда другие обязательные системные каталоги (/home, /boot) вынесены в отдельные разделы, то их также необходимо примонтировать:

#mount /dev/sda1 /mnt/test/boot/
#mount /dev/sdb1 /mnt/test/home/

Теперь следует примонтировать служебные каталоги, необходимые для обеспечения взаимодействия будущей системной среды Chroot с ядром:

#cd /mnt/test
#sudo mount -t proc proc proc/
#sudo mount --rbind /sys sys/
#sudo mount --rbind /dev dev/

Иногда, для того, чтобы было возможно использовать сеть, необходимо скопировать файл resolv.conf:

#cp /etc/resolv.conf etc/resolv.conf

Теперь можно подключить командную оболочку (например Bash) к новому корню и, собственно, создать новую среду Chroot:

#chroot /mnt/test /bin/bash

С этого момента всё системное окружение переориентировано на работу с корневой ФС раздела sda2 и связанными с ним другими системными и служебными каталогами.
Полезным будет также выполнить инициализацию системных и сеансовых (пользовательских) переменных окружения:

#source /etc/profile
#source ~/.bashrc

 

По завершении работы в среде Chroot, выыход из неё осуществляется командой:

#exit

После этого необходимо отмонтировать корневую и все остальные ФС, которые были примонтированы ранее:

#cd /
#umount --recursive /mnt/test/

 

Еще в этой категории: « dmesg