我想将我的 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/
)
运行此程序后,我能够继续完成演示。希望这对您有所帮助。