加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何在启动时在Debian 8.0.0下自动启动Degraded Softwa

发布时间:2020-12-13 17:19:07 所属栏目:Linux 来源:网络整理
导读:如果从阵列中删除组件HDD,它将进入“忙碌的盒子” shell,在“(initramfs)”下面说类似于“无法挂载根设备”,因为RAID1阵列变为“非活动”. 可以使用以下命令启动它: (initramfs): mdadm --run /dev/md0(initramfs): exit 之后,它通常使用已启动的RAID1(文件
如果从阵列中删除组件HDD,它将进入“忙碌的盒子” shell,在“(initramfs)”下面说类似于“无法挂载根设备”,因为RAID1阵列变为“非活动”.

可以使用以下命令启动它:

(initramfs): mdadm --run /dev/md0
(initramfs): exit

之后,它通常使用已启动的RAID1(文件系统在RAID1阵列上)启动,并将继续正常启动,直到您删除另一个驱动器(在这种情况下,它将完全相同).

Google使用“BOOT_DEGRADED = true”吐出了大量关于UBUNTU的帖子,但这对DEBIAN不起作用.

还有a post about using “md-mod.start_dirty_degraded=1” as a boot argument to the kernel image.我试过在GRUB菜单选项中传递它,但没有用.

可能有something that explains it,但我是新手了解:(

有任何想法吗?

解决方法

initramfs执行/ scripts / local-top / mdadm来处理raid.在该脚本中是声明
if $MDADM --assemble --scan --run --auto=yes${extra_args:+ $extra_args};
  then
    verbose && log_success_msg "assembled all arrays."
  else
    log_failure_msg "failed to assemble all arrays."
fi

使用Debian Jessie的mdadm版本,与–scan一起使用时,– run参数似乎被忽略.根据手册页,它应该激活所有阵列,即使它们已降级.但相反,任何降级的阵列都标记为“非活动”.如果根文件系统位于其中一个非活动阵列上,则会暂停引导过程.

可以修改此脚本,然后使用命令update-initramfs -u重建initramfs.

>将脚本复制到本地覆盖目录
>如果第一次尝试失败,请使用一些额外的行修补脚本以在每个阵列上单独运行mdadm –run.
>更新initramfs.

以下命令将执行前面的步骤.在复制之前,请确认您还没有/ etc / initramfs-tools / scripts / local-top / mdadm文件.

cd /etc/initramfs-tools/scripts/local-top
cp /usr/share/initramfs-tools/scripts/local-top/mdadm .
patch --verbose --ignore-whitespace <<'EndOfPatch'
--- mdadm
+++ mdadm
@@ -76,7 +76,15 @@
   if $MDADM --assemble --scan --run --auto=yes${extra_args:+ $extra_args}; then
     verbose && log_success_msg "assembled all arrays."
   else
-    log_failure_msg "failed to assemble all arrays."
+    log_warning_msg "failed to assemble all arrays...attempting individual starts"
+    for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1); do
+      log_begin_msg "attempting mdadm --run $dev"
+      if $MDADM --run $dev; then
+        verbose && log_success_msg "started $dev"
+      else
+        log_failure_msg "failed to start $dev"
+      fi
+    done
   fi
   verbose && log_end_msg

EndOfPatch
update-initramfs -u

使用此更新的initramfs,当包含根文件系统的RAID1缺少驱动器时,可以在没有干预的情况下启动.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读