Skip to content
Snippets Groups Projects
uninstall_lustre 4.15 KiB
#!/bin/sh
#
# It's the uninstall programe of lustre

mount | grep lustre > /dev/null
if [ $? -eq 0 ]; then
        echo "Please unmount Lustre before uninstall Lustre."
        exit 1
fi

echo "unloading modules......"
/sbin/unload_lustre 2 > /dev/null

backdir=/System/LustreBackup/SystemBackup
if ! [ -d $backdir ]; then
	echo "No backup directory is found, you have not installed lustre or uninstall failed!"
	exit 1
fi

# if ! [ -f $backpath/lustre-current ]; then
#	echo "No version information of Lustre installation, you have uninstalled or uninstall failed!"
#	exit 2
# fi
#
# get information of the the backup system
#
# backdir=`tail -1 $backpath/lustre-current`
# if ! [ -d $backdir ]; then
#	echo "Miss backup directory, uninstall failed!"
#	exit 3
# fi

# recover the old system
echo "recover orignal kernel......"
cp -f $backdir/mach_kernel /mach_kernel
echo "recover orignal frameworks......"
cp -rf $backdir/System/Library/Frameworks/IOKit.framework /System/Library/Frameworks/
cp -rf $backdir/System/Library/Frameworks/Kernel.framework /System/Library/Frameworks/
cp -rf $backdir/System/Library/Frameworks/System.framework /System/Library/Frameworks/
echo "recover orignal kernel extensions......"
cp -rf $backdir/System/Library/Extensions/System.kext /System/Library/Extensions/
echo "recover orignal system headers......"
cp -rf $backdir/usr/include/bsm /usr/include/bsm
cp -rf $backdir/usr/include/default_pager /usr/include/default_pager
cp -rf $backdir/usr/include/dev /usr/include/dev
cp -rf $backdir/usr/include/device /usr/include/device
cp -rf $backdir/usr/include/drivers /usr/include/drivers
cp -rf $backdir/usr/include/hfs /usr/include/hfs
cp -rf $backdir/usr/include/isofs /usr/include/isofs
cp -rf $backdir/usr/include/libkern /usr/include/libkern
cp -rf $backdir/usr/include/mach /usr/include/mach
cp -rf $backdir/usr/include/mach_debug /usr/include/mach_debug
cp -rf $backdir/usr/include/machine /usr/include/machine
cp -rf $backdir/usr/include/miscfs /usr/include/miscfs
cp -rf $backdir/usr/include/net /usr/include/net
cp -rf $backdir/usr/include/netat /usr/include/netat
cp -rf $backdir/usr/include/netinet /usr/include/netinet
cp -rf $backdir/usr/include/netinet6 /usr/include/netinet6
cp -rf $backdir/usr/include/netkey /usr/include/netkey
cp -rf $backdir/usr/include/nfs /usr/include/nfs
cp -rf $backdir/usr/include/pexpert /usr/include/pexpert
cp -rf $backdir/usr/include/ppc /usr/include/ppc
cp -rf $backdir/usr/include/profile /usr/include/profile
cp -rf $backdir/usr/include/sys /usr/include/sys
cp -rf $backdir/usr/include/ufs /usr/include/ufs
cp -rf $backdir/usr/include/vfs /usr/include/vfs
echo "recover orignal system libraries......"
cp -f $backdir/usr/lib/libIOKit.A.dylib /usr/lib/libIOKit.A.dylib
cp -f $backdir/usr/lib/libIOKit.dylib /usr/lib/libIOKit.dylib
cp -f $backdir/usr/lib/libkmod.a /usr/lib/libkmod.a
cp -f $backdir/usr/lib/libkmodc++.a /usr/lib/libkmodc++.a
if [ -f $backdir/private/etc/sysctl.conf ]; then
	cp -f $backdir/private/etc/sysctl.conf /private/etc/sysctl.conf
else
	rm -f /private/etc/sysctl.conf
fi

# 
# cp $backpath/lustre-current /tmp/lustre-v
# count=`grep "SystemBackup" /tmp/lustre-v|wc -l`
# count=`expr $count - 1`
# if [ $count -gt 0 ]; then
# 	head -$count /tmp/lustre-v > $backpath/lustre-current
# else
# 	# The file should be empty now, it's the last uninstall
#	rm -f $backpath/lustre-current
# fi
# rm -f /tmp/lustre-v

# remove unused files
echo "uninstall lustre modules and utilities......"
rm -rf $backdir
rm -f /sbin/lctl
rm -f /sbin/mount_lustre
rm -f /sbin/unload_lustre
rm -rf /System/Library/Extensions/libcfs.kext
rm -rf /System/Library/Extensions/portals.kext
rm -rf /System/Library/Extensions/ksocknal.kext
rm -rf /System/Library/Extensions/lvfs.kext
rm -rf /System/Library/Extensions/obdclass.kext
rm -rf /System/Library/Extensions/ptlrpc.kext
rm -rf /System/Library/Extensions/ptlrpcs.kext
rm -rf /System/Library/Extensions/osc.kext
rm -rf /System/Library/Extensions/lov.kext
rm -rf /System/Library/Extensions/obdecho.kext
rm -rf /System/Library/Extensions/mdc.kext
rm -rf /System/Library/Extensions/llite.kext

# disable kernel cache by touch /System/Library
touch /System/Library
echo "Uninstall Lustre successfully, please reboot your computer!"