在 Synology CS407 的 BusyBox 下添加并执行软件包以对碎片 Ext3 卷进行碎片整理?如何?
笔记: 揭穿 Linux 文件系统不会碎片化的神话。 http://www.webupd8.org/2010/03/install-defrag-defragmentation.html
但这是一个常见的误解在某些情况下,您确实必须对 Linux 文件系统进行碎片整理。这就算了Ubuntu 开发者在最近的一篇文章中证实了这一点就在几分钟前,我在 ubuntu 论坛上偶然发现了 ureadahead。从:Ubuntu 论坛帖子:http://ubuntuforums.org/showthread.php?t=1434502
避免这种情况的唯一方法是对磁盘进行碎片整理。但 Linux 文件系统不需要碎片整理!
不管谁告诉你这个说法都是大错特错的,这是 Linux 最常见的神话之一。
事实是这样的Linux 文件系统尽可能避免对其 inode 表进行碎片化。这意味着文件如何在磁盘上分割(碎片)以及这些部分所在位置的索引往往会作为一个整体保持在一起。
这是好事; inode 表的碎片对于其他文件系统(该文件系统中的 FAT 等)来说是一个大问题,因此通过将它们保持在一起,可以提高性能。
但是数据本身仍然是碎片化的, 和以随机顺序分布在整个磁盘上。不幸的是,在启动过程中,这是我们需要的数据。
未来我们想要做的事情之一是使用 ureadahead 分析启动过程中我们需要的内容并将其输入碎片整理程序,因此我们需要的所有内容都位于磁盘上的一大块中。
更新:
显然,CS407 使用 Marvel 处理器 88f5281,因此它可能首先需要专门构建的 optware/entware 之类的东西。如果可能的话,请在这个方向上提供更多指导。
https://forum.synology.com/enu/viewtopic.php?t=66550
https://forum.synology.com/enu/viewtopic.php?f=39&t=83186#p339475
根据这两个链接中的步骤和课程,我运行了以下内容(关键内容用双星号标记并加粗):
忙碌盒版本:
BusyBox v1.16.1 (2011-04-08 10:15:04 CST) built-in shell (ash) Enter 'help' for a list of built-in commands.
命令行输入和输出:
CubeStation> /usr/syno/etc.defaults/rc.d/S80samba.sh stop
CubeStation> df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2451064 478484 1870180 20% / /tmp 63396 288 63108 0% /tmp
/dev/md2 2879637816 2336710312 542825104 81% /volume1
CubeStation> unmount /volume1 -ash: unmount: not found
CubeStation> sudo unmount /volume1 -ash: sudo: not found
CubeStation> syno_poweroff_task
CubeStation> df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/md0 2451064 478460 1870204 20% / /tmp 63396 284 63112 0% /tmp CubeStation> vgdisplay CubeStation> e2fsck -v -n -f /dev/md2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity
/lost+found not found. Create? no
Pass 4: Checking reference counts Pass 5: Checking group summary information 1.41.12-1613: ********** WARNING: Filesystem still has errors **********
42150 inodes used (0.02%)
3618 non-contiguous files (8.6%)
20 non-contiguous directories (0.0%)
# of inodes with ind/dind/tind blocks: 20326/8705/71 595654428 blocks used (81.44%) 0 bad blocks 114 large files 36634 regular files 4434 directories 0 character device files 0 block device files 0 fifos 1 link 1073 symbolic links (1073 fast symbolic links) 0 sockets
- 我不是 *Nix 专家,但有 CS 和 IT 背景,并且很擅长在命令行上运行东西。我已经阅读了很多内容,但只是希望在这里将正确的兼容包/组件(针对该系统)和步骤拼凑在一起。
- 我猜这可能缺少一些软件包/组件,这些软件包/组件将为我提供运行碎片整理的能力。
- 我应该/我可以安装它们(上面链接的那些)吗?哪些以及如何?
- 如何最好地执行它们?
我可以做什么来整理卷 FS 和非连续数据?
答案1
从互联网运行命令时,最好与手册页交叉检查命令的作用。
在您的具体情况下,您的 e2fsck 命令:
e2fsck -v -n -f /dev/md2
如果我们检查这个命令在e2fsck 手册页你会看到的:
-n 以只读方式打开文件系统,并假设所有问题的答案都是“否”。允许以非交互方式使用 e2fsck。 (注意:如果除了 -n 选项之外还指定了 -c、-l 或 -L 选项,则文件系统将以读写方式打开,以允许更新坏块列表。但是,没有其他选项将对文件系统进行更改。)
因此 -n 标志的作用是进行磁盘检查而不修复它发现的任何问题。您需要删除此标志以让它修复问题。您将收到 e2fsck 发现的每个问题的提示并尝试修复。如果您希望 e2fsck 在没有提示的情况下修复所有内容,请添加 -p 标志:
-p 自动修复(“整理”)文件系统,没有任何问题。