Snott

Tag: recover

  • Recovering from a totally dead boot partition

    Recovering from a totally dead boot partition

    Here is the case:

    The hard disk containing your /boot partition has just died, you have a separate RAID1 array (using mdadm) with all the information on the array intact, but the system is unable to boot because all the files in /boot got lost.

    Your best bet is to get the following iso onto a USB flash drive or CD:

    http://sourceforge.net/p/ubuntu-secured/home/Home/

    Ubuntu secure remix provides the following functionalities:

    • Full Ubuntu DVD distro
    • integrates Clean-Ubiquity: automatic backup of the MBRs and partition tables when installing Ubuntu, which is highly recommended for dual-boot Ubuntu-Windows (or MacOS)
    • integrates OS-Uninstaller (tool to uninstall any Operating System from your PC)
    • integrates Boot-Repair (tool to fix the PC boot)

    the one highlighted in bold is what we are going to use to fix the boot partition.

    With the ubuntu DVD and Boot-repair you will be able replace the missing kernels and initrds, reinstall any broken packages and get grub again onto the MBR, successfully restoring the computer or server to a bootable state.

    Now, burn your iso to cd (I assume you know how to do this) or get into an USB drive like this:

    dd if=/path/to/file.iso of=/dev/sdb

    where /dev/sdb is your USB drive, you can use the mount command to double check this. If you make a mistake here (for example if you input /dev/sda and /dev/sda is your laptop hard drive) you will end up writing the iso to your hard drive and DESTROY all of your data. So please double-check this.

    After you boot into the Ubuntu Secure Remix, first thing to do is chroot and then create a /boot directory (since the old one is lost). Chroot is a command that will mount the operating system stored on the hard drive so you are able to execute commands inside it. This is a very important step. To do this:

    # means run with root or sudo
    1. Create a mountpoint

    # mkdir /mnt/mountpoint

    2. Mount /dev and /dev/pts to chroot

    # mount -o bind /dev /mnt/mountpoint/dev

    # mount -o bind /dev/pts /mnt/mountpoint/dev/pts

    3.Open bash in chroot

    # chroot /mnt/mountpoint /bin/bash

    4. create the /boot directory

    #mkdir /boot

    At this point, you are now inside your unbootable linux system with and empty /boot directory, now do:

    sudo apt-get install linux-image-server

    That command (on a debian/ubuntu based system) will pull the latest kernel image and install it, populating the /boot directory with some files (which are the kernel and initrd images). If you have a different distro do the same with your distro’s package manager.

    Next open up Boot-repair from the GUI and follow the onscreen instructions to restore grub into the mbr. I won’t post them here because:

    a) it varies from system to system and depends on how screwed the OS got

    b) On screen instructions are easy to understand and get the job done

    After Boot-repair finishes, exit your chrooted terminal (by typing exit at the terminal) and restart your system.

    Everything should be in order now and the machine should boot without a problem. If it does not, feel free to leave a comment below and I will do my best to help you.

    NOTE: This procedure was tested under a Software RAID using mdadm on Ubuntu Server 10.04.4 LTS, I haven’t tested this with any other RAID array configuration or distro, be it fake, firmware or hardware RAID.