为什么我的 HDD 分区是字符特殊设备?

为什么我的 HDD 分区是字符特殊设备?

我有一堆旧的 1T 磁盘,上面有 mdadm 阵列。它们已经停用一段时间了,但昨天我将它们插入运行最新 Debian Jessie 的服务器。

最终,我重新将阵列组合起来,但有两个驱动器拒绝重新添加。查看这些驱动器,似乎我以某种方式将设备添加到了阵列而不是(Linux RAID 自动检测)分区(sdz 而不是 sdz1) - 我得到的输出似乎是正确的mdadm -E /dev/sdz,但如果我运行mdadm -E /dev/sdz1,我得到的是mdadm: cannot open /dev/sdz1: No such device or address

进一步研究发现,这两个驱动器的分区似乎是字符特殊设备,而不是块特殊设备:

root@comp:~# file /dev/sda1        # good drive
/dev/sda1: block special (8/225)
root@comp:~# file /dev/sdz1        # bad drive
/dev/sdz1: character special (8/209)

即使使用 dd 将整个坏驱动器清零,并使用 fdisk 重新创建分区,它们仍然会以同样的方式恢复!这是怎么回事?


编辑:这是 ls 关于这些设备的说明:

root@comp:~# ls -l /dev/sdz*
brw-rw---- 1 root disk 65, 0 Feb  1 15:02 /dev/sdz
cr-------- 1 root root 65, 1 Jan 31 18:31 /dev/sdz1

E2:来自 /proc/partitions 的相关数字:

root@comp:~# cat /proc/partitions | egrep 'sdz|sda'
  65        0  976762584 sdz
  65       32  976762584 sda
  65       33  976760832 sda1

我不明白为什么 sdz 分区没有出现在这里。

答案1

仅使用 删除 /dev/sdz1 (字符设备分区)rm /dev/sdz1,然后调用partprobe /dev/sdz会导致新分区正确显示。

我无法解释为什么最初会发生这种情况,但这个解决方案对我有用。

相关内容