在Linux中自动区分多个硬盘之间的差异?

在Linux中自动区分多个硬盘之间的差异?

我正在运行 Ubuntu Server 9.10。我有两个外部 USB 硬盘。我分别出于不同的备份目的使用它们。因此,某些数据存储在一个硬盘上,而不同的信息存储在另一个硬盘上。

我想编写一个脚本,它可以查看外部硬盘并确定它是哪个硬盘,以便它可以将正确的信息复制到它。Linux 有没有办法确定这一点?比如,如果我将一个硬盘视为 /dev/sdc1,然后拔下它并插入另一个硬盘,Linux 应该将其视为 /dev/sdd1 还是 /dev/sdc1?

我是 Linux 新手,不太明白它如何确定分配给驱动器的 /dev/sdxx 值。

答案1

可以使用UUID设备的 来执行存储设备识别。基于 /dev/sd* 的识别并不可靠。

在 ubuntu 9.10 中,您可以使用blkid列出设备,UUID并且可以在脚本中使用此命令来正确识别特定的 HDD由于UUID被唯一地分配给特定的 HDD

您可以找到更多信息这里,但请注意,vol_id自 ubuntu 9.10 起该命令不可用。

答案2

这可能被视为一种解决方法,而不是对您的问题的直接回答,但我解决此问题的方法是在每个硬盘上创建不同的文件。

我有几个外部硬盘,因此我touch在一个硬盘上创建一个零字节文件,如“音乐”,或在另一个硬盘上创建一个零字节文件,如“视频”,然后我的备份脚本就可以检测到要写入的内容。

希望您能得到问题的明确答案。我很想看看。

答案3

只是回答我自己的问题以供其他人将来参考......

我发现区分设备的一个好方法就是使用 为它们添加标签e2label

另外,我可以在这里区分设备

/dev/disk/by-label/

/dev/disk/by-uuid

相关内容