49 lines
1.2 KiB
Diff
49 lines
1.2 KiB
Diff
From 816a7dbff7128b4b87ea8d6abd2caf564f8f3502 Mon Sep 17 00:00:00 2001
|
|
From: gaoyi <gaoyi15@huawei.com>
|
|
Date: Fri, 18 Oct 2019 10:42:55 -0400
|
|
Subject: [PATCH] skip the broken sd in initqueue
|
|
|
|
---
|
|
.../98dracut-systemd/dracut-initqueue.sh | 25 +++++++++++++++++++
|
|
1 file changed, 25 insertions(+)
|
|
|
|
diff --git a/modules.d/98dracut-systemd/dracut-initqueue.sh b/modules.d/98dracut-systemd/dracut-initqueue.sh
|
|
index 3ddc236..c7d7888 100755
|
|
--- a/modules.d/98dracut-systemd/dracut-initqueue.sh
|
|
+++ b/modules.d/98dracut-systemd/dracut-initqueue.sh
|
|
@@ -16,6 +16,31 @@ RDRETRY=${RDRETRY:-180}
|
|
RDRETRY=$((RDRETRY * 2))
|
|
export RDRETRY
|
|
|
|
+if getarg 'skipbadscsi' -d 'skipbadscsi'; then
|
|
+ sd_dir=/sys/block
|
|
+ while [ "`ls $sd_dir/`" = "" ]
|
|
+ do
|
|
+ sleep 1
|
|
+ done
|
|
+
|
|
+ dev_num=0
|
|
+ for _sd_device in `ls $sd_dir/`
|
|
+ do
|
|
+ blkid /dev/$_sd_device >/dev/null 2>&1 &
|
|
+ ((dev_num++))
|
|
+ done
|
|
+
|
|
+ sleep $dev_num
|
|
+
|
|
+ for _sd_device in `ps -eo cmd,stat | grep -Po "(?<=blkid /dev/).*(?=D)"`
|
|
+ do
|
|
+ echo offline > $sd_dir/$_sd_device/device/state
|
|
+ echo "Dev $_sd_device maybe broken, set it offline" > /dev/kmsg
|
|
+ done
|
|
+
|
|
+ udevadm settle --timeout=30
|
|
+fi
|
|
+
|
|
main_loop=0
|
|
export main_loop
|
|
|
|
--
|
|
2.19.1
|
|
|