At our local radio station (Omroep Groesbeek) we use OpenFiler version 2.3 for our storage solution.
Yesterday, however, we didn’t have a storage solution but a storage problem. None of the exported disks could be accessed, neither through Samba nor NFS. Further investigation showed that the operating disk was completely kaputt. I tried to make a clone of the disk with CloneZilla but the clone failed and the new file systems where unusable as well.
Well, after whining for some time, I decided it was time for a complete re-install to save as much data as possible. Installation went superb and I saw and could mount our data volumes. Hurray, the data was save. Now I only needed to reimport the volumes into OpenFiler. Problem was that the OpenFiler GUI does not have a function for this. With all original config files gone I even didn’t have an example how to fix them.
Surely Google is your friend and searching showed that Nathan Jones created a
script just for this type of situation. Clicking the link gave a ‘404’, crap!
Not all was lost, however, because I now knew the name of the script he made,
remake_vol_info and again Google to the rescue. I found a sample script that
should do what I need. I tweaked it a little and executed it.
This is the script
#!/bin/bash # strip the /mnt lines from fstab as we will be rebuilding them grep /mnt /etc/fstab -v > _fstab # create the new volumes.xml file echo -e "<?xml version=\"1.0\" ?>\n<volumes>" > _volumes.xml # find all logical volumes and loop for i in `lvdisplay | grep "LV Name" | sed 's/[^\/]*//'` do fstype=`vol_id $i -t 2> /dev/null`; mntpoint=`echo $i | sed 's/\/dev\//\/mnt\//'`/ vgname=`echo $i | cut -d '/' -f3` volid=`echo $i | cut -d '/' -f4` args=""; if [ "$fstype" == "" ] then # assume iscsi since filesystem is unknown fstype="iscsi" mntpoint="" fi if [ $fstype == ext3 ] then args=",acl,user_xattr" fi if [ $fstype == reiserfs ] then args=",acl" fi if [ $fstype != "iscsi" ] then echo "$i $mntpoint $fstype defaults,usrquota,grpquota$args 0 0" >> _fstab echo " <volume id=\"$volid\" name=\"$volid\" mountpoint=\"$mntpoint\" vg=\"$vgname\" fstype=\"$fstype\" />" >> _volumes.xml echo "Mounting $mntpoint" mkdir -p $mntpoint > /dev/null 2> /dev/null umount $mntpoint 2> /dev/null mount $mntpoint else echo "$i - assuming iSCSI" echo " <volume id=\"$volid\" name=\"$volid\" mountpoint=\"\" vg=\"$vgname\" fstype=\"$fstype\" incominguser=\"\" incomingpassword=\"\" outgoinguser=\"\" outgoingpassword=\"\" />" >> _volumes.xml fi done; echo "</volumes>" >> _volumes.xml mv -f _fstab /etc/fstab mv -f _volumes.xml /opt/openfiler/etc/volumes.xml chown openfiler.openfiler /opt/openfiler/etc/volumes.xml
Reboot and all volumes where visible in the OpenFiler GUI. Just needed to add the network and Samba and NFS exports and everything was up and running again.
Whoever posted the script: Thanks, it saved me a lot of time.