我遇到了一个奇怪的问题,我无法解释。
我有三块硬盘。一块是根磁盘 sda,还有两块,分别是 sdb 和 sdc。后者有两个 LUKS 分区 sdb1 和 sdc1,我将它们用在 ZFS 池中(仅镜像)。
基本上,一切都正常;但是,有时 Linux 会混淆 sda 和 sdb 的名称,因此启动后,我应该从 sda1 和 sdc1 而不是 sdb1 和 sdc1 构建 ZFS 池。我可以创建 LUKS 分区,但随后无法挂载该分区,因为 ZFS 会报 I/O 错误。我非常惊讶 ZFS 竟然没有忽略原始分区名称,而且不仅仅关心所使用的 LUKS 分区的调用方式。
为了解决这个问题,我决定改用 LUKS UUID,但这会出现同样的错误。我不知道现在该怎么办;我不断重新启动系统,直到 sda 和 sdb 命名正确的磁盘,然后一切正常,但现在我显然相当恼火。
如果有人能帮助我解决这个问题,我将不胜感激。这可能很简单,但我不知道该怎么做。
答案1
这个问题的一般解决方法是通过 id 添加磁盘,即
ls -l /dev/disk/by-id | grep sda | head -n1
ls -l /dev/disk/by-id | grep sdb | head -n1
您将看到指向磁盘的指针。在我的系统上,ls -l /dev/disk/by-id | grep sda
结果为 -
$ ls -l /dev/disk/by-id | grep sda
lrwxrwxrwx 1 root root 9 Apr 19 15:36 ata-ST95005620AS_5YX07EY0 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 19 15:36 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 19 15:36 ata-ST95005620AS_5YX07EY0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 19 15:36 ata-ST95005620AS_5YX07EY0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 9 Apr 19 15:36 scsi-SATA_ST95005620AS_5YX07EY0 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 19 15:36 scsi-SATA_ST95005620AS_5YX07EY0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 19 15:36 scsi-SATA_ST95005620AS_5YX07EY0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 19 15:36 scsi-SATA_ST95005620AS_5YX07EY0-part5 -> ../../sda5
lrwxrwxrwx 1 root root 9 Apr 19 15:36 wwn-0x5000c5002aa74475 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 19 15:36 wwn-0x5000c5002aa74475-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 19 15:36 wwn-0x5000c5002aa74475-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 19 15:36 wwn-0x5000c5002aa74475-part5 -> ../../sda5
你的会有所不同,但例如/dev/sda1
;我想补充一下 -
/dev/disk/by-id/ata-ST95005620AS_5YX07EY0-part1