Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

这个工具支持生成android sparse格式的镜像么 #3

Closed
ghost opened this issue Jul 17, 2020 · 8 comments
Closed

这个工具支持生成android sparse格式的镜像么 #3

ghost opened this issue Jul 17, 2020 · 8 comments

Comments

@ghost
Copy link

ghost commented Jul 17, 2020

或者说有没类似erofs2simg的工具, 谢谢

@hsiangkao
Copy link
Collaborator

可以直接使用Android的img2simg

@ghost
Copy link
Author

ghost commented Jul 21, 2020

可以直接使用Android的img2simg

不知道erofs是否像ext4一样存在未使用的block, 如果是, 那img2simg其实不适用
比如ext2simg, 能生成比img2simg更优的稀疏镜像

@hsiangkao
Copy link
Collaborator

可以直接使用Android的img2simg

不知道erofs是否像ext4一样存在未使用的block, 如果是, 那img2simg其实不适用
比如ext2simg, 能生成比img2simg更优的稀疏镜像

我觉得这个你可以自己先试试,我们一直用img2simg。
erofs的block利用率很高,sparse格式对于erofs本身几乎没什么用途主要起作用的也就data跟vb的gap。
如果你有兴趣也可以帮忙开发这个功能,对于我来说这个特性优先级比较低,因为运行时省不了多少时间和空间。

@hsiangkao
Copy link
Collaborator

可以直接使用Android的img2simg

不知道erofs是否像ext4一样存在未使用的block, 如果是, 那img2simg其实不适用
比如ext2simg, 能生成比img2simg更优的稀疏镜像

我觉得这个你可以自己先试试,我们一直用img2simg。
erofs的block利用率很高,sparse格式对于erofs本身几乎没什么用途主要起作用的也就data跟vb的gap。
如果你有兴趣也可以帮忙开发这个功能,对于我来说这个特性优先级比较低,因为运行时省不了多少时间和空间。

加一句,如果simg在erofs上发挥了非常大的作用(除了最后的vb部分),感觉应该属于bug需要解决。
erofs格式不应该出现连续的空白或者填充块, simg只是个传输格式,erofs更在乎最终磁盘上的形态是不是紧凑。

@ghost ghost closed this as completed Jul 24, 2020
@google-mirror
Copy link

google-mirror commented Jan 26, 2021

@hsiangkao 你了解ext4么, 想请教下为何改变一个字节为何导致占用的blocks变化巨大呢?
文件长度7816288, 把第6184959字节改为0, blocks不变, 把第6184959+1字节改为0, blocks立马增加了8个。

Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash

@hsiangkao
Copy link
Collaborator

@hsiangkao 你了解ext4么, 想请教下为何改变一个字节为何导致占用的blocks变化巨大呢?
文件长度7816288, 把第6184959字节改为0, blocks不变, 把第6184959+1字节改为0, blocks立马增加了8个。

Filesystem features: ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash

并不是很了解发生了什么,但我猜你可以e2fsprogs的debugfs工具看一下这个文件究竟发生了什么变化。

@google-mirror
Copy link

google-mirror commented Jan 27, 2021

@hsiangkao 谢谢大佬, 确实被压缩优化了, 原文件EXTENTS有两段, 中间blocks全是0被断开了, 但我不清楚ext4哪个features控制这种行为, 还是说默认支持?

@hsiangkao
Copy link
Collaborator

hsiangkao commented Jan 27, 2021

@hsiangkao 谢谢大佬, 用debugfs看了, 原文件EXTENTS有两段, 中间断开了, 修改之后文件的EXTENTS变成一段了, 难道是被压缩了?只修改内容不应该导致blocks改变吧

我猜可能原文件原来中间有洞,你写了一个0,然后就分配了具体的磁盘块。

另外请不要滥用压缩这个词,在fs里面“透明压缩”是有确定含义的,你这种情况属于sparse file,一般unix文件系统都会有所支持。

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants