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
    • 最新
    • 标签
主页 / server / 问题 / 564778
Accepted
paulgreg
paulgreg
Asked: 2014-01-03 23:36:31 +0800 CST2014-01-03 23:36:31 +0800 CST 2014-01-03 23:36:31 +0800 CST

在我的 mdadm 软件 RAID 上删除/添加驱动器后,如何修复我的服务器以正确启动

  • 772

我为安装在/mnt/data. 我的系统未在其上启动(/并且位于不属于任何 RAID 阵列/boot的专用驱动器上)。

我通过 mdadm(软件 RAID)在 Ubuntu 12.04 上为我的 3 个磁盘 RAID-5 软件阵列添加了第 4 个驱动器。/dev/sdb1我的dev/sdc1RAID阵列包含/dev/sdd1.

我使用该命令添加了第四个驱动器:

mdadm --add /dev/md0 /dev/sde

然后,我升级了阵列以将其转换为 RAID-6 RAID:

mdadm --grow /dev/md0 --raid-devices 4 --level 6 --backup-file=backup/raid-backup-file

它工作得很好。服务器工作正常,启动时没有问题。唯一的问题是我看到我将第 4 个驱动器添加为整个驱动器。我应该 add/dev/sde1而不是 sde !

为了清理它,我删除了驱动器并再次添加它,但这次是分区:

mdadm /dev/md0 --fail /dev/sde --remove --/dev/sde
mdadm --add /dev/md0 /dev/sde1

迁移后,它工作了(阵列可访问),但在下次启动时,我收到一条消息说 RAID 阵列已降级,因为 /dev/sde 丢失(我的所有驱动器都标记为备用)并进入 initramfs 提示符。退出该外壳后,服务器继续启动,而不从我的 RAID 阵列安装数据分区。

登录后,我能够停止 RAID 阵列并通过以下方式对其进行重新排序:

mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 

然后挂载文件系统。所有数据都在那里,RAID 阵列很干净。

但是,系统不再正常启动。我最后一次尝试是移除最后一个驱动器并将 RAID-6 阵列再次更改为 RAID-5:

mdadm /dev/md0 --remove /dev/sde1
mdadm --grow /dev/md0 --raid-devices 3 --level 5 --backup-file=backup/raid-backup-file

但这并没有解决问题。在启动时,系统说阵列已降级并且仍然缺少驱动器 sde。

退出 initramfs shell 后,登录并像以前一样重新组装数组,数组是干净的,请参阅

cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid5 sdb1[0] sdd1[2] sdc1[1]
      3907026816 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

在驱动器发现(sda、sdb、sdc、sde)和网卡发现之后,我还在内核消息中发现了那条奇怪的行:

md: bind<sde>

那是从哪里来的,我该如何改变呢?

我的 RAID 阵列根本不应该包含对 /dev/sde 的任何引用。

我在数组中第一次更改时没有更新 initramfs,之后我尝试过,但这并没有改变任何东西。

顺便说一句,这是我的 /etc/mdadm.conf :

DEVICE partitions

CREATE owner=root group=disk mode=0660 auto=yes

HOMEHOST <system>

MAILADDR root

ARRAY /dev/md0 metadata=0.90 UUID=4d84e24c:e40f825f:3ba42e3c:267295e2
linux
  • 2 2 个回答
  • 2633 Views

2 个回答

  • Voted
  1. Best Answer
    alxgomz
    2014-01-04T02:47:37+08:002014-01-04T02:47:37+08:00

    sde 设备上必须有一些 md 元数据。

    • 从 RAID 设备中删除 sde1。
    • 完全擦除 sde md 元数据(使用 dd 并取决于元数据的版本及其在磁盘上的位置),例如:

      dd if=/dev/zero of=/dev/sde bs=4096 count=1 seek=1

      甚至更好:

      mdadm --misc --zero-superblock /dev/sde

    • 重新创建您的 sde1 并将其再次添加到 md0 设备并更新您的 mdadm.conf 如果您仍然希望它包含 UUID(如果您首先备份它们,您也可以恢复以前的元数据)

    • 3
  2. alxgomz
    2014-01-04T00:56:27+08:002014-01-04T00:56:27+08:00

    您是否尝试在更新您的 md 设备后重新生成 initrd?尝试 update-initramfs 或与您的发行版匹配的工具。并且更新您的盗版者可能是一个好主意(更新-grub2 for grub-pc)

    还尝试在 mdadm.conf 中为 md0 指定分区 uuid。

    • 1

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve