Booting a broken linux system


Sometimes, we may have problem to boot the linux system that is installed on the harddisk. For instance, after some administration tasks, or after installing an operating system on your hard disk, you may loose the ability to boot linux because another system may have overwritten the MBR or replaced the boot loader. In these cases it is useful to use SystemRescueCd to boot the existing Linux system that is already installed on the harddisk. And once this system is running you will be able to repair the boot loader.

Linux provides an a root=device option. By default, this option is used to specify which device contains the root filesystem we want to boot from. After the kernel is initialized, it tries to mount the device specified, and it executes /sbin/init which will initialize the system in the userspace. For instance, you can boot with a command line such as linux root=/dev/sda1 if Linux is installed on the first partition of that hard disk. This command line is executed by a boot loader such as Grub.

SystemRescueCd provides an improved support for the root=device option. When you boot SystemRescueCd with a command line such as rescue64 root=/dev/sda1, the system will first load the kernel modules from the initramdisk. These modules may be necessary for your system to boot, since they can provide support for IDE, SATA, SCSI disk controllers or alternative filesystems. Once the kernel modules are loaded, SystemRescueCd will mount the device specified with the root option, and try to execute /sbin/init, which starts your system. That way you have access to your normal operating system and you can repair it. This option also supports LVM disks. For instance, if your root filesystem is installed on an LVM logical volume, you can boot it with SystemRescueCd using a boot command line such as the following one:

rescue64 root=/dev/VolGroup00/LogVol00

SystemRescueCd comes with support of the root=auto option. When it is used, SystemRescueCd scans all the block devices such as the hard disks and tries to find a Linux filesystem that contains a Linux operating system. To do that, it sees which partitions contain a file named /sbin/init. When in finds such a filesystem, it executes /sbin/init in a chroot, so it starts that system. In other words, the root=auto option will just boot the first Linux operating system installed on an hard disk of your computer. You do not have to specify the boot device, which can be time consuming if you do not remember which one it is.

Do not forget that you need a 64bit kernel when you start a Linux operating system using 64bit binaries. So if your Linux operating system is a 64bit system, you will have to boot with either rescue64 or altker64 instead of rescue32 and altker32.


Documentation
Manual (EN)
LVM Guide
Disk partitioning
Networking
Manual (FR)

Related
Sourceforge
FSArchiver