Как дефрагментировать диск linux

Дефрагментация файловой системы Ext4 с помощью утилиты e4defrag

Различные операционные системы используют разные файловые системы. Например, GNU/Linux поддерживает большое количество файловых систем, но наиболее часто используется Ext4 (которая в будущем возможно будет заменена на Btrfs). И когда речь идет о файловых системах, первое, что приходит в голову — это фрагментация, которая оказывает прямое воздействие на производительность файловой системы.

Независимо от того, какую файловую систему вы используете, с течением времени неизбежно происходит фрагментация. И главная ее причина — сложности с поиском достаточно большого участка свободного пространства при записи данных на диск.

Если операционная система не может найти достаточно большой кусок свободного пространства, данные записываются отдельными блоками и оказываются распределенными по жесткому диску. В результате головке жесткого диска требуется больше времени для чтения данных, так как время тратится на перемещение ее к каждому блоку данных.

Некоторые источники утверждают, что файловым системам GNU/Linux, таким как Ext4, не требуется дефрагментация (в отличие от файловых систем для Windows), так как они спроектированы таким образом, что минимизируют фрагментацию данных.

Это, в некоторой степени, действительно так. Но есть эксперты, такие как Такаши Сато, экспериментально проверившие влияние фрагментации на производительность основных файловых систем GNU/Linux.
Он написал прекрасную статью под названием «ext4 online defragmentation» (последние ее версии можно найти здесь ), в которой можно найти следующие выводы:

«Было создано 50 фрагментированных файлов размером 1 Гб (в файловой системе ext4). Перед и после фрагментации замерялась скорость чтения данных. »
«. Замеры показали, что для одного файла размером 1 Гб дефрагментация может повысить производительность при чтении на 25%. После дефрагментации всех файлов скорость доступа к ним повысилась на 29%».
Такаши Сато и Акира Фуджита создали простую в использовании утилиту командной строки для дефрагментации файловой системы ext4. Она называется «e4defrag», и начиная с Ubuntu 12.04 LTS она предустанавливается в системе по умолчанию. Но необходимо помнить, что она работает только с файловой системой ext4″.

Использование e4defrag

Очень просто. Откройте терминал и введите следующую команду:

«location» может быть любым смонтированным устройством с файловой системой ext4 (включая корневую файловую систему), а также любой директорией или даже отдельным файлом внутри файловой системы ext4.

Получение отчета

Еще одна прекрасная функция e4defrag — возможность сканирования смонтированной файловой системы ext4 (директории или файла) с получением отчета, в котором указывается степень фрагментации. Основываясь на этом показателе, e4defrag выдаст вам рекомендации, требуется ли дефрагментация данной системы.

Замечание: если степень дефрагментации находится в диапазоне 0-30, дефрагментация не требуется. При степени фрагментации более 56% дефрагментация обязательна.

На скриншоте свежеустановленная операционная система, поэтому степень фрагментации равна нулю.

Сканирование запускается с помощью следующей команды:

Несколько примеров

Сканирование и дефрагментация своей домашней директории:

Сканирование и дефрагментация корневой файловой системы:

Замечание: в процессе дефрагментации выводятся сообщения, сообщающие о выполнении операций. Если вы там увидите сообщения с пометкой «Failure», не переживайте, это нормально, так как некоторые системные файлы невозможно переместить.

Не забывайте, что в GNU/Linux все ваши файлы смонтированы в корневой файловой системе («/»), поэтому если у вас смонтировано несколько файловых систем ext4, они также будут дефрагментированы, что, в зависимости от их размера и количества файлов, может занять достаточно продолжительное время.
Если у вас несколько разделов с файловой системой ext4, и вы хотите дефрагментировать их индивидуально, но не знаете имя устройства (/dev/sda. ), вы можете сделать это, воспользовавшись приведенными ниже инструкциями.

Читайте также:  Qos windows server 2016

1. Введите приведенную ниже команду в терминале, чтобы получить список имеющихся разделов и их файловых систем.

2. Затем в выводе команды найдите поле «id». Разделы, у которых в этом поле стоит «83», имеют файловую систему ext4. Затем в этой же строке найдите столбец «Device», там вы увидите имя устройства. На приведенном ниже скриншоте у меня два таких устройства — «sda5» и «sda6».

3. Затем просто скопируйте имя устройства и вставьте его в приведенную ниже команду:

В зависимости от типа раздела (установлена или нет на нем операционная система), вам может понадобиться «sudo».

Если вас заинтересовала эта утилита и ее возможности, более подробную информацию можно получить, прочитав краткое руководство:

Источник

Русские Блоги

Как дефрагментировать диски в Linux

Существует миф, что диски Linux никогда не нужно дефрагментировать. В большинстве случаев это так, в основном потому, что вы используете отличную журнальную систему (ext2, 3, 4 и т.д.) для работы с файловой системой. Однако в некоторых особых случаях фрагменты все равно будут сгенерированы. Если это произойдет с вами, решение простое.

Что такое фрагментация диска

