chroot - изменение корневой системы
Подготовка системной среды для режима Chroot
Загружаемся с LiveCD
Для того, чтобы обеспечить полноценное использование Chroot-среды, необходимо предварительно соблюсти ряд условий, а также подготовить для неё соответствующее окружение.
Должен быть примониторан корневой раздел той Linux-системы, в которую необходимо выполнить chroot. Чтобы легче сориентироваться в наименовании разделов и определить нужный, можно воспользоваться командой 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:
#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/