cer*_*cem 4 archive cpio sandbox
昨天我在Slitaz上做了一些实验。它使用多个 initrd.img 来存储文件/更改。
我想将其中一个 initrd.gz 图像(这是一个 cpio 存档)提取到一个文件夹中,编辑/删除它们,再次重新打包。
我使用了这个代码:
cat rootfs.img | cpio -idvm
Run Code Online (Sandbox Code Playgroud)
然后所有文件都被提取到我的根文件系统。我的整个操作系统已损坏。(好尴尬的境遇……)
我应该怎么做才能安全但简单地进行此类操作?克罗特?LXC?(VirtualBox 是最后的手段)
我建议不要在您的根级别运行这种类型的命令,/. 那是自找麻烦。我总是cpio -idvm在它们自己的目录中运行相关命令,然后使用mv或cp将文件手动放置到它们需要的位置。
您还可以使用我在另一个标题为:如何在 SliTaz Linux 中安装 TazPkg 的U&L 问答中描述的方法,该方法也使用cpio.
如果存档是使用绝对路径构建的,您可以cpio使用--no-absolute-filenames开关告诉您阻止它提取到/.
$ mkdir /tmp/cpio-root
$ cd /tmp/cpio-root
$ cat rootfs.img | cpio -idvm --no-absolute-filenames
Run Code Online (Sandbox Code Playgroud)