[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: restoring MBR



Hi,

On Sat, July 30, 2011 6:40 am, Camaleón wrote:
>>>> One of my (home made) overnight cron jobs does this:
>>>>
>>>> dd if=/dev/sda \
>>>>         of=$DST/mbr_backup.bin \
>>>>         bs=512 \
>>>>         count=1 >> $LOG 2>&1

Okay, well this script isn't perfect and it sure won't help after the
problem, but it will save all possible MBRs and fdisk output for a bunch
of candidate disks:

#!/bin/bash

AWK=/usr/bin/awk
BASENAME=/usr/bin/basename
CAT=/bin/cat
DD=/bin/dd
FDISK=/sbin/fdisk
GREP=/bin/grep
LS=/bin/ls
SORT=/usr/bin/sort
TEE=/usr/bin/tee

SAVE_MBR_DIR=/backup/mbr-save
SAVE_FDISK_DIR=/backup/fdisk-save

function save_mbr () {
        CMD="$DD if=/dev/$DRV \
                of=$SAVE_MBR_DIR/mbr_backup_${DRV}.bin \
                bs=512 \
                count=1"
        echo $CMD
        eval $CMD
        echo
}

function save_fdisk () {
        OUTFILE=$SAVE_FDISK_DIR/fdisk_backup_${DRV}.out
        CMD="$FDISK -l /dev/$DRV > $OUTFILE"
        echo $CMD
        eval $CMD
        echo
        $CAT $OUTFILE
        echo "======================"
        echo
}

(
if [ ! -d $SAVE_MBR_DIR ]; then mkdir -p $SAVE_MBR_DIR; fi
if [ ! -d $SAVE_FDISK_DIR ]; then mkdir -p $SAVE_FDISK_DIR; fi

for DRV in $($LS -lart /dev/disk/by-id/|$GREP -e \/sd[a-f]$ -e
\/hd[a-f]$|$AWK -F \/ '{print $NF}'|$SORT -u)
do
        save_mbr
        save_fdisk
done
) 2>&1 |$TEE /var/log/$($BASENAME $0).out


-- 
Kind Regards
AndrewM

Andrew McGlashan
Broadband Solutions now including VoIP



Reply to: