Как добавить и выполнить пакет для дефрагментации фрагментированного тома Ext3 в BusyBox в Synology CS407?
Примечание: Развенчание мифа о том, что файловые системы Linux не подвержены фрагментации. http://www.webupd8.org/2010/03/install-defrag-defragmentation.html
Но это распространенное заблуждение ив некоторых случаях вам придется дефрагментировать файловые системы Linux. Это дажеподтверждено разработчиком Ubuntu в совсем недавнем постеВсего несколько минут назад я наткнулся на ureadahead на форуме Ubuntu.От:Сообщение на форумах Ubuntu:http://ubuntuforums.org/showthread.php?t=1434502
Единственный способ избежать этого — дефрагментация диска.Но файловые системы Linux не нуждаются в дефрагментации!
Тот, кто вам это сказал, глубоко ошибается. Это один из самых распространенных мифов о Linux.
Правда в том, чтоФайловые системы Linux избегают, где это возможно, фрагментации своих таблиц 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:
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 неинтерактивно. (Примечание: если указаны параметры -c, -l или -L в дополнение к параметру -n, то файловая система будет открыта для чтения и записи, чтобы разрешить обновление списка плохих блоков. Однако никаких других изменений в файловую систему внесено не будет.)
Итак, флаг -n делает проверку диска, не исправляя никаких найденных проблем. Вы захотите убрать этот флаг, чтобы позволить ему исправить проблемы. Вы получите подсказки для каждой проблемы, которую e2fsck найдет и попытается исправить. Если вы хотите, чтобы e2fsck просто исправил все без подсказок, добавьте флаг -p:
-p Автоматически восстанавливать («очищать») файловую систему без каких-либо вопросов.