两个分区暂时具有相同的 UUID 有问题吗?

两个分区暂时具有相同的 UUID 有问题吗?

按照将你的 Linux 安装移至新的固态硬盘 - 甚至更小的固态硬盘,我在点“9”之后就卡住了。我使用 tune2fs 将 sdb6(HDD 上运行的 ubuntu 的文件系统)的 UUID 复制到 sda1(SSD 中想要的新文件系统)。

当我尝试摆脱困境时......(我很快会发布有关它的帖子)在两个分区上具有相同的 UUID 时运行系统是否存在问题?

如果是这样,同时考虑到我不知道 sda1 分区的原始 UUID,是否可以只发明一个,例如通过更改 UUID 的一个字符?

系统信息 Ubuntu 16.04

$ fdisk -l

Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
...
Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 225282211 225280164 107.4G 83 Linux


Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
...
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sdb1            2048 318919887 318917840 152.1G  7 HPFS/NTFS/exFAT
/dev/sdb2       318920702 976771071 657850370 313.7G  5 Extended
/dev/sdb5       960151552 976771071  16619520   7.9G 82 Linux swap / Solaris
/dev/sdb6       318920704 960151551 641230848 305.8G 83 Linux

答案1

一些系统工具通过 UUID 编号引用分区。这在 中很常见/etc/fstab,例如;分区通过其 UUID 编号而不是其他方式进行标识以进行挂载。因此,重复的 UUID 编号可能会导致混乱和不一致 —— 在一次启动时,可能挂载了一个分区;但在另一次挂载时,可能挂载了另一个分区。如果该分区上的文件发生更改(大多数分区都可能如此),这可能会造成问题。

您可以通过以下命令了解分区使用的 UUID blkid

$ sudo blkid /dev/sdc3
/dev/sdc3: UUID="5028fa50-0079-4c40-b240-abfaf28693ea" TYPE="ext4" PARTLABEL="Xubuntu /boot" PARTUUID="74ed9e82-2e96-4a12-89e0-e0563c296a08"

此示例显示其/dev/sdc3UUID 为 5028fa50-0079-4c40-b240-abfaf28693ea。

您可以使用各种文件系统专用工具更改 UUID。对于 ext2/3/4fs,此工具称为tune2fs,您可以向其-U传递更改 UUID 的选项。但是,您将需要一个新的 UUID,您可以使用 工具生成它uuidgen,您可以在调用 时调用它tune2fs

$ sudo tune2fs -U $(uuidgen) /dev/sdc3

/dev/sdc3当然,您需要更改系统的设备 ID(在此示例中)。

如果您的分区使用除 ext2/3/4fs 之外的文件系统,则需要使用除 之外的工具tune2fs,例如xfs_admin用于 XFS 或btrfstuneBtrfs 的工具。

如果该分区被安装在 中/etc/fstab,由文件中的 UUID 标识grub.cfg,或以其他方式引用,则可能需要在进行更改后调整该配置文件。

答案2

如果您需要更改 NTFS 分区的 UUID,则情况会有所不同:

其实这方面有一个很好的解决方案Ubuntu 论坛主题


对于 NTFS 分区,这是我执行的完整步骤列表(一切进展顺利,没有丢失任何数据):

始终保留您要编辑的分区的备份

blkid检查分区的现有 uuid,仅供参考,这是我的输出,请记下 UUID 以供日后使用

/dev/sdd1: LABEL="EXT-HD-JS" 
TYPE="ntfs" 
UUID="983C4B493C4B221C" 
PARTUUID="0021f320-01"

mount | grep "/dev/sdd1"确保您的分区尚未安装!

现在我们安装一个十六进制编辑器,将512字节的超级块数据复制到你的用户主目录中,然后编辑该数据:

sudo apt install ncurses-hexedit
sudo dd if=/dev/sdd1 of=~/superblock1 bs=512 count=1
sudo hexeditor ~/superblock1

查看字节 0x48 至 0x4f:1C 22 4B 3C 49 4B 3C 98

这些字节的顺序与使用 blkid 显示的 UUID 相反

改变开始1D(最小的改变总是更好)

使用 Ctrl+X 退出十六进制编辑器,输入 Enter 保存在同一文件下。

接下来我们用改变后的 UUID 复制回超级块数据,重新启动并再次检查 UUID:

sudo dd if=~/superblock1 of=/dev/sdd1 bs=512 count=1
sudo reboot now
blkid

相关内容