Дефрагментация разделов NTFS из Linux

17

Есть ли какие-либо инструменты, которые я могу использовать для дефрагментации моего раздела Windows из Linux?

Alex
источник

Ответы:

12

Да, вы можете использовать Shake . Сначала вам нужно добавить собственный репозиторий в вашу систему:

sudo add-apt-repository ppa:un-brice/ppa
sudo apt-get update
sudo apt-get install shake-fs

Тогда вы можете сделать

sudo shake /some/dir
AlexG
источник
10
Shake не совсем дефрагментатор, он просто копирует каждый файл в надежде, что копия будет менее фрагментированной. Это, конечно, далеко от того, как работают настоящие дефрагментаторы.
rustyx
9

Там нет такого инструмента вокруг, насколько я знаю.

Некоторые сайты сообщают следующую команду

# WARNING - does not work
fsck -t ntfs --kerneldefrag /dev/hdX

но это не работает, и не ясно, где они это получают.

enzotib
источник
7
-1 Зачем добавлять ответ, если он вообще бесполезен?
Вулфер
1
@ Вульф, это хорошо, поэтому, когда мы находим его где-то еще, мы знаем, что это не работает
krispy
6

Обновление: UltraDefrag для Linux:

UltraDefrag - это мощный инструмент дефрагментации с открытым исходным кодом для платформы Windows. Он может дефрагментировать любые системные файлы, включая кусты реестра и файл подкачки. Также одной из основных целей UltraDefrag является выполнение работы максимально быстро и надежно. Он портируется на Linux и NTFS-3G для дефрагментации разделов NTFS. В настоящее время доступна только тестовая версия в режиме консоли. Пожалуйста, прочитайте включенный файл README.linux для компиляции и тестирования

http://jp-andre.pagesperso-orange.fr/advanced-ntfs-3g.html

[Я еще не использовал это сам. Нашел через ветку на форуме Arch . Дальнейшее следование нити до следующей страницы приводит к большему количеству по теме. Попробуйте на свой страх и риск. - kevjonesin-]

kevjonesin
источник
1

Это БОЛЬШОЕ предупреждение для всех тех, кто считает, что NFTS можно дефрагментировать в Linux, просто копируя файлы (клонируя только файлы) и т. Д .:

  • Некоторые NTFS (файлы / папки) могут иметь специальный активный атрибут, он называется NTFS Compression

насколько я знаю, каждый раз, когда Linux (cp, fsarchiver и т. д.) записывает файл / папку в NTFS, она всегда записывает его без сжатия NTFS, независимо от того, включено или выключено сжатие файла / папки.

Таким образом, вы можете попасть в ситуацию (с которой я столкнулся с трудностью), когда восстановление с помощью fsarchive (или cp и т. Д.) Приведет к тому, что раздел заполнится и будет недостаточно.

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

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

Кроме того, с очень очень специальными данными (отношение NTFS больше 5) я достигаю этой ситуации:

  • NTFS размер раздела X GiB
  • Файл, содержащий клон (с наилучшим сжатием, которое позволяет инструмент, GZip, я думаю) занял 2 * X GiB

О да, клон был сжат, и он занял удвоенный размер раздела.

Это вызвано тем, что инструмент-клон читает файлы в простом (чистом, а не сжатом), а затем сжимает данные (с действительно худшим соотношением, чем NTFS).

Конечно, восстановление этих данных не поместится в этот раздел, так как восстановленные данные будут помещены без сжатия NTFS.

Надеюсь, это понятно, еще одна причина, почему не использовать сжатие NFTS? Ну, совсем нет, я часто использую сжатие NTFS (в прошлом). Файлы VDI (Virtual Box) получают действительно хорошее соотношение.

Теперь я обнаружил Pismo file Mount (и он также работает в Linux). он может создать файл, который действует как контейнер (как папка) и может быть сжат (также с лучшим соотношением, чем NFTS) и в то же время зашифрован.

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

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

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

Но для неизменных виртуальных дисков, ISO-файлов и других вещей, которые не изменятся, соотношение, которое он получает, очень близко к LZMA2 (7-Zip), и его можно читать / записывать на лету.

И это кроссплатформенный.

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

  1. Начальная позиция записи предварительно рассчитывается как 64K * N, где N - номер фрагмента 64K, который будет пытаться сжать
  2. Буфер на 64К зарезервирован
  3. Этот буфер заполнен 64 КБ, а затем сжат
  4. Записываются только необходимые блоки 4K, остальные сдаются как свободное место

Таким образом, он создает много, много GAP в середине файла, и только после дефрагментации файла GAP исчезают, но эта дефрагментация не происходит до тех пор, пока пользователь не закажет ее (contig.exe, defrag.exe и т. Д.).

Да, он записывает N-ный блок 64 КБ на позицию, кратную 64 КБ, независимо от того, могут ли предыдущие данные быть сжатыми или нет, он оставляет разрыв между каждым фрагментом 64 КБ (если все могут быть сжаты).

Сжатие виртуальной папки Pismo File Mount действует так, как если бы предполагалось любое обычное сжатие, в режиме конвейера, поэтому пробелов нет. по крайней мере, пока вы не удалите что-то.

Также еще одно предупреждение, не помещайте в него файлы VHD / VHDX, Windows не сможет их прикрепить! Windows использует трюк ядра для монтирования таких вещей, она не использует уровень файловой системы, работает на низком уровне.

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

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

