Tuesday, October 9, 2007

Linux root password recovery(LiveCdRecovery)

This page describes methods for using the Ubuntu Live CD for recovering from different kinds of problems. If you do not have an Ubuntu/Debian disk, please refer to GettingUbuntu/Debian.

Lost Password

Here is how you can use the Live CD to change the administrative password on your machine if you have lost/forgot the current password.

Note that you can usually just boot into "Recovery Mode" and run the passwd command directly.

  1. Boot the Ubuntu Live CD.

  2. Press Ctrl-Alt-F1

  3. sudo mount /dev/hda1 /mnt

  4. Depending on your machine it could also be sudo mount /dev/sda1 /mnt. If you created a custom partition layout when installing Ubuntu/Debian you have to find your root partition using the fdisk utility. See the section Finding your root partition.

  5. sudo chroot /mnt

You can now use the passwd command to reset a password.

Note: In the mount command, /dev/hda1 will need to be replaced with the partition where the root of the file system resides.

Add User to a Group

Note that you can simply boot into "Recovery Mode" and run the adduser command directly.

  1. Boot the Ubuntu Live CD.

  2. Press Ctrl-Alt-F1

  3. sudo mount /dev/hda1 /mnt

  4. sudo chroot /mnt

  5. adduser username groupname

Update Failure

If there was an update that made your system non-bootable and they have fixed it in the repositories, you can use the Live CD to run apt-get to get the new files to fix your system.

  1. Boot the Ubuntu Live CD.

  2. Press Ctrl-Alt-F1

  3. sudo mount /dev/hda1 /mnt

  4. sudo chroot /mnt

  5. apt-get update

  6. apt-get upgrade

Finding your root partition

If you created a custom partition layout during the Debian/Ubuntu installation, your root partition is probably not /dev/hda1 or /dev/sda1. If you do not know which partition corresponds to your root partition you can use the following procedure to find your root partition. We assume you have booted the live cd and are at the terminal.

  1. If you are not using a software raid setup or have setup your partitions using LVM/2 or EVMS your IDE/SATA/SCSI devices should be accessible through the files /dev/hd[a-z] and /dev/sd[a-z]. /dev/hda corresponds to the primary master device on your IDE bus, while /dev/sda is your first SCSI/SATA device. If you are using software raid, LVM, LVM2 or EVMS, your devices may be listed in the following directories:

    /dev/evms/dm     if you are using software raid
    /dev/evms/lvm if you are using LVM
    /dev/evms/lvm2 if you are using LVM2
    /dev/evms if you are using EVMS

    with their device (software raid) or partition name. You can learn more about Linux partitions here: [WWW] http://tldp.org/HOWTO/Partition

  2. Now use the fdisk utility to list the partitions on a device. Let's assume that you installed Ubuntu to the fist IDE disk. Type the following:

    sudo fdisk -l /dev/hda

This will produce some output like this:


Disk /dev/hda: 120.0 GB, 120034123776 bytes
16 heads, 63 sectors/track, 232581 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 13206 6655792+ 7 HPFS/NTFS
/dev/hda2 13207 232581 110565000 5 Extended
/dev/hda5 228706 232484 1904616 82 Linux swap / Solaris
/dev/hda6 13207 228705 108611464+ 83 Linux
/dev/hda7 232485 232581 48856+ 83 Linux

Partition table entries are not in disk order

That means you have two standard Linux partitions on your disk: /dev/hda6 and /dev/hda7. You can now try to mount them and see if your Debian/Ubuntu installation is there. In this case /dev/hda7 is probably not the root partition, because it is only about 50MiB in size (see the Blocks column). Therefore we mount /dev/hda6:

sudo mount /dev/hda6 /mnt

Now show the files on the partition:

ls /mnt

If this command shows something like:

bin     dev      home      media     proc      sbin     tmp     var
boot etc lib opt root sys usr

it is a partition holding a Linux distribution. You can check if it really is Ubuntu (if you have multiple linux installations on your disk) using the following command:

cat /mnt/etc/lsb-release

That will give you some information about the distribution (if this file does not exist, it is probably not Ubuntu). If it is the wrong partition, just unmount it: sudo umount /mnt and try another partition on the same disk or choose a different partition on another disk (using fdisk as before).

Recover Grub

If you install some other system and lose the grub.

  1. Boot the Ubuntu Live CD.

  2. Press Ctrl-Alt-F1

  3. Find the partition where your /boot directory is (normally the root partition) check the previous tip for that.

  4. sudo mount /dev/hda1 /mnt

  5. sudo chroot /mnt

  6. grub

  7. find /boot/grub/stage1 (will output a partition name like (hd0,3) )

  8. root (hd0,3)

  9. setup (hd0)

  10. quit

  11. Now restart the system and remove the Live CD

No comments: