summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Gilligan <gilligan@vyatta.com>2008-11-19 10:16:22 -0800
committerBob Gilligan <gilligan@vyatta.com>2008-11-19 10:16:22 -0800
commita91be4ee51527f2ed975a36d433101ec720437a4 (patch)
treed7802ef8a4b124a0fb6cfbd8aee01e58149b350a
parentdc24799bd733e6d32170a611b88968ba685504b7 (diff)
downloadvyatta-cfg-quagga-a91be4ee51527f2ed975a36d433101ec720437a4.tar.gz
vyatta-cfg-quagga-a91be4ee51527f2ed975a36d433101ec720437a4.zip
Bugfix 3738: Improve safety in installing onto RAID sets.
Issue a warning if installing onto a RAID set that is degraded, but not in active rebuild. Don't let the user install onto a RAID set that is in the process of rebuild because it is unsafe.
-rwxr-xr-xscripts/install-system27
1 files changed, 27 insertions, 0 deletions
diff --git a/scripts/install-system b/scripts/install-system
index b941d9b6..f2ee5b09 100755
--- a/scripts/install-system
+++ b/scripts/install-system
@@ -288,6 +288,33 @@ check_for_old_raid () {
echo "Using RAID partition $INSTALL_DRIVE"
+ raid_degraded=`cat /sys/block/$INSTALL_DRIVE/md/degraded`
+ raid_sync_action=`cat /sys/block/$INSTALL_DRIVE/md/sync_action`
+
+ if [ "$raid_degraded" = "1" ]; then
+ echo
+ if [ "$raid_sync_action" = "recover" ]; then
+ echo "Error: This RAID set is degraded and is in the process of"
+ echo "rebuilding. It is not safe to install onto it while the"
+ echo "rebuild is in progress. Please wait for the rebuild to"
+ echo "complete and then re-start the installation. You may"
+ echo "monitor the progress of the RAID rebuild with the"
+ echo "command:"
+ echo
+ echo " show raid $INSTALL_DRIVE"
+ echo
+ exit 1
+ fi
+ echo "Warning: This RAID set is degraded, but is not in the"
+ echo "process of rebuilding. It is safe to perform the installation"
+ echo "onto a degraded RAID set that is not in the process of"
+ echo "rebuilding. You may stop the installation now and rebuild the"
+ echo "RAID set, or continue installing onto it. If you continue"
+ echo "installing, do not attempt to rebuild the RAID set until the"
+ echo "installation has completed and you have rebooted the system."
+ echo
+ fi
+
warn_of_dire_consequences
ROOT_PARTITION=$INSTALL_DRIVE