How to chroot properly into your OS/distro

From a LiveCD or if you're doing something like converting your non-RAID install to mdadm here's how you would chroot properly (you have to mount your proc, sys and dev on the running system/LiveCD to your chroot environment if you want things to work right, especially if you need to run update-initramfs due to a driver change etc..)

*replace "path" with your mount/chroot path

mount -o bind /proc /mnt/path/proc
mount -o bind /dev/ mnt/path/dev
mount -o bind /sys /mnt/path/sys
chroot /mnt/path

Here's a handy script to do it (basically just give it the path to your chroot and it does the rest):

#!/bin/bash
if [ -z "$1" ]; then
 echo "Usage $0 chroot/dir"
 exit 1
fi

destination=$1
for mountit in proc sys dev dev/pts; do
   mount -o bind /$mountit $destination/$mountit
done

 

Here's a handy script to unmount the chroot'd system paths:

#!/bin/bash
if [ -z "$1" ]; then
 echo "Usage $0 chroot/dir"
 exit 1
fi

#note since /dev/pts is mounted inside /dev you have to unmount /dev/pts first rather than when we mounted /dev above we would mount /dev/pts after the fact
destination=$1
for mountit in dev/pts proc sys dev; do
   umount $destination/$mountit
done


Tags:

chroot, os, distrofrom, livecd, converting, raid, install, mdadm, mount, proc, sys, dev, update, initramfs, etc, quot, bind, mnt, bin, bash, z, echo, usage, dir, fi, destination, mountit, pts, unmount, paths, mounted, umount,

Latest Articles

  • Ubuntu Debian Linux Cannot Install Wine Solution - wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu14.2) but it is not installable wine1.4 : Depends: wine1.6 but it is not going to be installed
  • How To Install python 3.4 3.5 and up on Linux with wine - Working Solution
  • using Xvfb on virtual remote ssh server to have X graphical programs work
  • ssh Received disconnect from port 22:2: Too many authentication failures
  • named bind errors - DNSKEY: unable to find a DNSKEY which verifies the DNSKEY RRset and also matches a trusted key for '.'
  • OpenVZ vs LXC DIR mode poor security in LXC
  • httpd: Syntax error on line 221 of /etc/httpd/conf/httpd.conf: Syntax error on line 6 of /etc/httpd/conf.d/php.conf: Cannot load modules/libphp5.so into server: /lib64/libresolv.so.2: symbol __h_errno, version GLIBC_PRIVATE not defined in file libc.s
  • Radeon R3 GPU on Debian Crashing
  • MySQL 5.7 on Debian and Ubuntu - How To Reset Root Password
  • SSH and sshfs timeout settings keepalive
  • Linux How To Add User To Additional Group
  • Howto Set Static IP on boot in initramfs for dropbear or other purposes NFS, Linux, Debian, Ubuntu, CentOS
  • Convert and install to LUKS Encrypted Drive Ubuntu 18.04 19.10 Linux Mint and Debian Based Linux
  • Debian and Netplan
  • CentOS 8 how to restart the network!
  • CentOS 8 how to convert to a bootable mdadm RAID software array
  • ADATA USB Thumb Drive Issues
  • KMODE EXCEPTION NOT HANDLED - QEMU/KVM Won't Boot Windows 2016 or 10 Image or Physical Machine
  • Linux Mint / Ubuntu / Debian Mate Disable Guest Session and Hide Usernames on Lightdm Login screen GUI
  • SSH How To Create Public/Private Key Pair and with a Larger Keysize than 2048 bits