由于UUID重复,无法挂载外部NTFS硬盘驱动器。

我正在尝试在启动时设置/etc/fstab以自动挂载两个外部NTFS硬盘,并决定使用UUID作为参考而不是设备名称。

奇怪的是,blkid报告说这两个硬盘具有完全相同的UUID,所以我无法将两个条目都添加到文件中。以下是它显示的两个硬盘信息:

/dev/sdc1: LABEL="Hank's Legacy" UUID="D8249BB8249B97D8" TYPE="ntfs" PARTUUID="61bf885b-01"

/dev/sdb1: LABEL="Hank's Mainframe" UUID="D8249BB8249B97D8" TYPE="ntfs" PARTUUID="f865b797-01"

我读到了关于tune2fs无法用于修改NTFS分区的UUID的信息,因为这实际上不是一个UUID,而是一个序列号。你有什么建议可以让我挂载这两个磁盘而不会引起冲突吗?

对于你已经得到的各种回答,我没有什么要补充的。然而,两个驱动器最终具有相同的UUID这一事实是非常不可思议的,几乎可以说是“几乎不可能的”。所以,我有一个问题:你是否曾经使用dd或其他方式将一个驱动器的位对位复制到另一个驱动器上? - Cbhihe
@Cbhihe,看一下我的回答。如果驱动器是出厂格式化的,虽然极为罕见,但这是可能的... - Fabby
1@Fabby:我看到了你的回答。我坚持我的评论,特别是因为我们不知道Phanindra_K是否购买了完全相同的硬盘,同时购买,几乎相同的序列号等等...这种情况发生的概率微乎其微。我只是好奇是否有其他解释。通常错误或故障发生在椅子和键盘之间。 - Cbhihe
@Cbhihe:是的,这两个硬盘是在同一订单中购买的,并且完全相同。我从未在它们之间进行过磁盘到磁盘的复制。 - Phani K
1在那种情况下,尽管可能性很小,你可能正好拥有@Fabby建议的解决方案。希望你现在已经解决了问题。这可能看起来有点可怕,因为你可能会认为整个驱动器都处于危险之中,但实际上,我肯定会使用你选择的解决方案。更改一个驱动器的UUID。标签更改只是锦上添花。关键时刻,从物理卷管理的角度来看,重要的是UUID,特别是如果你管理大量的UUID。-ced. - Cbhihe
@Cbhihe:我是个老古董了:我以前见过这种情况好几次……这是硬盘制造商时不时会犯的错误。如果你一直在运行一个有数千台服务器和上万块硬盘的数据中心,我曾经在DOS、Windows和Unix系统中都见过这种情况!(在同一台服务器上只有大约10次,但仍然不是0)**;-)** - Fabby
3个回答

要挂载NTFS驱动器,我们也可以仅使用磁盘标签。我们可以安全地从Windows更改标签,或者使用ntfslabel Install ntfslabel。请参见 不用说,通过使用ntfslabel,我们还可以更改分区的UUID(也称为序列号)。为了避免对UUID依赖的Windows文件分配产生负面影响,我们应该只更改UUID的上半部分(Windows不使用该部分)。
sudo ntfslabel --new-half-serial[=ssssssss] /dev/sdXN

例子:

enter image description here


如果用户是高级用户,这个方法很好!否则对于初学者来说,“将所有数据复制到一个驱动器,重新格式化另一个”更容易!**;-)**(点赞!) - Fabby
实际上,OP似乎已经为他们的驱动器设置了标签。所以只需要编辑fstab - udisks将挂载点设为/media,就可以使用标签进行挂载了。 - Takkat
1谢谢你的回答! @Fabby:我知道这是一个选择,但是那些驱动器里有太多的数据,无法进行多次复制。 :) - Phani K
1@PhanindraK:由于您之前从未在该网站上接受过任何答案:如果此答案对您有帮助,请不要忘记点击文本左边的灰色,表示是的,此答案有效!**;-)** - Fabby
Takkat: 我对你提出的建议是否真的是关于更改任何分区的UUID表示强烈怀疑。这看起来、闻起来和听起来更像是更改与驱动器sdX相关的某个序列号,而不是任何驱动器上的分区的UUID。Phanindra_K的问题是关于UUID更改的,这正是@Ron更正确地回答的,我个人认为。 - Cbhihe
@Cbhihe:谢谢你的提醒。对于NTFS文件系统,分区的序列号被用作Ubuntu的UUID。我们可以像上面所示更改这个序列号,但是我们不应该更改整个序列号,因为这可能会使Windows许可证密钥失效。 - Takkat
只是为了明确起见,在上面的示例中,设备应该是/dev/sdXN,其中你需要用自己的值替换X和N,而不是/dev/sdX。可以假设ntfslabel不会允许你破坏MBR,但我不会冒险去测试! - Chris Good
@ChrisGood:非常感谢你提出这个宝贵的观点。已经编辑了帖子,以更清楚地表明我们在讨论分区问题。 - Takkat

有趣!有一种方法可以通过修改超级块来修改ntfs分区的UUID,文档这里有记录。它说卷序列号是在ntfs格式化的驱动器/分区中从偏移量0x48开始的八个字节,因此改变它将会改变序列号/UUID。要复现它:
dd if=/dev/sda# of=my_block bs=512 count=1

ghexedite2 my_block (or what ever hex editor you like. Alter a byte or two between 0x48 and 0x4f, inclusive)

dd if=my_block of=/dev/sda# bs=512 count=1

我自己还没有尝试过,但看起来很有趣。
注意:`dd` 是“磁盘销毁”的意思,所以使用时要小心!

我在直接访问磁盘时非常谨慎,所以除非我确切知道自己要修改什么,否则我不会使用你的解决方案。你说得对,Disk Destroy 是有风险的,我可不能拿这些磁盘开玩笑! - Phani K
然而,阅读这篇文章非常有教育意义。所以,感谢您提供的信息! - Phani K
1@Phanindra_K:可以理解你的谨慎,但为了消除这一切的危险感,只需访问https://www.linux.com/community/blogs/133-general-linux/289198。很难找到比这更好的解释罗恩建议的方法,顺便说一句,那**确实**是解决你问题的正确方案。 - Cbhihe

这有点奇怪,不过为了使用你的硬盘驱动器,你可以使用/dev/sdX而不是UUID,这样你就可以同时添加两个硬盘驱动器。
/dev/sdb1 /mount-point ntfs defaults,uid=USER_ID,rw  0  0

建议阅读此内容:如何在/etc/fstab中正确挂载NTFS分区?