Claudio
источник
0

Нет. Это файловые системы Windows, поэтому вам нужно использовать Windows для их дефрагментации.

psusi
источник
Разве у Wine нет стандартного приложения для дефрагментации Windows? ???
Хуан
2
@Juan, нет, это часть Windows. WINE позволяет запускать сторонние приложения, написанные для Windows. Он также использует специфичные для драйвера файловой системы Windows ioctl, которые недоступны в Linux.
psusi 13.12.15
0

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

Но у вас должен быть второй жесткий диск или как минимум 51% свободного места (если не используется сжатие).

Хитрость (очень хитрая) состоит в том, чтобы использовать инструменты для «клонирования» раздела, но не типичные ... есть инструмент, который может «клонировать» раздел NTFS, но не делает точного «клонирования» ... позвольте мне объяснить ...

Инструмент fsarchive (если я плохо помню).

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

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

Я использовал его для системного раздела Windows, а также для разделов данных NTFS ... с успешным ... не очень простым в использовании / понимании (внимательно прочитайте документы) ... но могу сделать свое дело.

Помните ... такой большой файл, который он создает, может быть сжат, поэтому не нужно иметь 51% свободного.

Но в любом случае, сначала вы должны сжать раздел NTFS ... использовать GParted (если я не помню плохо).

Итак, шаги:

  1. В худшем случае: на жестком диске только один БОЛЬШОЙ NTFS-раздел с достаточным количеством свободного места.
  2. Загрузите SystemRescuCD (если вы хотите запустить X windows командой wizard)
  3. Используйте GParted, чтобы сжать раздел NTFS до минимального размера (фрагменты файлов NTFS будут больше, неважно)
  4. Используйте GParted для создания другого раздела на свободном месте, лучше, если тип ext4 (журнал)
  5. Смонтируйте такой новый раздел, но не монтируйте NTFS
  6. Используйте fsarchiver для создания «клона» раздела NTFS, используйте сжатие и сохраните файл bif на созданном разделе
  7. Отныне это очень рискованно: используйте GParted, чтобы удалить раздел NTFS и заново создать его
  8. Восстановите «клон» с помощью fsarchiver, все файлы в разделе NTFS будут состоять из 1 фрагмента (кроме одного или двух, поскольку $ MFT можно поместить в середину, а не в слой или конец раздела)
  9. Используйте Gparted, чтобы сжать раздел NTFS, если это необходимо
  10. Проверьте правильность NFTS, можно ли монтировать, читать / писать и демонтировать
  11. Размонтировать только что созданный раздел ext4
  12. Используйте Gparted для увеличения ext4 (или лучше, удалите его и создайте заново)

Вот и все, ребята ... как я сказал, очень сложно и рискованно, конечно.

Остерегайтесь ключевых моментов:

  • Сжатие NFTS позволяет достаточно свободного места для хранения сжатого образа раздела NTFS (51% свободного места на жестком диске гарантирует, что этого достаточно)
  • fsarchiver не сохраняет потоки NTFS?
  • Восстановление fsarchiver не помещает файлы туда, где они, это помещает их нефрагментированные (как копия)
  • После удаления и воссоздания раздела NTFS обратного пути нет

Шаги для: Используйте LiveCD / LiveUSB linux для дефрагментации NTFS-раздела, который использует 100% диска, при этом никакие другие жесткие диски не подключаются к такому ПК [должно быть достаточно свободного места].

ВАЖНЫЙ:

  • Кто-то может подумать, что если у вас есть 51% свободного места на жестком диске после сжатия NTFS, было бы безопаснее просто создать этот ext4 и скопировать на него все NTFS, а затем удалить NTFS, воссоздать его и скопировать обратно ... как разрешения безопасности NTFS и т. д.

Насколько я знаю, GParted / fsarchiver является наиболее близким решением (для использования только LiveCD / LiveUSB с Linux), не быстрым, каким-то рискованным, но удовлетворяющим условиям, наложенным человеком, который задает вопрос.

Будьте осторожны: это очень, очень рискованно ... как с любым инструментом "клонирования" ... и пока я не знаю другого лучшего способа ... и он потеряет потоки NTFS (если я не помню плохо)

ПОЖАЛУЙСТА: прочитайте осторожно документы fsarchiver, прежде чем использовать его.

У меня есть какая-либо ответственность (я использовал это на своих собственных данных, но всегда у меня есть внешний BackUP - хорошие партии).

На практике ... всю имеющуюся у меня информацию я помещаю как минимум на три разных носителя (HDD, DVD, Flash Memories), по крайней мере, три копии на каждый носитель, поэтому у меня 9 копий ... если я потеряю 8 из им еще один отдых, чтобы восстановить данные ... я немного параноик, я знаю.

user372809
источник
Я бы не рекомендовал этот метод, так как (как вы сказали) он очень рискованный и обычно не стоит из-за дефрагментации. Лучше использовать системы Windows Live для выполнения такой работы (или оригинальную систему Windows - почему бы и нет?).
Byte Commander
fsarchive - это просто сложный tar-архив, в котором хранятся некоторые расширенные атрибуты. Это ничего не дефрагментирует. Вы метод так же хорошо, как простое копирование файлов из одного раздела в другую чистую файловую систему.
ЗАВ