重启后lsblk显示不存在的md分区

重启后lsblk显示不存在的md分区

mdadm我在 debian 8.2 上设置 RAID1 阵列时遇到奇怪的行为。

设置阵列后,lsblk显示:

simon@debian-server:~$ lsblk
NAME                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                             8:0    0 931.5G  0 disk
`-sda1                          8:1    0 931.5G  0 part
  `-md0                         9:0    0 931.4G  0 raid1
sdb                             8:16   0 931.5G  0 disk
`-sdb1                          8:17   0 931.5G  0 part
  `-md0                         9:0    0 931.4G  0 raid1
sdc                             8:32   0 232.9G  0 disk
|-sdc1                          8:33   0   512M  0 part  /boot/efi
|-sdc2                          8:34   0   244M  0 part  /boot
`-sdc3                          8:35   0 232.2G  0 part
  |-debian--server--vg-root   254:0    0 228.3G  0 lvm   /
  `-debian--server--vg-swap_1 254:1    0   3.9G  0 lvm   [SWAP]

重启后lsblk显示:

simon@debian-server:~$ lsblk
NAME                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                             8:0    0 931.5G  0 disk
`-sda1                          8:1    0 931.5G  0 part
  `-md0                         9:0    0 931.4G  0 raid1
    |-md0p1                   259:0    0 811.6G  0 md
    `-md0p2                   259:1    0 346.1G  0 md
sdb                             8:16   0 931.5G  0 disk
`-sdb1                          8:17   0 931.5G  0 part
  `-md0                         9:0    0 931.4G  0 raid1
    |-md0p1                   259:0    0 811.6G  0 md
    `-md0p2                   259:1    0 346.1G  0 md
sdc                             8:32   0 232.9G  0 disk
|-sdc1                          8:33   0   512M  0 part  /boot/efi
|-sdc2                          8:34   0   244M  0 part  /boot
`-sdc3                          8:35   0 232.2G  0 part
  |-debian--server--vg-root   254:0    0 228.3G  0 lvm   /
  `-debian--server--vg-swap_1 254:1    0   3.9G  0 lvm   [SWAP]

我不知道 md0p1 和 md0p2 分区来自哪里。我/etc/fstab/etc/mdadm/mdadm.conf他们都没有任何关于此事的内容。

parted显示 上的一个分区md0

simon@debian-server:~$ sudo parted /dev/md0 print
Model: Linux Software RAID Array (md)
Disk /dev/md0: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0.00B  1000GB  1000GB  ntfs

你知道 md0p1 和 md0p2 分区来自哪里吗?

我通过执行以下操作来设置数组:

  • 删除现有设备(我已经这样做过几次):

    sudo mdadm --stop /dev/md0
    sudo mdadm --remove /dev/md0
    
  • 零驱动器:

    sudo dd if=/dev/zero of=/dev/sda bs=1M count=1024
    sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1024
    
  • 创建分区表:

    sudo parted /dev/sda mklabel gpt
    sudo parted /dev/sdb mklabel gpt
    
  • 创建全盘分区:

    sudo parted -a optimal /dev/sda mkpart primary '0%' '100%'
    sudo parted -a optimal /dev/sdb mkpart primary '0%' '100%'
    
  • 在分区上设置 raid 标志:

    sudo parted /dev/sda set 1 raid on
    sudo parted /dev/sdb set 1 raid on
    
  • 创建RAID阵列:

    sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ab]1
    
  • 添加文件系统(我使用的是NTFS,但问题也发生在ext4上)

    sudo mkfs.ntfs -f /dev/md0
    

答案1

你知道 md0p1 和 md0p2 分区来自哪里吗?

我认为它们正在被kpartx或同等的人解释。 (手册页kpartx说它是“从热插拔调用”,现在这通常意味着udev)。

我认为如果您kpartx /dev/md0在没有任何参数(或带有-v)的情况下运行,它可能会显示相同的分区。

parted 显示 md0 上的一个分区

呃。 parted 可能会检测其他内容,例如文件系统,或者它是 MD 分区的事实,并将其视为更重要的。或者parted不支持与kpartx相同的一组分区表格式。或者其他一些差异。不会让我感到惊讶。

零驱动...

唔。你尝试过wipefs吗?它支持多种分区格式,包括文件系统。某些格式可能在第一个兆字节之外有幻数。例如,GPT 分区表在驱动器末尾包含一个“尾部”,用作开头“标头”的备份。 wipefs具体处理这种情况:http://karelzak.blogspot.co.uk/2011/11/wipefs8-improvements.html

我认为您还需要确保md0在创建它后进行擦除。 (我相信会检查新 LV 上的任何格式并提示执行此操作,但对于新 MD 阵列lvcreate则不然)。mdadm --create

请注意wipefs,不能 100% 保证找到kpartx所需的相同内容。 kpartx是为 lvm/DM 项目创建的,并使用自己的分区代码。

相关内容