如何强制将 Linux 分区上的文件集中在一起?

如何强制将 Linux 分区上的文件集中在一起?

我有一个动态扩展的 VDI 文件,它有 14 GB,而分区本身只有 2 GB。

文件在磁盘上分布得太分散,因此将可用空间清零和压缩 VDI 没有帮助,如果我可以将文件集中在磁盘上,就像 MyDefrag 在 Windows 上所做的那样,我就可以节省 12 GB。

迄今采取的措施:

  • 使根分区尽可能小。(NCurses 磁盘使用情况显示仅剩 2 GB)
  • 用于zerofree根分区。
  • 使用 VirtualBox 工具压缩 VDI 文件。(从 16 GB 变为 14 GB)

该文件的大小应为现在的一半......

有关磁盘的信息:

Disk /dev/sda: 536.9 GB, 536870912000 bytes  
255 heads, 63 sectors/track, 65270 cylinders  
Units = cylinders of 16065 * 512 = 8225280 bytes  
Sector size (logical/physical): 512 bytes / 512 bytes  
I/O size (minimum/optimal): 512 bytes / 512 bytes  
Disk identifier: 0x837d7521  

   Device Boot      Start         End      Blocks   Id  System  
/dev/sda1               1           5       40131   83  Linux  
/dev/sda2               6          71      530145   82  Linux swap / Solaris  
/dev/sda3              72       65270   523710967+  83  Linux


Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 537GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      32.3kB  41.1MB  41.1MB  primary  ext2
 2      41.1MB  584MB   543MB   primary  linux-swap(v1)
 3      584MB   537GB   536GB   primary  ext3


Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3            515492812   2443136 486864128   1% /

我目前正在尝试对其进行碎片整理,然后我将再次执行 zerofree 和 compact 步骤。

这可能有用...

Total Files:                    178174
Fragmented Files:               25881
File Fragmentation Rate:        14.5256883720408%
Avg File Fragments(1 is best):  1.16055653462346

但事实确实如此吗?

Done!
Now lets see the results...
Statistics for /
Total Files:                    0
Fragmented Files:               0
Illegal division by zero at /usr/sbin/defragfs line 193.

哎哟,失败了...它破坏了我的安装(内核恐慌),我想我还有一个月前的备份。

不用担心,我只需要emerge --sync; emerge -Du world; svn up在备份上...
我目前仅将它用于本机 Linux 开发,这就是为什么我需要它是 3 GB 而不是 14 GB。

答案1

如果您的问题在于分区布局,您可以使用任何分区产品。
只需下载任何分区产品的启动 CD 映像,然后像使用真实的物理计算机一样使用它进行启动即可。分区是一个可能的选择。

如果分区无法调整大小,则可能需要进行碎片整理。尽管 Linux 上的文件系统比 Windows 上的文件系统组织得更高效,但也不能免除这种需要。Linux 文件系统碎片整理程序是一个可能的解决方案。

编辑

很抱歉丢失了内核。

奇怪:文件系统使用率只有 1%,却无法调整大小,这真是太奇怪了。
你是不是删除了一些大文件?

无论如何,ext3 的碎片整理程序很少见,不像 ext4 计划最终包含一个在线碎片整理实用程序。但是,这里有一些实用程序可能更适合您的磁盘。请务必仔细阅读 README 文件。

是一个在用户空间运行的碎片整理程序,无需修补内核,并且在系统使用时(目前仅限于 GNU/Linux)。

碎片整理第一个是shell级脚本。

碎片整理第二个是另一个shell级脚本。

答案2

可能不是最好的解决方案,但一个简单的方法是将分区上的文件系统复制到新分区,用来copy -a保留文件属性。

快速编辑 fstab 以将新分区安装到旧分区的位置,然后就可以开始了......

答案3

如何有效压缩Linux虚拟机:http://kb.parallels.com/en/5683

在 Parallels Desktop 版本 3 中:

  • 单击硬盘 1
  • 先进的
  • 点击“紧凑”

在 Parallels Desktop 版本 4 中:

  • 从应用程序/Parallels 启动 Parallels Image Tools
  • 选择要压缩的磁盘指向虚拟机 pvm
  • 点击“选择”按钮
  • 点击“继续”
  • 选择“光盘”
  • 点击“开始”

相关内容