在 Debian 中取消配置 RAID1 并挂载第二块硬盘

在 Debian 中取消配置 RAID1 并挂载第二块硬盘

Debian 上运行的专用服务器有两个 512 SSD,两者都是单个 RAID1 磁盘阵列的一部分。有很多指南可以在不丢失磁盘上任何数据的情况下实现这一点,但无法找到完整的指南来取消配置 RAID1、格式化其中一个磁盘、安装它们并在/etc/fstab.

如果有人提供完整的指南,那对于像我这样的 Unix 新用户来说非常有用。

这些是一些命令的结果。

# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda       8:0    0   477G  0 disk
├─sda1    8:1    0    32G  0 part
│ └─md0   9:0    0    32G  0 raid1 [SWAP]
├─sda2    8:2    0   512M  0 part
│ └─md1   9:1    0 511.4M  0 raid1 /boot
└─sda3    8:3    0 444.4G  0 part
  └─md2   9:2    0 444.3G  0 raid1 /
sdb       8:16   0   477G  0 disk
├─sdb1    8:17   0    32G  0 part
│ └─md0   9:0    0    32G  0 raid1 [SWAP]
├─sdb2    8:18   0   512M  0 part
│ └─md1   9:1    0 511.4M  0 raid1 /boot
└─sdb3    8:19   0 444.4G  0 part
  └─md2   9:2    0 444.3G  0 raid1 /


# fdisk -l

Disk /dev/sdb: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0ba4900f

Device     Boot    Start        End   Sectors   Size Id Type
/dev/sdb1           2048   67110911  67108864    32G fd Linux raid autodetect
/dev/sdb2       67110912   68159487   1048576   512M fd Linux raid autodetect
/dev/sdb3       68159488 1000213167 932053680 444.4G fd Linux raid autodetect

Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x31fd01ce

Device     Boot    Start        End   Sectors   Size Id Type
/dev/sda1           2048   67110911  67108864    32G fd Linux raid autodetect
/dev/sda2       67110912   68159487   1048576   512M fd Linux raid autodetect
/dev/sda3       68159488 1000213167 932053680 444.4G fd Linux raid autodetect

Disk /dev/md0: 32 GiB, 34326183936 bytes, 67043328 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/md1: 511.4 MiB, 536281088 bytes, 1047424 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/md2: 444.3 GiB, 477077241856 bytes, 931791488 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


# blkid
/dev/sdb1: UUID="4374a69b-c5ca-ceee-bfd3-3df61d255a13" UUID_SUB="f1ca2293-d87d-83b8-dad9-aba968c25d0a" LABEL="rescue:0" TYPE="linux_raid_member" PARTUUID="0ba4900f-01"
/dev/sdb2: UUID="4b93d869-e581-7187-70ca-c4f9e7668ed5" UUID_SUB="6921e275-a6f3-0e5f-52c6-37520265266e" LABEL="rescue:1" TYPE="linux_raid_member" PARTUUID="0ba4900f-02"
/dev/sdb3: UUID="10c95f64-534c-e940-f016-77851637282b" UUID_SUB="003339b6-34c6-a11c-0f95-722934e2cd25" LABEL="rescue:2" TYPE="linux_raid_member" PARTUUID="0ba4900f-03"
/dev/sda1: UUID="4374a69b-c5ca-ceee-bfd3-3df61d255a13" UUID_SUB="865a9479-0077-b93e-fde5-62b4427eed93" LABEL="rescue:0" TYPE="linux_raid_member" PARTUUID="31fd01ce-01"
/dev/sda2: UUID="4b93d869-e581-7187-70ca-c4f9e7668ed5" UUID_SUB="fade36f5-1a58-9645-4c8e-d3bbbadb2d4d" LABEL="rescue:1" TYPE="linux_raid_member" PARTUUID="31fd01ce-02"
/dev/sda3: UUID="10c95f64-534c-e940-f016-77851637282b" UUID_SUB="75c16690-bce6-0f66-1a6f-4819b70fb1bd" LABEL="rescue:2" TYPE="linux_raid_member" PARTUUID="31fd01ce-03"
/dev/md0: UUID="2317882d-d15e-4879-8eab-8d37b77b717e" TYPE="swap"
/dev/md1: UUID="6ef84344-8aa2-4807-9486-4c98ab3aeffa" TYPE="ext3"
/dev/md2: UUID="a710dcc5-e25f-452b-bffd-486bb9eba812" TYPE="ext4"

这是/etc/fstab

proc /proc proc defaults 0 0
/dev/md/0 none swap sw 0 0
/dev/md/1 /boot ext3 defaults 0 0
/dev/md/2 / ext4 defaults 0 0

答案1

注意:这仅适用于 RAID 1,它是一个简单的线性镜像。

从 RAID 阵列中删除一个驱动器:

mdadm /dev/md0 --fail /dev/sdb1
mdadm /dev/md0 --remove /dev/sdb1
mdadm --zero-superblock /dev/sdb1

所有其他 md / sdb 分区也同样如此。然后你就可以做任何你喜欢的事情了/dev/sdb

至于 RAID,它已降级(2 个驱动器中的 1 个)。可以使其不降级(1 个驱动器中的 1 个):

mdadm --grow /dev/md0 --raid-devices=1 --force

这样 RAID 层仍然存在,而无需真正执行任何操作。但它让您可以选择在将来轻松添加第二个驱动器,从而恢复 RAID 操作。并且无需更改任何其他配置。


如果您想完全摆脱 RAID 1,则必须确定数据偏移量,然后相应地移动分区偏移量。

# mdadm --examine /dev/sda1
Data Offset : 2048 sectors
$ cat /sys/block/sda/sda1/start
2048
$ cat /sys/block/sda/sda1/size
268613632

在此示例中,数据偏移量为2048,分区本身从 开始2048并且268613632很大。

您必须删除该分区并创建一个新分区2048+2048- 268613632-2048。即通过偏移扇区增加起始扇区并通过偏移扇区减少大小,因此分区的结束扇区保持不变。

您可以使用您选择的任何分区器来执行此操作,其中parted

# parted /dev/sda
) unit s
) print free
) rm 1
) print free
) mkpart primary 4096s 268611583s
) name 1 mynonraidroot

重新启动后,新分区现在应该直接指向文件系统,并且 RAID 本身将不再存在。 (如果您从救援系统执行此步骤,则也不需要重新启动,并且您也可以mdadm --zero-superblock /dev/sda1在更改分区之前重新启动,假设您已经停止了 RAID)。


最后一步,您必须删除mdadm.conf、更新引导加载程序和 initramfs,以消除对 RAID 设置的任何剩余引用。

相关内容