Файловая система обновляет файлы блоками, и если эти блоки не соединены в единый блок, а распределены по всем углам диска, будут сформированы фрагменты диска. Это верно для файловых систем FAT и FAT32. В NTFS эта ситуация улучшается, но вряд ли в Linux (extX). Вот причины:

В файловых системах, таких как FAT и FAT32, файлы записываются на диск рядом друг с другом. Между файлами нет места для роста или обновления:

NTFS резервирует некоторое пространство между файлами, поэтому есть место для роста. Но поскольку пространство между блоками ограничено, фрагменты также будут появляться со временем.

Файловая система журнала Linux использует другую схему. В отличие от файлов, расположенных рядом друг с другом, каждый файл распределяется по диску, оставляя много свободного места между каждым файлом. Это оставляет много места для обновления и увеличения файлов, а фрагментация происходит редко.

Кроме того, как только происходит фрагментация, большинство файловых систем Linux будут пытаться снова объединить файлы и блоки.

Дефрагментация диска в Linux

Если вы не используете небольшой жесткий диск или на нем недостаточно места, Linux редко нуждается в дефрагментации диска. Некоторые ситуации, которые могут потребовать дефрагментации диска, включают:

  • Если вы редактируете большие видеофайлы или фотографии в формате RAW, но дисковое пространство ограничено
  • Если вы используете старое оборудование, например старый ноутбук, ваш жесткий диск будет маленьким.
  • Если ваш диск начинает заполняться (используется примерно 85%)
  • Если в вашем домашнем каталоге много небольших разделов

Лучшее решение — купить жесткий диск большого размера. Если это невозможно, пригодится дефрагментация диска.

Как проверить на фрагментацию

fsck Команда сделает это за вас, другими словами, если вы можете запустить ее на LiveCD, то ее можно использоватьВсе несмонтированные разделы

этот момент очень важен:Запуск fsck в смонтированном разделе серьезно повредит ваши данные и диск

Вы были предупреждены. Перед тем как начать, сделайте полную резервную копию.

Отказ от ответственности: Автор этой статьи и этого сайта не несет ответственности за ваши файлы, данные, системы или другой ущерб. Рисковать нужно самому. Если вы продолжите, вам нужно это принять и понять.

Вы должны загрузиться в живую сессию (используя установочный диск, аварийный компакт-диск и т. Д.) ИУдалитьЗапускаем по разделу fsck . Чтобы проверить, есть ли какие-либо проблемы, выполните следующую команду с правами root:

Читайте также:  Включение режима ahci без переустановки windows

Вы можете запустить следующую команду, чтобы найти путь к разделу

Один работает в смонтированном разделе fsck (Относительно) безопасный метод — использовать -n выключатель. Это приведет к проверке файловой системы раздела только для чтения без какой-либо записи. Конечно, это не очень безопасно, вы должны сделать это после создания резервной копии. В ext2 запустите

Это дает много результатов, и причиной большинства сообщений об ошибках является то, что раздел уже смонтирован. Наконец, будет дана информация, относящаяся к фрагментам.

Если уровень фрагментации превышает 20%, следует начать дефрагментацию диска.

Как легко дефрагментировать в Linux

Что вам нужно сделать, это сделать резервную копию васвсеФайлы и данные на другой жесткий диск (вручнуюкопироватьОни), отформатируйте раздел, а затем скопируйте его (не используйте программу резервного копирования). Файловая система с журналированием обрабатывает их как новые файлы и аккуратно помещает их на диск без фрагментации.

Для резервного копирования файлов запустите

Важно помнить о звездочке (*).

Примечание. Обычно считается, что для копирования больших файлов или большого количества файлов используйте dd Пожалуй, лучший. Это очень низкоуровневая операция, она скопирует все, включая свободное место и даже оставшийся мусор. Это не то, что мы хотим, поэтому лучше использовать cp 。

Теперь вам нужно только удалить исходный файл.

Необязательный: Вы можете использовать следующую команду, чтобы заполнить свободное пространство нулями. Для этого также можно использовать форматирование, но если вы не копируете весь раздел, а просто копируете большие файлы (которые обычно становятся фрагментированными), вам не следует использовать метод форматирования.

Подождите, пока это закончится. ты можешь использовать это pv Следить за прогрессом.

Вот и все, просто удалите временный файл, использованный для заполнения.

Подождите, пока вы освободите свободное место (или пропустите этот шаг). Скопируйте файл еще раз, первый cp Команда переворачивается:

Используйте e4defrag

Если вам нужен простой способ, установите e2fsprogs ,

Запускаем в разделе с правами root e4defrag . Если вы не хотите или не можете размонтировать раздел, вы можете использовать его точку монтирования вместо пути. Чтобы дефрагментировать всю систему, запустите:

В случае монтирования нет гарантии успеха (вы также не должны использовать свою систему во время ее работы), но это намного проще, чем копирование всех файлов, а затем копирование обратно.

подводить итоги

