filesystems – zfs将root文件系统重命名移动到child

filesystems – zfs将root文件系统重命名移动到child,第1张

概述类似的问题 exists,但解决方案(使用mv)是可怕的,因为在这种情况下,它的工作原理是“复制,然后删除”,而不是纯粹的“移动”. 所以,我创建了一个池: zpool create tank /dev/loop0 并直接从另一个存储中查找我的数据,以便我的数据现在位于/ tank中. zfs listNAME USED AVAIL REFER MOUNTPOINTtank 类似的问题 exists,但解决方案(使用mv)是可怕的,因为在这种情况下,它的工作原理是“复制,然后删除”,而不是纯粹的“移动”.

所以,我创建了一个池:

zpool create tank /dev/loop0

并直接从另一个存储中查找我的数据,以便我的数据现在位于/ tank中.

zfs Listname      USED  AVAIL  REFER  MOUNTPOINTtank      591G  2.10T   591G  /tank

现在我意识到我需要将数据放在子文件系统中,而不是直接放在/ tank文件系统中.

那么如何移动或重命名现有的根文件系统,使其成为池中的子项?

简单重命名不起作用:

zfs rename tank tank/mydatacannot rename to 'tank/mydata': datasets must be within same pool

(顺便说一句,为什么它会抱怨数据集不在同一个池中,而事实上我只有一个池?)

我知道有些解决方案涉及复制所有数据(mv,或将整个数据集发送到另一台设备并返回),但是不应该有一种简单优雅的方式吗?

只是注意到我不关心现阶段的快照(还没有关注).

解决方法 (请参阅注释中的注释,这可行,但您永远无法删除初始快照,因此这不是一个好的解决方案)

使用ZFS,这非常简单:只需快照,克隆,然后是rm.无需额外空间或复制时间.

zfs snapshot tank@mydatazfs clone tank@mydata tank/newnamezfs set mountpoint=/beep/boop tank/newnamerm -rf /tank/*

如果在zpool中有其他文件系统,如果不更改挂载点,请注意运行rm -rf.您不希望以意外方式递归删除新文件系统(/ tank / newname)或任何其他子文件系统(tank / *)的内容.一旦确认文件不在根fs(/ tank /)中,并且只在新文件系统中,您也可以删除该初始快照.

zfs delete tank@mydata
总结

以上是内存溢出为你收集整理的filesystems – zfs将root文件系统重命名/移动到child全部内容,希望文章能够帮你解决filesystems – zfs将root文件系统重命名/移动到child所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1042537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存