如何在 Ubuntu 中复制根文件系统

如何在 Ubuntu 中复制根文件系统

我想将我的 Ubuntu 根文件系统复制到另一个文件夹(可能是/home/rootfs)。我不是要复制/根文件目录,而是要复制根文件系统。有人知道正确的方法吗?

我这样做是因为我正在尝试使用 Go 创建一个容器(https://www.youtube.com/watch?v=Utf-A4rODH8),视频中她已经复制了根文件系统。我也想这样做。

谢谢你!

答案1

您可以使用dd

dd if=/dev/sdXX of=/home/rootfs.img其中 /dev/sdX 是您要复制(输入)的块设备。

如果您有标准安装,您的根文件系统可能是 /dev/sda1,但您可以通过运行“df”并选择安装在“/”上的设备来判断。

参数表示完成后图像的保存位置。

您可能必须以 root 身份运行它。

答案2

也许这个答案对你来说不再相关,但对于任何关注该演示的人来说它可能有用。

技巧是使用rsync但排除不需要的目录以及要克隆根文件夹的目录,以避免无休止的递归复制。

命令:

rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*"} /home/rootfs

解释:

rsync 是一个比 更复杂的文件传输程序。你可以在 shell 中cp输入以下内容来了解​​有关它及其功能的更多信息。man rsync

  • -a标志:‘存档’模式的快捷方式。这将保留符号链接、设备等。
  • -A标志:保留权限
  • -X标志:保留扩展属性
  • -v标志:详细

    --exclude=...flag:这将排除(而不是复制)标志值中列出的目录。请注意最后一项:我们正在排除文件夹/home/*,以避免无休止的递归复制。

最后,最后一个参数是目标目录。 在你的情况下,它是/home/rootfs(demo 将克隆存储在/vagrant/ubuntu-fs/

运行此程序后,我能够继续完成演示。希望这对您有所帮助。

相关内容