Whamcloud - gitweb
b3eed8c03a560b054e9e6bb035a0097c4bbcc225
[fs/lustre-release.git] / build / osxpack / uninstall_lustre
1 #!/bin/sh
2 #
3 # It's the uninstall programe of lustre
4
5 mount | grep lustre > /dev/null
6 if [ $? -eq 0 ]; then
7         echo "Please unmount Lustre before uninstall Lustre."
8         exit 1
9 fi
10
11 echo "unloading modules......"
12 /sbin/unload_lustre 2 > /dev/null
13
14 backpath=/System/LustreBackup
15 if ! [ -d $backpath ]; then
16         echo "No backup directory is found, you have not installed lustre or uninstall failed!"
17         exit 1
18 fi
19
20 if ! [ -f $backpath/lustre-current ]; then
21         echo "No version information of Lustre installation, you have uninstalled or uninstall failed!"
22         exit 2
23 fi
24
25 # get information of the the backup system
26
27 backdir=`tail -1 $backpath/lustre-current`
28 if ! [ -d $backdir ]; then
29         echo "Miss backup directory, uninstall failed!"
30         exit 3
31 fi
32
33 # recover the old system
34 echo "recover orignal kernel......"
35 cp -f $backdir/mach_kernel /mach_kernel
36 echo "recover orignal frameworks......"
37 cp -rf $backdir/System/Library/Frameworks/IOKit.framework /System/Library/Frameworks/
38 cp -rf $backdir/System/Library/Frameworks/Kernel.framework /System/Library/Frameworks/
39 cp -rf $backdir/System/Library/Frameworks/System.framework /System/Library/Frameworks/
40 echo "recover orignal kernel extensions......"
41 cp -rf $backdir/System/Library/Extensions/System.kext /System/Library/Extensions/
42 echo "recover orignal system headers......"
43 cp -rf $backdir/usr/include/bsm /usr/include/bsm
44 cp -rf $backdir/usr/include/default_pager /usr/include/default_pager
45 cp -rf $backdir/usr/include/dev /usr/include/dev
46 cp -rf $backdir/usr/include/device /usr/include/device
47 cp -rf $backdir/usr/include/drivers /usr/include/drivers
48 cp -rf $backdir/usr/include/hfs /usr/include/hfs
49 cp -rf $backdir/usr/include/isofs /usr/include/isofs
50 cp -rf $backdir/usr/include/libkern /usr/include/libkern
51 cp -rf $backdir/usr/include/mach /usr/include/mach
52 cp -rf $backdir/usr/include/mach_debug /usr/include/mach_debug
53 cp -rf $backdir/usr/include/machine /usr/include/machine
54 cp -rf $backdir/usr/include/miscfs /usr/include/miscfs
55 cp -rf $backdir/usr/include/net /usr/include/net
56 cp -rf $backdir/usr/include/netat /usr/include/netat
57 cp -rf $backdir/usr/include/netinet /usr/include/netinet
58 cp -rf $backdir/usr/include/netinet6 /usr/include/netinet6
59 cp -rf $backdir/usr/include/netkey /usr/include/netkey
60 cp -rf $backdir/usr/include/nfs /usr/include/nfs
61 cp -rf $backdir/usr/include/pexpert /usr/include/pexpert
62 cp -rf $backdir/usr/include/ppc /usr/include/ppc
63 cp -rf $backdir/usr/include/profile /usr/include/profile
64 cp -rf $backdir/usr/include/sys /usr/include/sys
65 cp -rf $backdir/usr/include/ufs /usr/include/ufs
66 cp -rf $backdir/usr/include/vfs /usr/include/vfs
67 echo "recover orignal system libraries......"
68 cp -f $backdir/usr/lib/libIOKit.A.dylib /usr/lib/libIOKit.A.dylib
69 cp -f $backdir/usr/lib/libIOKit.dylib /usr/lib/libIOKit.dylib
70 cp -f $backdir/usr/lib/libkmod.a /usr/lib/libkmod.a
71 cp -f $backdir/usr/lib/libkmodc++.a /usr/lib/libkmodc++.a
72
73
74 cp $backpath/lustre-current /tmp/lustre-v
75 count=`grep "SystemBackup" /tmp/lustre-v|wc -l`
76 count=`expr $count - 1`
77 if [ $count -gt 0 ]; then
78         head -$count /tmp/lustre-v > $backpath/lustre-current
79         rm -f /tmp/lustre-v
80 else
81         # The file should be empty now, it's the last uninstall
82         rm -f $backpath/lustre-current
83         rm -f /tmp/lustre-v
84         if [ $count -ne 0 ]; then
85                 # no backup version in the lustre-current file
86                 echo "No backup information anymore, installation is likely failed!"
87                 exit 4
88         fi
89 fi
90
91 # remove unused files
92 echo "uninstall lustre modules and utilities......"
93 rm -rf $backdir
94 rm -f /sbin/lctl
95 rm -f /sbin/mount_lustre
96 rm -f /sbin/unload_lustre
97 rm -rf /System/Library/Extensions/libcfs.kext
98 rm -rf /System/Library/Extensions/portals.kext
99 rm -rf /System/Library/Extensions/ksocknal.kext
100 rm -rf /System/Library/Extensions/lvfs.kext
101 rm -rf /System/Library/Extensions/obdclass.kext
102 rm -rf /System/Library/Extensions/ptlrpc.kext
103 rm -rf /System/Library/Extensions/ptlrpcs.kext
104 rm -rf /System/Library/Extensions/osc.kext
105 rm -rf /System/Library/Extensions/lov.kext
106 rm -rf /System/Library/Extensions/obdecho.kext
107 rm -rf /System/Library/Extensions/mdc.kext
108 rm -rf /System/Library/Extensions/llite.kext
109
110 # disable kernel cache by touch /System/Library
111 touch /System/Library
112 echo "Uninstall Lustre successfully, please reboot your computer!"