Custom Search

Friday, June 01, 2007

Mount Partitions to Restore Backups

I've been asking myself what do I do if a partition gets corrupted? Yeah, I do dumps regularly to another disk, but when you boot from an OpenBSD install cd there's no matching /dev/wd1d there. There are no devices with wd1, only wd0. There's MAKEDEV but it says that the operation isn't permitted when I type ./MAKEDEV wd1d. What's going on here? I don't have to worry about being root, this is an installation cd. Actually I've shelled out of the install routine. Let's do ls -l and see what we get. I'll be darned, MAKEDEV is not executable. chmod +x MAKEDEV and that solves that problem.

Once again, I type ./MAKEDEV wd1d and hit enter. This time there's no error message. Another quick ls -l shows all kinds of wd1 listings now including wd1d. Now I mount -r /dev/wd1d /mnt and no error message. Let's see what mount shows. Cool, wd1d is mounted. I do a ls -l on it and sure enough, there's my /data partition on the hard drive where all the dumps are stored.

Now if a partition gets corrupted, all I have to do is boot up on the cd, make the device, run newfs on the corrupted partition, mount the partition with the backups on it as shown above, mount the newly formatted partition in write mode, change directory into it and restore the appropriate dump. Life is good!

Someone may say you don't need the cd to boot from, you just boot the bsd.rd kernel, and that's okay, that is if your / partition isn't the corrupted one. Also, remember, restore is in /sbin. I don't think there's anything wrong with using the cd to work from. That is, unless you didn't install off a cd and don't have one. I think it's a good idea to keep one one hand.

This is probably kindergarden stuff for most of the guys on the OpenBSD mailing list, but for me it's like when the apple hit old Isaac on the head! It's a revelation! ;) I'm putting this up here in hopes someday some poor newbie having the same problem googles around and finds it. That'd be cool.

Everytime I do a fresh install of OpenBSD, I create a wd1a partition on a 2nd hard drive the same size as my root partition on the primary hard drive and label it altroot. In root's crontab, right below my env settings SHELL, PATH, and HOME, I enter ROOTBACKUP=1. That way, every day the system will backup /root to /altroot. Alternately, you can edit /etc/daily.local and enter the same ROOTBACKUP=1 line.

In either case, you also have to remember to enter the partition info in /etc/fstab. The format is a little different too, than the format the others partitions use: /dev/wd1a /altroot ffs xx 0 0

powered by performancing firefox