From Windows-Wimp to Command-Line Warrior. Part 13: Chrooting, Gentoo handbook, page 6
3 September 2005
Chrooting
You only need to read the first part of page 6 of the Gentoo Handbook. The rest of that page can safely be ignored for now.
The story so far
So far we have made a liveCD, booted a minimal GNU/Linux system based on the LiveCD, used that system to set up partitions, downloaded the necessary files and extacted them to make the bare bones of a new system based on the hard- drive.
The new system still has many important parts left out:
- The new system has no kernel and thus cannot detect or command
hardware.
- The new system has no permanent record of how the disk partitions are
setup and mounted.
- The new system does no network settings so cannot connect to the
internet.
We have not setup users and passwords for the system.
We have not told the new system what type of keyboard you have.
- We have not set up the boot loader, system logger, automatic task
manager (cron) or file index.
Even though there is much left to do, it is simplier to sort out from inside the new system. How can work within the new system without all the missing parts?
Chroot is Change Root
It is this Chicken and Egg problem that Chrooting achieves. The word Chroot is short for "Change root".
What chrooting archieves is that we can use the new system by carrying over the setup (temporarily) from the LiveCD session that you have been using so far.
The first thing to do is to copy over the current network infomation so you can still access the Internet.
> cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
Then we need to mount proc. Proc is not short for the People's Republic of China, rather it is short for "process" and is where the GNU/Linux system stores information about currently running processes. To find out more about the gory details, read "An Overview of the Proc Filesystem". Anyway for now you just need to use this command:
> mount -t proc none /mnt/gentoo/proc
Now we undertake for the chroot:
> chroot /mnt/gentoo /bin/bash
You bash prompt may have changed a bit, don't worry about that. Now we try to update the environment variables:
> env-update
If you have made any syntax errors in /etc/make.conf then it will throw an error here (fix them with 'nano -w /etc/make.conf' then run 'env-update' again).
Next we update the profile:
> source /etc/profile
Now you are within your own Gentoo operating system! Well done for getting this far!
Chrooting again after a shutdown.
If at any point from now (until we are completely finished), you happen to turn off your computer and want to carry on the remaining steps of the install, you can chroot again from the liveCD into your new system.
You can also do this if you have made a mistake (say with the kernel) and find your finished system does not start up properly. You can go back and fix the problem.
Once you know how to do this, the Gentoo LiveCD will forever be available to you as a rescue CD.
Firstly don't forget to remount your disks and proc and turn swap on, for example:
> swapon /dev/hda2 mount /dev/hda5 /mnt/gentoo mount /dev/hda3 /mnt/gentoo/boot mount -t proc none /mnt/gentoo/proc
(Don't forget to use your partition locations rather than mine). Next run the chroot, environment and profile commands:
> chroot /mnt/gentoo /bin/bash env-update source /etc/profile
How to shutdown cleanly during the install
If you lose power or something and don't shutdown cleanly, it is not the end of the world.
However, if you know you need to shutdown, say to get something from Windows or because there is a lighting storm coming, then it is best to try and shutdown cleanly.
First, shutdown the disks that you manually mounted:
> umount /mnt/gentoo/boot umount /mnt/gentoo swapoff /dev/hda2
Second, run the shutdown command with '-h' to halt the system completely:
> shutdown -h now
Or use or '-r' to reboot:
> shutdown -r now


