December 21, 2024
chroor in linux

Linux / Unix: chroot Command Examples

Change root (chroot) is an operation that changes the apparent root directory for the current running process and their children. A program that is run in such a modified environment cannot access files and commands outside that environmental directory tree.

Requirements

1. root privileges
2. another working Linux environment,such as Live CD boot or an        existing distribution
3. matching environment architectures of chroot source and destination (check current environment architecture with uname -m)
4. kernel modules which you may need in chroot environment must be loaded (for example, with modprobe)

Manually changing root in a directory

  1. Ensure you met all requirements, as per Requirements

2. Mount the temporary API filesystems:

 cd /location/of/new/root
 mount -t proc proc proc/
 mount --rbind /sys sys/
 mount --rbind /dev dev/
 mount --rbind /run run/ (optionally)

3. If you need to use an internet connection in the chroot environment, copy over the DNS details:

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

4. Change root into /location/of/new/root, specifying the shell (/bin/bash in this example):

chroot /location/of/new/root /bin/bash

5. After chrooting it may be necessary to load the local bash configuration:

 source /etc/profile
 source ~/.bashrc

6. Optionally, create a unique prompt to be able to differentiate your chroot environment:

export PS1="(chroot) $PS1"

7. When finished with the chroot, you can exit it via:

exit

8. Unmount the temporary file systems:

 cd /
 umount --recursive /location/of/new/root

Reasons to use chroot

Changing root is commonly done for performing system maintenance on systems where booting and/or logging in is no longer possible.

Common examples are:

 reinstalling the bootloader
 rebuilding the initramfs image
 upgrading or downgrading packages
 resetting a forgotten password
 building software in a clean root environment

Vedant Kumar

Currently I'm working as an Implementation Engineer, Started my career as an System Administrator - Linux. Additionally loves to explore new technologies and research about new open-source software that ease the development cycle.

View all posts by Vedant Kumar →

Leave a Reply

Your email address will not be published. Required fields are marked *


The reCAPTCHA verification period has expired. Please reload the page.

close

Ad Blocker Detected!

VEDANT EXPLAINS
We've noticed that you are using an ad blocker. Advertising helps fund our server cost and keep it truly independent. It helps to build our content creator team. So please disable your ad blocker, and help us to keep providing you with free- great content - for free. Thank you for your support.

Refresh