我想将我的 Ubuntu 的根文件系统复制到另一个文件夹(也许是/home/rootfs
. 我不是要复制/
根文件目录,而是要复制根文件系统。有谁知道这样做的正确方法?
我这样做是因为我正在尝试使用 Go ( https://www.youtube.com/watch?v=Utf-A4rODH8 ) 创建一个容器,并且在视频中她已经复制了一个根文件系统。我也想这样做。
谢谢!
我想将我的 Ubuntu 的根文件系统复制到另一个文件夹(也许是/home/rootfs
. 我不是要复制/
根文件目录,而是要复制根文件系统。有谁知道这样做的正确方法?
我这样做是因为我正在尝试使用 Go ( https://www.youtube.com/watch?v=Utf-A4rODH8 ) 创建一个容器,并且在视频中她已经复制了一个根文件系统。我也想这样做。
谢谢!
您可以使用
dd
.dd if=/dev/sdXX of=/home/rootfs.img
其中 /dev/sdX 是您要复制的块设备(输入)。如果您有标准安装,您的根文件系统可能是 /dev/sda1,但您可以通过运行“df”并选择安装在“/”上的设备来判断。
的参数表示完成后图像将保存在哪里。
您可能必须以 root 身份运行它。
也许这个答案与您不再相关,但它可能对任何关注该演示的人都有用。
诀窍是使用
rsync
但不包括不需要的目录,以及将根文件夹克隆到的目录,以避免无休止的递归复制。命令:
rsync -aAXv / --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/home/*"} /home/rootfs
解释:
rsync 是一个文件传输程序,比
cp
.man rsync
您可以通过键入您的 shell来了解更多关于它及其功能的信息。-a
标志:“存档”模式的快捷方式。这会保留符号链接、设备等。-A
标志:保留权限-X
标志:保留扩展属性-v
标志:详细--exclude=...
标志:这不包括(不复制)标志值中列出的目录。注意最后一项:我们排除了/home/*
文件夹,避免了无休止的递归复制。最后,最后一个参数是目标目录。在您的情况下,它是
/home/rootfs
(演示将克隆存储在/vagrant/ubuntu-fs/
)运行此程序后,我能够完成演示。希望这可以帮助。