Debian

在 Debian 中取消配置 RAID1 並掛載第二塊硬碟

  • March 10, 2018

在 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

注意:這只適用於 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 設置的任何剩餘引用。

引用自:https://unix.stackexchange.com/questions/429397