修改BTRFS文件系统UUID


14

我已经使用Clonezilla备份了BTRFS文件系统,并将其中一个备份恢复到名为的文件中2013-11-29.sda3.img

我需要从此备份中取出一些文件,但有一个障碍。由于备份是本机的备份,因此我无法在文件系统上的任何位置挂载备份,因为其UUID与的UUID相匹配/

有什么方法可以更改备份卷的UUID?据我了解,BTRFS将UUID信息存储在文件系统上的每个块中,这使我的工作变得复杂。但是,有没有一种方法可以修改呢?我知道这可能需要很长时间才能完成,但这与我无关。我主要关心的是保持服务器在线。备份相当大,因此将其转移到另一台计算机上将花费相当长的时间。

我有什么选择?

Answers:


0

目前尚无办法。实际上,卷UUID 在块树的每个节点中使用。您还必须在此处更改它们,并假定未对块/设备的标头进行哈希处理。BTRFS确实不是为允许这种备份而设计的。

这确实很可悲,但是处理该问题的最简单方法是使用另一台计算机。

如果可以的话,我建议您停止以这种方式备份数据。

  1. 如果您的分区整体上很重要,请使用dd/进行备份clonezilla。当您需要还原备份时,请立即还原整个分区。不要做这种混合的备份:您专门保存你的分区,集团层面。因此,您必须在集团级别还原它。否则,您将用勺子切肉。正如您肯定注意到的那样,通常不使用此解决方案,因为它没有多功能性。

  2. 如果您的数据很重要,请rsync在另一张磁盘上使用或类似的工具进行备份:您的数据将始终可访问,您可以完全备份所需的文件,正在文件级别进行备份等。

请注意,BTRFS具有一些(现在有限)的备份功能。BTRFS发展迅速,我猜将来还会有更多的备份功能。

哦,您已经被警告过;)自动化的Clonezilla备份和GPG加密

顺便说一句,使用LUKS进行基于分区的加密,或者使用EnFS或EncryptFS进行基于文件的加密,加密将更容易应用于文件。


主要问题是,当映像FS为BTRFS时,如何简单地装载映像备份。我想我将不得不对当前操作系统状态进行另一个Clonezilla备份,还原旧备份,执行我需要做的事情,然后还原回当前状态。希望有一种更简单的方法,但是,嘿,如果可行,那就可行。
Naftuli Kay 2013年

主要的答案是,如果它与磁盘上的另一个分区共享相同的UUID,则无法:)

23

使用该程序btrfstune(它是标准btrfs-tools的最新版本的一部分),可以更改脱机文件系统的UUID。如果分区是例如。/dev/sda1,请使用以下命令生成新的随机UUID:

btrfstune -u /dev/sda1

要指定应使用哪个值,请使用大写字母,-U后跟(有效)UUID字符串,例如:

sudo btrfstune -U e0c5b943-1c02-44a2-bbaf-87ebda5e363b /dev/sdaX

-m/ -M-u/ 在实践上有什么区别-U
弗拉基米尔·潘捷列夫

看起来-m/ -M很新。有关btrfs-progs提交内核提交消息的更多信息。
弗拉基米尔·潘捷列夫

尝试过这一点-既-U-M 崩溃BUG_ON,我和破坏文件系统。没有备份就不要尝试!
弗拉基米尔·潘捷列夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.