AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1889634
Accepted
paperclip optimizer
paperclip optimizer
Asked: 2025-04-03 02:22:46 +0800 CST2025-04-03 02:22:46 +0800 CST 2025-04-03 02:22:46 +0800 CST

配置 MDADM 以在启动期间跳过 RAID5/6 组装(当且仅当阵列处于降级状态时)

  • 772

我基本上是尝试配置 mdadm.conf,以便启动时 RAID 组件以等效方式运行:

mdadm --assemble --scan --no-degraded

而不是:

mdadm --assemble --scan

否则,如果我暂时拔掉一个或两个 RAID6 设备以释放 SATA 端口,MDADM 会在下次启动时以降级状态组装阵列,拔掉的设备将变得不同步,我需要重新添加并重建它们,这可能需要一两天的时间。

我没有在 mdadm.conf(5) 或 MDADM 文档中找到任何内容,但我很确定这是一个相当常见的情况,并且有一个简单的解决方案。

linux
  • 1 1 个回答
  • 63 Views

1 个回答

  • Voted
  1. Best Answer
    storsan
    2025-04-17T02:37:27+08:002025-04-17T02:37:27+08:00

    如果您已在 中配置了 md 阵列mdadm.conf,那么据我所知,有几种简单的方法可以阻止在操作系统启动期间组装您选择的 md raid 设备。但是,这些解决方案仅适用于您知道哪个特定的 md 阵列会因拔出磁盘而进入降级状态的情况。

    第一种方法是使用<IGNORE>特殊关键字。假设你mdadm.conf的 md 阵列(下次启动时其磁盘将会丢失)的条目如下:

    DEVICE /dev/sdd1 /dev/sde1 
    ARRAY /dev/md0 metadata=1.2 name=ubuntu1:0 UUID=139fb3cb:87bc47af:8750ce36:857589fb
    

    更改为:

    DEVICE /dev/sdd1 /dev/sde1 
    ARRAY <IGNORE> metadata=1.2 name=ubuntu1:0 UUID=139fb3cb:87bc47af:8750ce36:857589fb
    

    initramfs如果mdadm.conf图像中的与您在根文件系统中更改的initramfs不一样,请在此之后进行更新。mdadm.conf

    $sudo update-initramfs -u
    

    重启后,您将看到/dev/md0输出中没有组装cat /proc/mdstat

    相关手册页文档mdadm.conf:

    ARRAY ARRAY 行标识实际的数组。该行的第二个单词可以是通常组装该数组的设备名称,例如 /dev/md1 或 /dev/md/backup。如果名称不以斜杠 ('/') 开头,则将其视为位于 /dev/md/ 中。或者,也<ignore> 可以指定单词(包含尖括号),在这种情况下,任何与该行其余部分匹配的数组都不会被自动组装。如果没有指定设备名称,mdadm 将使用各种启发式算法来确定合适的名称。

    第二种方法是使用AUTO关键字。假设你mdadm.conf有几个 md 数组的条目,如下所示:

    DEVICE /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1
    ARRAY /dev/md0 metadata=1.2 name=ubuntu1:0 UUID=139fb3cb:87bc47af:8750ce36:857589fb
    ARRAY /dev/md/1  metadata=1.2 UUID=12d936b7:0e5390d9:e651a0df:79a34920 name=ubuntu1:1
    

    如果下次重新启动时磁盘/dev/md1丢失,请将其更改为:

    AUTO -all
    DEVICE /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1
    ARRAY /dev/md0 metadata=1.2 name=ubuntu1:0 UUID=139fb3cb:87bc47af:8750ce36:857589fb
    #ARRAY /dev/md/1  metadata=1.2 UUID=12d936b7:0e5390d9:e651a0df:79a34920 name=ubuntu1:1
    

    按照前面提到的方法更新initramfs镜像。重启后,你会看到/dev/md1输出中没有cat /proc/mdstat

    相关mdadm.conf手册页文档涉及AUTO:

    AUTO ...当 mdadm 通过 --assemble 或 --incremental 自动组装阵列时,如果找到指定类型的元数据,它会根据此行列出的元数据类型检查该元数据类型。第一个匹配项获胜,其中 all 匹配任何内容。如果找到前面带有加号的匹配项,则允许自动组装。如果匹配项前面带有减号,则不允许自动组装。如果没有找到匹配项,则允许自动组装。... 这可用于禁用所有自动组装(以便只组装 mdadm.conf 或命令行中明确列出的阵列),或禁用可能由其他软件处理的某些元数据类型的组装。...

    上述两种方法在 Ubuntu 18.04 上均对我有效。

    可能还有其他方法可以实现这一点。但是,如果您需要自动阻止mdadm组装任何已进入降级状态的 md 阵列,则可能需要修改mdadm udev规则,甚至编写一些脚本。

    不用说,如果您有为fstab这些 md 设备安装文件系统的条目,请确保已注释掉或删除已降级的 md 阵列的条目,否则您的系统将在启动期间进入维护模式。

    • 2

相关问题

  • 如何让我的 Linux 机器看起来像是在运行 Windows?

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve