我正在尝试在我的 Ubuntu 机器上使用mdadm
.
我读了一些教程,它们都直接使用分区名称,例如:
$ sudo mdadm \
--create /dev/md0 \
--level=6 --raid-devices=4 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
据我所知,分区名称可能会根据它们连接的位置而改变。
因此(逻辑上)我尝试不是通过名称而是通过 UUID 来“绑定”分区,令人惊讶的是,在执行此操作时我没有找到太多资源。
我发现了一在这里发帖,我认为尝试同样的方法。
帖子中的方法使用的/dev/disk/by-partuuid/<X>
是<X>
一些ID 大概是通过诸如 之类的命令获得的sudo blkid /dev/sdX
。
我现在的问题是,如何使用 UUID 而不是分区名称创建 RAID6 阵列?
另外,作为奖励:我读到省略会导致“扫描”分区devices
中的超级块并基于此组装数组。对于本地 RAID 设置来说,这是一个好的方法吗?/etc/mdadm/mdadm.conf
mdadm
答案1
这是一个先有鸡还是先有蛋的问题。
使用 UUID 并没有错,但为了使用它们,它们必须首先存在。
块设备从其上的元数据获取其 UUID。mdadm --create
是将此类元数据写入块设备的命令之一。如果不先运行mdadm --create
,就没有UUID。所以只能直接指定设备名称为/dev/sd{a,b,c,d}1
.
否则,您必须依赖其他一些 UUID 提供程序。 PARTUUID 由分区表提供。你可以使用它。它会起作用的。
如果还没有分区表,则没有 PARTUUID。在这种情况下,udev 还在 下提供了大量其他设备名称/dev/disk/*/*
,例如您可能会在其中找到设备型号和序列号。因此,即使在创建任何 UUID 之前,也可以使用唯一的设备名称。
parted
通常不会这样做,因为在对这些块设备运行、mdadm --create
等之前,您会使用其他命令来确定这些块设备的身份mkfs
。
可以指定/dev/sd{a,b,c,d}1
您在运行命令时是否已检查这些设备是否正确。之后,在 mdadm.conf、fstab 等中,您只能使用 UUID,除非您有充分的理由不这样做。