LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1103|回复: 12

[已解决]关于小文件打包 mount

[复制链接]
发表于 2007-6-5 11:51:51 | 显示全部楼层 |阅读模式
我有个usb 盘,其中一个fat32分区,该分区里有个目录下有50万多左右的小文件,因为簇的关系它占用的空间是原始的3倍之多。。

有没有可能将它打包然后mount ?

我试过 mkisofs 来企图打包成 iso,但失败了,因为文件太多了超过了65535(max)

有没有可能用tar 类似的打包然后mount 成一个目录来操作呢(读取only),或者有类似的东西?

哪位给支支招。。。
发表于 2007-6-6 11:22:25 | 显示全部楼层

试试使用文件系统

Post by arli
我有个usb 盘,其中一个fat32分区,该分区里有个目录下有50万多左右的小文件,因为簇的关系它占用的空间是原始的3倍之多。。

有没有可能将它打包然后mount ?

我试过 mkisofs 来企图打包成 iso,但失败了,因为文件太多了超过了65535(max)

有没有可能用tar 类似的打包然后mount 成一个目录来操作呢(读取only),或者有类似的东西?

哪位给支支招。。。


可以使用文件系统, squashfs, cramfs, reiser4, reiserfs都喺唔错嘅选择, 当然需要你嘅系统支持至得. 我印象中squashfs喺使用某个工具生成. 下面以reiser4(對小文件优化) 为例:
dd if=/dev/zero of=/home/xxx/xxx.img bs=1M count=600         600M够了吧
losetup /dev/loopX /home/xxx/xxx.img          X 通常为 0-7, 选择没有使用过的吧
mkfs.reiser4 /dev/loopX
losetup -d /dev/loopX
使用:
1, mount -o loop -t reiser4 /home/xxx/xxx.img /mnt/img
2, /etc/fstab
/hoem/xxx/xxx.img /mnt/img reiser4 loop,defaults 0 0
回复 支持 反对

使用道具 举报

发表于 2007-6-6 23:12:07 | 显示全部楼层
reiserfs 本身对小文件也不错的。。可以试试。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-8 08:36:54 | 显示全部楼层
3q for u help, but sorry.. 问题就是它是我唯一的MS体制分区,我要用它来跟MS的系统传文件(网络、EXT2 for win都不行,对方的机器我必须做最坏的打算)。。

也就是说该分区只能是fat32,我考虑的是打包 mount 的招,比如 mkisofs 但是它支持的files太少了,这是一个不常用但又确实有用的应用(like tar 的初衷),但从没有人搞过是吗。。(似乎win下可以考虑把文件打包成虚拟硬盘,可惜的是我的系统是gentoo和freebsd)

实在不行,我想打成sql再写个访问程序算了。。
回复 支持 反对

使用道具 举报

发表于 2007-6-8 09:17:30 | 显示全部楼层
也许在专门的方面才有用了,一般机器哪里有那么多文件?而且还是 FAT32。

试试NTFS?
回复 支持 反对

使用道具 举报

发表于 2007-6-8 13:30:58 | 显示全部楼层
招个刻录软件,转成iso文件试试看呢
回复 支持 反对

使用道具 举报

发表于 2007-6-8 13:39:45 | 显示全部楼层
楼主看懂2楼说的了吗?强烈建议你仔细看看。包括后面跟贴的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-9 04:41:37 | 显示全部楼层
o, 理解理解了,二楼的办法非常好 3q3q 我正在考虑将一些目录都dd 成 img

我起先误以为是叫我转成reiserfs。。

to 二楼。。我的50万个文件是 wikimedia 的中文镜像(html镜像,文件大小是5g多),英文的没敢解压,怕没处放 -_-!

so.. thank you..
回复 支持 反对

使用道具 举报

发表于 2007-6-9 11:33:29 | 显示全部楼层
Post by arli
o, 理解理解了,二楼的办法非常好 3q3q 我正在考虑将一些目录都dd 成 img

我起先误以为是叫我转成reiserfs。。

to 二楼。。我的50万个文件是 wikimedia 的中文镜像(html镜像,文件大小是5g多),英文的没敢解压,怕没处放 -_-!

so.. thank you..

很省空间的(reiser4, 不是reiserfs 3.6)。我把protage做成镜像后,只用了100多M, 原来可是几百M的。
其实这种做法本质上来讲是虚拟硬盘镜像,硬盘分区有多大就能做多大的镜像。如果配合LVM2的虚拟卷管理技术,理论上可以加载(或卸载)多个虚拟硬盘镜像/物理硬盘/物理硬盘分区(linux分区会好一些),来动态扩展(或缩小)使用空间(建议只加不减,减的时候很容易一失足成千古恨,我曾有恨,望君谨慎), 而逻辑上却是统一的整体(与分区的概念刚好相反)。但是实际上/dev/loopX 设备只有8个,使用每一个虚拟硬盘/光盘镜像都要占用一个, 似乎不能增加, 不知道是不是编译内核时的参数,还是源代码中的定量? 也许是MAKEDEV的问题。
回复 支持 反对

使用道具 举报

发表于 2007-6-9 13:19:27 | 显示全部楼层
要不考虑做成 dvd 镜像吧,dvd 的容量可是4G呢,不过不知道应该用哪个命令。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表