首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何防止将具有与主机相同UUID的btrfs分区的磁盘附加到损坏挂载列表中?

如何防止将具有与主机相同UUID的btrfs分区的磁盘附加到损坏挂载列表中?
EN

Unix & Linux用户
提问于 2020-10-02 05:29:21
回答 2查看 393关注 0票数 2

背景:主机操作系统是AzureOracleLinux7.8实例,其OS磁盘通过/dev/sda条目挂载。/dev/sda2 (/)是btrfs。我有另一个Azure Oracle Linux7.8实例被破坏了,所以我想附加它的磁盘进行调试。一旦连接到我的主机操作系统,因为附加的磁盘来自同一个Oracle Linux 7.8映像,它的UUID与我的主机相同,它似乎会给挂载造成一些混乱/损坏。下面是Azure完成图像附加后lsblk的输出:

代码语言:javascript
复制
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb       8:16   0    4G  0 disk
└─sdb1    8:17   0    4G  0 part /mnt
sr0      11:0    1  628K  0 rom
fd0       2:0    1    4K  0 disk
sdc       8:32   0   50G  0 disk
├─sdc15   8:47   0  495M  0 part
├─sdc2    8:34   0   49G  0 part /      <--- isn't really sdc2, its mounted from sda2
├─sdc14   8:46   0    4M  0 part
└─sdc1    8:33   0  500M  0 part
sda       8:0    0  100G  0 disk
├─sda2    8:2    0   99G  0 part
├─sda14   8:14   0    4M  0 part
├─sda15   8:15   0  495M  0 part /boot/efi
└─sda1    8:1    0  500M  0 part /boot

您可以看到它认为根/是通过/dev/sdc2挂载的,但是这个磁盘(/dev/sdc)实际上仅仅是附加的。我只能假设UUID冲突导致了这种情况(可能是其他原因吗?),但是现在我不能安装真正的/附加的/dev/sdc2来调试磁盘,因为系统认为它已经安装了。

在我附加磁盘时,是否有防止这种情况发生的方法?

EN

回答 2

Unix & Linux用户

发布于 2020-10-05 12:35:34

您可以在挂载磁盘之前用btrfstune更改btrfs UUID (或先卸载它)。

代码语言:javascript
复制
# first show the existing UUID (and keep for later)
sudo blkid /dev/sdc2

# change to a new UUID
sudo btrfstune -M $(uuidgen) /dev/sdc2

也可以看到-U,但是-M应该足够了。稍后,您可以使用相同的方法(代替uuidgen)还原原始uuid。

在你尝试这个之前做个备份。

票数 2
EN

Unix & Linux用户

发布于 2020-10-08 21:36:32

我认为这是不可能的。如果系统中可以看到多个具有重复UUIDs的BTRFS文件系统,则无法使用它们而不存在数据损坏的风险- https://btrfs.wiki.kernel.org/index.php/Gotchas

您需要先隐藏一个设备,比如从SCSI echo 1 > /sys/block/sde/device/delete中移除,在另一个设备上更改UUID,并获得第一个设备echo "- - -" > /sys/class/scsi_host/host0/scan,但是您不能这样做,因为您已经将BTRFS作为根文件系统挂载了。我认为您必须附加到另一台机器(避免UUID冲突)。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/612486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档