Як дефрагментувати файлову систему ext4


65

Я не хочу, щоб будь-яка відповідь сказала, що немає потреби, будь ласка!

Відповіді:


66

Використовуйте e4defrag для дефрагментації файлів

Якщо ваша файлова система ext4 створена з extentопцією (вона є типовою для останніх дистрибутивів), ви можете скористатися e4defragутилітою для перевірки та дефрагментації її в режимі он-лайн, тобто без шифрування.

Просто перевірте рівень фрагментації таким чином (вам потрібно мати корінь, щоб переглянути деталі):

sudo e4defrag -c /path/to/myfiles

Ось приклад результату, який ви можете отримати:

$ sudo e4defrag -c iso/
<Fragmented files>                             now/best       size/ext
1. /home/gerlos/iso/debian-live-7.5.0-i386-rescue.iso
                                                 7/1         111177 KB
2. /home/gerlos/iso/systemrescuecd-x86-4.4.1.iso
                                                 4/1         100897 KB
3. /home/gerlos/iso/debian-live-7.5.0-amd64-rescue.iso
                                                 6/1         116053 KB
4. /home/gerlos/iso/ubuntu-14.04.2-server-amd64.iso
                                                 8/1          76160 KB
5. /home/gerlos/iso/ubuntu-14.10-desktop-amd64.iso
                                                15/1          75712 KB

 Total/best extents             40/5
 Average size per extent            90577 KB
 Fragmentation score                0
 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag]
 This directory (iso/) does not need defragmentation.
 Done.

Як і в цьому прикладі, більшість часу він скаже вам, що дефрагментація не потрібна, але якщо ви все одно хочете це зробити, ви можете використовувати (для дефрагментації власних файлів не потрібно використовувати sudo):

e4defrag /path/to/myfiles

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

e4defragє в e2fsprogsпакеті, і я думаю, він уже встановлений у вашій системі Ubuntu.


2
e4defrag -c не повертає нічого, окрім done. Це просто означає, що немає фрагментації?
хржу

3
До жаль, я забув згадати , що вам потрібно працювати e4defrag -cз sudoабо як корінь , щоб отримати детальну інформацію про вашу фрагментації файлів. Але не потрібно викорінювати їх.
герлос

@gerlos Що робити, якщо я спробую знешкодити кореневу файлову систему /?
Павло Саекат

2
@PavelSayekat вам просто потрібно мати root (тобто використовувати sudo) для запуску e4defrag /, і не потрібно робити нічого особливого. e4defragбуде перевіряти кожен файл там, тому будьте готові дочекатися, коли ваш диск прочитає все. Пам’ятайте, що це може бути великою тратою часу. У більшості випадків, якщо у файльній системі у вас є достатньо вільного місця, у вас буде лише кілька фрагментованих файлів, і часто вони будуть знаходитися у вашому домашньому режимі, пов’язані з діяльністю вашого веб-браузера. Наприклад, на моєму настільному ПК, який я використовую щодня, e4defragповідомляється, що є лише 5 фрагментованих файлів, всі в налаштуваннях Chromium та кеш-резі.
gerlos

Це дефрагментує лише розширення всередині самих файлів, але не файли між собою. Тобто, якщо у мене є каталог, що містить три файли в диво різних фізичних місцях на диску, все одно буде повільно використовувати ці файли одночасно після запуску цього інструменту. Чи є спосіб переставити файли на диску або "дефрагментувати вільний простір", як його іноді називають?
fuzzyTew

29

Погляньте на e2fsprogs . Це також доступно в пакетах Ubuntu. Він забезпечує програму e4defrag.


5
Це дійсно корисно лише для файлових систем ext4, створених з -O мірою, що не є типовим.
добі

Хлопець відповідає про defrag, це може бути можливим за допомогою e4defrag, рекомендація не специфічність зовнішнього журналу чи ні, він не заслуговує -1.
Феліпе Алькасібар

8
@dobey Ubuntu 12.04 (.3) LTS містить extentу ext4строфі [fs_types]розділу розділу /etc/mke2fs.conf- таким чином, це "за замовчуванням". Хоча, незалежно від конфігурації часу створення машини, до якої підключена файлова система, вам найкраще перевірити саму файлову систему: tune2fs -l </dev/with/ext4> | grep extent(або подивіться рядок "Функції файлової системи" у повному випуску tune2fs). Зауважте, я щойно запустився e4defrag -c ...на 100% повну файлову систему 1 ТБ extent, і є лише 5 фрагментованих файлів, а "оцінка фрагментації" 0. YMMV.
Річард Майкл

@RichardMichael FYI: e2defrag -c /pathдрукує лише перші 5 знайдених фрагментованих файлів (навіть не найбільш фрагментованих). Запустіть, e2defrag -v /pathщоб побачити, як це зменшує кількість ступенів.
Тіно

