Difference between revisions of "Chroot"
From Christoph's Personal Wiki
(New page: A '''chroot''' on Linux operating systems is an operation that changes the apparent root directory for the current running process and its children. The modified environment is called ...) |
(→Copy files while in Rescue Mode) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
==Copy files while in Rescue Mode== | ==Copy files while in Rescue Mode== | ||
− | ''Note: The following section shows how to copy files from a [[:Category:Rackspace]] Cloud Server while in Rescue Mode.'' | + | ''Note: The following section shows how to copy files from a [[:Category:Rackspace|Rackspace]] Cloud Server while in Rescue Mode.'' |
* Find out which is your "real" root device (i.e., the one that is not the Rescue Mode's root device / the one already mounted): | * Find out which is your "real" root device (i.e., the one that is not the Rescue Mode's root device / the one already mounted): | ||
Line 13: | Line 13: | ||
$ mount -o bind /dev/shm /mnt/dev/shm | $ mount -o bind /dev/shm /mnt/dev/shm | ||
$ mount -o bind /proc /mnt/proc | $ mount -o bind /proc /mnt/proc | ||
− | + | #***** OR *****: | |
$ mount /dev/xvdb1 /mnt | $ mount /dev/xvdb1 /mnt | ||
$ mount -t proc none /mnt/proc | $ mount -t proc none /mnt/proc | ||
Line 27: | Line 27: | ||
$ chroot /mnt /bin/bash | $ chroot /mnt /bin/bash | ||
− | * Copy the files to a remote/destination server: | + | * Copy the files to a remote/destination server (using [[rsync]]): |
− | $ rsync - | + | $ rsync -e 'ssh -p 22' -avl --stats --progress /path/to/data/dir user@x.x.x.x:/path/to/dest/data/dir |
− | + | ||
* Exit the chrooted jail | * Exit the chrooted jail | ||
$ sync | $ sync | ||
Line 39: | Line 39: | ||
==Converting a root filesystem to ext4== | ==Converting a root filesystem to ext4== | ||
− | ''Note: The following section shows how to convert the root filesystem from ext3 to ext4 on a [[:Category:Rackspace]] Cloud Server while in Rescue Mode.'' | + | ''Note: The following section shows how to convert the root filesystem from ext3 to ext4 on a [[:Category:Rackspace|Rackspace]] Cloud Server while in Rescue Mode.'' |
* Assuming your root device is <code>/dev/xvda1</code>, before you enter Rescue Mode, change your <code>/etc/fstab</code> entry for root from: | * Assuming your root device is <code>/dev/xvda1</code>, before you enter Rescue Mode, change your <code>/etc/fstab</code> entry for root from: |
Latest revision as of 07:21, 1 July 2020
A chroot on Linux operating systems is an operation that changes the apparent root directory for the current running process and its children. The modified environment is called a "chroot jail".
Copy files while in Rescue Mode
Note: The following section shows how to copy files from a Rackspace Cloud Server while in Rescue Mode.
- Find out which is your "real" root device (i.e., the one that is not the Rescue Mode's root device / the one already mounted):
$ fdisk -l
- Mount "real" root device and required filesystem dirs:
$ mount /dev/xvdb1 /mnt $ mount -o bind /dev /mnt/dev $ mount -o bind /sys /mnt/sys $ mount -o bind /dev/shm /mnt/dev/shm $ mount -o bind /proc /mnt/proc #***** OR *****: $ mount /dev/xvdb1 /mnt $ mount -t proc none /mnt/proc $ mount --rbind /sys /mnt/sys $ mount --rbind /dev /mnt/dev
- Set up networking for your chrooted jail:
$ ln -s /etc/resolv.conf /mnt/etc/resolv.conf
- Chroot into your jail:
$ chroot /mnt /bin/bash
- Copy the files to a remote/destination server (using rsync):
$ rsync -e 'ssh -p 22' -avl --stats --progress /path/to/data/dir user@x.x.x.x:/path/to/dest/data/dir
- Exit the chrooted jail
$ sync $ exit $ umount -lf /mnt/{dev,sys,proc} $ umount /mnt
Finally, exit "Rescue Mode" and you are done.
Converting a root filesystem to ext4
Note: The following section shows how to convert the root filesystem from ext3 to ext4 on a Rackspace Cloud Server while in Rescue Mode.
- Assuming your root device is
/dev/xvda1
, before you enter Rescue Mode, change your/etc/fstab
entry for root from:
/dev/xvda1 / ext3 errors=remount-ro,noatime,barrier=0 0 1
to:
/dev/xvda1 / ext4 errors=remount-ro,noatime,barrier=0 0 1
then enter Rescue Mode (do not reboot your server before entering Rescue Mode).
- While in Rescue Mode, find out which device is your "real" root device (i.e., not the Rescue Mode's root device):
$ fdisk -l
- Then run a filesystem check on the "real" root filesystem:
$ fsck.ext3 -pf /dev/xvdb1
- Enable all the ext4 features on the root filesystem:
$ tune2fs -O extents,uninit_bg,dir_index /dev/xvdb1
- Run another filesystem check on the root filesystem (it will most likely find and fix errors. This is completely normal):
$ fsck.ext4 -yfD /dev/xvdb1
You should now be able to exit Rescue Mode and your root filesystem will be using ext4.