[d-kernel] Возвращаясь к RAID

Шадринов Д. Д. shadrinovdd на ystu.ru
Пт Фев 11 23:56:00 MSK 2005


Раз уж при выключении размонтировать корень невозможно, а корень расположен
на RAID, может быть не стоит выводить сообщение FAILED, а использовать
 проверку оставшихся подмонтированных файловых систем и отрубать только
 те RAID'ы которые не используются? Например так:

--- /etc/init.d/halt    2004-03-04 17:28:34 +0300
+++ /mnt/root/etc/init.d/halt   2005-02-11 21:07:22 +0300
@@ -102,6 +102,12 @@
        "Unmounting filesystem" \
        "Unmounting filesystem (retry)"

+[ -f /proc/bus/usb/devices ] && umount -n /proc/bus/usb >/dev/null 2>&1
+
+# Remount read-only anything that's left mounted.
+action "Remounting remaining filesystems (if any) read-only:" umount -anrf
+action "Remounting root filesystem read-only:" mount -n -o remount,ro /
+
 # Turn off raid.
 RAIDSTOP=/sbin/raidstop
 if [ -x "$RAIDSTOP" -a -f /etc/raidtab ]; then
@@ -110,20 +116,22 @@
        # the case. So we look only for the active raid devices
        if [ -f /proc/mdstat ] ; then
                mddevs=$(grep ^md /proc/mdstat | awk '{ print $1 }')
+               mntdevs=$(mount | awk '{ print $1 }')
                for mddev in $mddevs ; do
+                       for mntdev in $mntdevs ; do
+                               if [ "/dev/$mddev" = "$mntdev" ] ; then
+                                       action "Skipping mounted RAID $mddev"
+                                       continue 2
+                               fi
+                       done;
+
                        action "Turning off RAID for $mddev:" "$RAIDSTOP" 
"/dev/$mddev"
                done
-               unset mddev mddevs
+               unset mddev mddevs mntdev mntdevs
        fi
        #action "Turning off RAID:" /sbin/raidstop -a
 fi

-[ -f /proc/bus/usb/devices ] && umount -n /proc/bus/usb >/dev/null 2>&1
-
-# Remount read-only anything that's left mounted.
-action "Remounting remaining filesystems (if any) read-only:" umount -anrf
-action "Remounting root filesystem read-only:" mount -n -o remount,ro /
-
 action "Unmounting proc filesystem:" umount -n /proc

 # See if this is a powerfail situation.


Подробная информация о списке рассылки devel-kernel