如何从ext4文件系统数据中提取文件?

6
我有一个XXX.img文件。
system.img:Linux rev 1.0 ext4文件系统数据,UUID=XXXX (extents) (large files)
我想从中提取一些文件,应该怎么做?
或者是XXX.subimg.tgz文件
首先gunzip它,得到subimg文件,然后作为镜像文件。

将其挂载为“loopback”文件系统。 - Mark Setchell
哎呀,我太傻了!我没注意到img文件和iso文件是一样的。谢谢! - liuyang1
有时候我们都需要更多的咖啡;-) - Mark Setchell
3个回答

10
mount -o loop [imgfilename] [path to mount]

就像ISO文件一样。


1
如果我无法挂载怎么办?(我在KVM VPS上,根本无法挂载) - realtebo
1
如果您无法挂载,可以使用 extfstools - Frederik Carlier

7
如果您没有root权限,无法挂载文件系统,您可以使用extfstools在用户空间中提取ext4文件系统数据。

要安装它,请运行以下命令:

git clone https://github.com/qmfrederik/extfstools
cd extfstools
./autogen.sh
./configure
make

将所有文件从 XXX.img 提取到 savedir:

ext2rd XXX.img ./:savedir

0
mkdir -p /mnt/rootfs 
mkdir -p /mnt/disk

mount -o loop rootfs.ext4 /mnt/rootfs 
mount /dev/sda2 /mnt/disk

cp -r /mnt/rootfs/* /mnt/disk

umount /mnt/rootfs

1
解释一下为什么这个方法可以解决提问者的问题,会大大提升这个答案的质量。 - Mr. T
1
虽然您的代码可能是正确的答案,但详细说明您的代码所做的事情可以提高您的答案质量。请查看文章:如何撰写好的答案? - LuFFy
请务必告诉人们上述代码的作用,盲目执行可能会清除某人的EFI分区,导致系统无法启动(您不知道OP文件系统中的sda2是什么)。在执行此操作之前,最好先解释一下sda2是什么,并使用lsblk命令找到相应的内容! - lava_07

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接