blob: fa18e88c9b7af68fb554155e9ad1328c0a52153e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
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
|