Из-за эффективной обработки данных файловой системы журнала в системе Linux фрагментация возникает редко. Если вы по какой-либо причине фрагментированы, самый простой способ — перераспределить диск, например скопировать все файлы и скопировать обратно, или использовать e4defrag . Однако важно обеспечить безопасность ваших данных, поэтому перед выполнением любой операции, которая может повлиять на все или большую часть ваших файлов, убедитесь, что ваши файлы были скопированы в другое безопасное место.

Эта статья состоит изLCTT Оригинальная компиляция,Linux Китай Запуск Honor

Источник

Дефрагментация в Linux

При использовании носителей информации неизбежно возникает фрагментация данных — разбиение файлов на блоки, которые записываются в разных областях носителя. Поговорим о том, как исправить излишнюю фрагментацию данных в Linux.

Первым делом нужно сказать, что процедуру дефрагментации рекомендуется проводить только для жёстких дисков. Flash-накопители и SSD используют метод прямого доступа к памяти. Это значит, что время обращения к любой ячейке сравнительно мало, а её местонахождение становится не таким уж важным. Более того, поскольку количество циклов перезаписи у таких накопителей всё ещё меньше, чем у жёстких дисков, дефрагментация может наносить урон по продолжительности «жизни» накопителя. А вот позиционирующим головкам внутри жёстких дисков после дефрагментации приходится меньше перемещаться, что позитивно сказывается на времени обращения к файлам.

Читайте также:  Linux для asus rog

В Linux-сообществе нет единодушной позиции относительно того, полезна или бесполезна процедура дефрагментации в Linux. Дело в том, что файловые системы ext2, ext3 и ext4 стараются равномерно «раскидывать» новые файлы по диску. Если файл увеличивается в объёме, файловая система использует всё свободное пространство вокруг него. Если фрагментация всё же происходит, то файловая система старается в фоновом режиме переносить файлы в те места, где их фрагменты могут быть объединены. Успех? Не совсем.

Вышеописанные процедуры хорошо работают с дисками, у которых сравнительно много незанятого пространства. Но когда количество свободного пространства уменьшается, фрагментация становится возможной.

Для проведения дефрагментации в Linux можно использовать утилиты e2defrag и e4defrag (для ext2 и ext4 соответственно). Утилита e2defrag может работать и с ext3, но только при условии временного преобразования файловой системы в ext2. Есть и другой способ — утилита Shake, которая может работать с разными файловыми системами.

Допустим, что нам нужно оценить, нуждается ли в дефрагментации раздел /dev/sda2. Это делается командой

Время выполнения команды зависит от того объёма информации, что предстоит проанализировать утилите. По окончании анализа вы увидите отчёт.

Если вы видите надпись «This device does not need defragmentation», то дефрагментация диску (разделу) не требуется.

Нужна ли дефрагментация можно также определить по значению Fragmentation score. Если оно лежит в диапазон от 0 до 30, то дефрагментация не требуется. Если значение представляет собой число от 31 до 55, то есть небольшие проблемы с фрагментацией файлов. При Fragmentation score от 56 и выше нужно провести процедуру дефрагментации.

Если вы хотите провести принудительную процедуру дефрагментации, воспользуйтесь командой

Естественно, если нужно произвести дефрагментацию другого раздела, то вместо /dev/sda2 следует указать нужное имя.

По итогам работы команды следует обратить внимание на показатель Fragmented percentage. Он показывает сколько было фрагментированных файлов и сколько стало. В нашем случае всё было хорошо и до дефрагментации, поэтому эта процедура толком ничего не изменила. Но бывают ситуации и похуже.

Теперь посмотрим на утилиту Shake. Это тоже весьма полезный дефрагментатор, который работает на основе эвристики и не требует внесения изменений в ядро или остановки работы системы. Суть работы утилиты Shake в том, что она просто перемещает файлы.

В целом, пользоваться утилитой очень просто — достаточно указать файл или каталог, который необходимо переместить.

Командой выше мы переместили файлы в каталоге /home/test.

Если необходимо только посмотреть, насколько сильно фрагментирован файл или каталог, нужно использовать опции —pretend —verbose —verbose или -pvv

Можно использовать и более сложные конструкции. Команда ниже проведёт дефрагментацию всех mp3-файлов в каталоге и рассортирует их.

Для более эффективной работы утилиты её автор рекомендует включать расширенные пользовательские атрибуты (user_xattr).

Shake нечасто встретишь в репозиториях. У программы есть страница на GitHub, а также PPA-репозиторий на Launchpad, но он не обновлялся уже пять лет. Так что, скорее всего, программу вам придётся устанавливать вручную. Более подробно о синтаксисе Shake вам подскажет справка, которую можно вызвать командой

Итак, фрагментация файлов в Linux имеет место быть. Она не является острой проблемой благодаря достоинствам файловых систем ext2, ext3 и ext4. Однако, если жёсткий диск или раздел забит файлами, рекомендуется периодически проводить проверку на наличие фрагментации. В этой статье, безусловно, описаны не все утилиты, что умеют проводить дефрагментацию в Linux. Здесь тот обязательный минимум, который пригодится любому пользователю Linux.

Источник

Оцените статью