![在Linux中自动区分多个硬盘之间的差异?](https://linux22.com/image/1230802/%E5%9C%A8Linux%E4%B8%AD%E8%87%AA%E5%8A%A8%E5%8C%BA%E5%88%86%E5%A4%9A%E4%B8%AA%E7%A1%AC%E7%9B%98%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%EF%BC%9F.png)
我正在运行 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