更改 cygwin stat 报告的 Windows 分区设备号

更改 cygwin stat 报告的 Windows 分区设备号

我有两个具有相同设备号的分区:

$ stat -c "%D" /cygdrive/c
ec6d967e
$ stat -c "%D" /cygdrive/g
ec6d967e

我认为这是因为 G: 是从 C: 的映像中恢复的。C:\cygwin64 安装在 / 上。当我尝试运行时,diff -r / /cygdrive/g/cygwin64它会跳过具有相同设备 + inode 编号的目录。根据此错误报告,这不是 diff 中的错误:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33467

那么我该如何更改 G: 分区的设备号?我尝试使用 gdisk 1.0.4,但没有成功;在每种情况下,唯一磁盘和唯一分区 GUID 已经不同。

我正在使用 Windows 7 Bootcamp,并且分区在 OS X 10.6.8 中也具有相同的设备号,尽管它们与 Cygwin 设备号不同。

答案1

在具有 NTFS 文件系统的 Cygwin 下,设备号来自 NTFS 卷序列号。Microsoft 有一个名为 VolumeID 的工具可用于更改它。

https://docs.microsoft.com/en-us/sysinternals/downloads/volumeid

$ fsutil fsinfo ntfsinfo g: | grep NTFS
NTFS Volume Serial Number :       0xe3462385ec6d967e
$ ./Volumeid64.exe g: 8f70-e8b5

VolumeId v2.1 - Set disk volume id
Copyright (C) 1997-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Volume ID for drive g: updated to 8f70-e8b5
$ fsutil fsinfo ntfsinfo g: | grep NTFS
NTFS Volume Serial Number :       0xe34623858f70e8b5

不幸的是,在 OS X 下它不会改变。目前我很高兴仅限于 Cygwin。另一方面,当序列号为 8 字节字段时,此工具只会更改序列号的最后 4 个字节。

https://www.ntfs.com/ntfs-partition-boot-sector.htm

我找不到命令行工具来设置完整的 8 个字节。不过,傲梅分区助手可以处理,而且 DiskGenius 显然也可以。

相关内容