防止 Debian 在启动时自动组装 RAID

Dro*_*ids 8 startup raid debian initramfs

我设置了一个 Debian wheezy (7.6),安装了 openmediavault,并用它创建了一个软件 RAID 5。它列在/dev/md127。现在我想将它移动到一个虚拟的 XEN VM。为此,我必须停止 Debian 以在启动时自动组装 RAID,因此我可以通过 将其连接到 VM xm block-attach,但我无法使其正常工作。无论我尝试什么,仍然md127在 下列出/dev/,每次启动后我都可以通过mdadm --stop /dev/md127. 但即使在那之后,它仍然列在/dev/.

我已经尝试过的:

  • /etc/mdadm/mdadm.conf:注释掉数组行:

    #ARRAY /dev/md0 metadata=1.2 name=masterbox:MainRaid UUID=3f620e6d:4e655d66:b931eb71:baf7cf3a  
    ARRAY /dev/md0 name=Null
    
    Run Code Online (Sandbox Code Playgroud)
  • 移动/libs/udev/rules.d/64-md-raid.rules/root/

  • update-initramfs u
  • 注释掉该行 /etc/fstab
  • 通过手动拆卸RAID mdadm --stop /dev/md127
  • 设置内核参数raid=noautodetect/etc/default/grub

    GRUB_CMDLINE_LINUX_DEFAULT="quiet raid=noautodetect"  
    
    Run Code Online (Sandbox Code Playgroud)
  • 重新启动

  • 启动时禁用 mdadm 服务

这也是来自 dmesg 的日志:

[    3.448121] md: md127 stopped.
[    3.452518] md: bind<sda>
[    3.452747] md: bind<sdc>
[    3.452933] md: bind<sdb>

[    3.954794] md: raid6 personality registered for level 6
[    3.954797] md: raid5 personality registered for level 5
[    3.954799] md: raid4 personality registered for level 4
[    3.955417] bio: create slab <bio-1> at 1
[    3.955436] md/raid:md127: device sdb operational as raid disk 0
[    3.955439] md/raid:md127: device sdc operational as raid disk 2
[    3.955442] md/raid:md127: device sda operational as raid disk 1
[    3.955740] md/raid:md127: allocated 3228kB
[    3.955988] md/raid:md127: raid level 5 active with 3 out of 3 devices, algorithm 2
[    3.955991] RAID conf printout:
[    3.955993]  --- level:5 rd:3 wd:3
[    3.955996]  disk 0, o:1, dev:sdb
[    3.955999]  disk 1, o:1, dev:sda
[    3.956000]  disk 2, o:1, dev:sdc
[    3.956044] md127: detected capacity change from 0 to 6000916561920
Run Code Online (Sandbox Code Playgroud)

......我怎样才能把Debian时不要触摸RAID驱动器在所有的,这样我就可以将它们传递到我的虚拟机?

小智 8

这是一个老问题,但由于我搜索了很长时间的解决方案,我想分享我的结果:

# /etc/mdadm/mdadm.conf
ARRAY <ignore> UUID=3f620e6d:4e655d66:b931eb71:baf7cf3a
Run Code Online (Sandbox Code Playgroud)

来自man mdadm.conf

ARRAY

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


Jos*_*din 4

你说你禁用了该mdadm服务,但该服务运行监控守护进程;有一个单独的mdadm-raid服务根据配置文件启动用户空间中的所有 md 数组。并且,您还可以运行dpkg-reconfigure mdadm来禁用自动启动阵列。