17

Використовуйте Gparted для дефрагментації вашої файлової системи

Якщо у вас є достатньо місця на жорсткому диску, ви можете використовувати Gparted для дефрагментації вашої файлової системи ( ext2, ext 4, nfts тощо ). Ви повинні завантажуватись із завантажувального диска CD / DVD / USB, оскільки диск, який ви працюєте, повинен бути відключений. Також для цього потрібно мати більше невикористаного простору, ніж використаний простір, і це може зайняти деякий час.

  • Завантаження з завантажувального диску.
  • Запустіть gparted і зменшіть розділ, який містить дані, які ви хочете дефрагментувати, трохи перевищуючи кількість ваших даних.
  • Переконайтеся, що розділ, який ви хочете дефрагментувати, є останнім розділом на диску, перемістивши його до кінця (можливо, вам доведеться створити ще один порожній розділ перед ним, якщо на диску є лише один розділ).

За допомогою розділу ви хочете дефрагментувати як останній розділ на диску:

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

Зараз вона знешкоджена.

І я знаю, що тебе не цікавить, чому / чому не дефрагментувати ubuntu, але я опублікую посилання на те, чому все-таки є дефрагментація-непотрібна .


Після скорочення і переміщення праворуч, чому ви росте ліво, а потім скорочуєтесь знову, а не просто рухаєтесь ліворуч?
Джейсон C

Також я помітив, що після кроку вирощування ліворуч дані фактично знову переміщуються ліворуч (про це свідчать gparted рухомі дані, підтверджені прямим оглядом блокового пристрою згодом), тому, якщо це не поведінка / файлова система, поведінка є остаточним усадка + відростання можна пропустити. Це здається , що досить лише зробити: 1) стискатися і рухатися вправо, 2) застосовуються, 3) зростають зліва.
Джейсон C

Просте переміщення розділу, який ви хочете дефрагментувати до останнього, не обов'язково переміщувати його до фактичного кінця HD. Зростання розділу вліво до максимального розміру гарантує, що кінцевий розділ насправді "переміщений" до самого кінця жорсткого диска.
Джеймс

Перемістивши його вправо , перемістіть його до кінця жорсткого диска. Рядок розділів у верхній частині розширеного графічного інтерфейсу - це фактично точне зображення макета даних (ну, принаймні, так, як це видно для ОС, флеш-пристроїв, наприклад, карта, логічна у фізичні місця з іншого боку контролера, але для типовий жорсткий диск, це точно). Це можна перевірити, спостерігаючи за новим початковим місцем у таблиці розділів. :)
Джейсон C

Ах, ми неправильно спілкуємось. Ви мали на увазі переупорядкувати розділ, щоб він був останнім. Я мав на увазі переміщення розділу на кінець диска, і це я вважав, що ви також маєте на увазі (ви можете переміщати розділи на диску, gparted незалежно від їх упорядкування). :)
Джейсон C

3

Дефрагментація файлової системи ext4 в Linux Я додаю цю відповідь, щоб також показати, як ми можемо дізнатися про різні вбудовані інструменти Linux для виконання деяких часто виконуваних операцій. ви

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

Використання команди apropos

e4defrag -vc /path #verbose output with count

2

Ubuntu 14.04 LTS розміщує (принаймні первинний диск) у розділі EXT4, коли він встановлюється в чистому встановленні (не розміщеному поверх Win-Junk).

У цьому випадку, якщо ви тільки що створили нову систему або відформатували свіжу на старій системі, а потім виконали чисту установку, то за замовчуванням 14,04 LTS у вас є розділ EXT4 на /dev/sda1.

Тепер просто відкрийте термінал ( CTRL- ALT- T) і введіть:

sudo e4defrag -c /dev/sda1

і будьте терплячі, поки «перевірка» не буде завершена, і ви отримаєте звіт про фрагментацію.

Якщо ви не впевнені у наявності розділу EXT4 на диску накопичувача ОС, просто зайдіть ДОМАШНІЙ та введіть df -T. Подивіться, щоб встановити ваші розділи sda * (спробуйте це в 14.04LTS, і ви побачите EXT4, якщо ви не обрали інший тип розділу при налаштуванні жорсткого диска).


Отримав трохи поза теми і майже не додав жодної цінності питанню, особливо з фінальним рентом.
Фернандо Сільвейра

Ви можете дефрагментацію декількох розділів з тією ж командою: sudo e4defrag / dev / sda1 / dev / sda2
ProgAndPlay

1

e2fsck -D /dev/sda1 оптимізує довідники шляхом сортування та повторного детексування, що зазвичай прискорює роботу. Може не вважатись повною дефрагментацією файлової системи, але не всі системи мають e4defrag.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.