Умный способ дефрагментировать файловую систему FAT?

10

Каков наилучший способ дефрагментировать файловую систему FAT при использовании Linux / Unix (например, на USB-накопителе)?

Марк Морис
источник
4
Я бы выбрал ваш первый вариант, если пространство не является проблемой. Я хотел бы создать чистую файловую систему в большом файле, который монтируется в цикле. Таким образом, вы получаете возможность проверить результат перед тем, как переписать флешку.
Джиппи
Предложение @ Jippie также предлагает резервную копию. В противном случае я бы выбрал утилиту дефрагментации, но сначала тщательно проверьте ее надежность, и заранее сделайте резервную копию, если у меня есть какие-либо вложения в данные.
vonbrand
@jippie: ты имеешь в виду создание файла цикла того же размера, что и у исходного жирного раздела, копирование всего в него, проверка, затем dd на исходное устройство? Вам понадобится дополнительное место, и я не понимаю, как лучше просто скопировать файл в локальную файловую систему ext временно. Или я что-то упустил.
Марк Морис
1
Вы можете проверить результат перед изменением содержимого флешки.
Джиппи

Ответы:

7

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

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

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

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

frostschutz
источник
1
Спасибо за Ваш ответ. На самом деле мне нужен способ полной дефрагментации файловой системы FAT, потому что я использую Easy2boot , и каждый iso-файл не должен быть фрагментирован.
Марк Морис
Звучит как устаревший метод для меня. Изолятор GRUB2 очень популярен, поэтому многие дистрибутивы поддерживают монтирование петель iso из любой точки мира. Те, которые этого не делают, могут быть из-за того, что он работает напрямую с раздела, но может также потерпеть неудачу. Всецело зависит от самой ISO.
frostschutz
2
Недостаток изолированного цикла GRUB2 заключается в том, что он напрямую загружает ядро ​​Linux в ISO. Вам нужно знать путь к загружаемому ядру / initrd, и вы потеряете меню ISOLINUX, предлагающее пользовательские параметры загрузки.
Марк Морис,
Найти путь не сложно, а остальное зависит от того, сколько усилий вы хотите приложить, чтобы преобразовать пункты меню isolinux в подменю grub2 ... но да, у всех решений есть свои недостатки. Я только что проверил свой раздел ISO - ни один из файлов не фрагментирован. И они были скопированы один за другим. Исправить это было бы для меня серьезной болью, поэтому я скорее воздержусь от ISO, которые не поддерживают установку в изолинии.
frostschutz
Я никогда не использовал easy2boot, но так как это решение предполагает создание раздела, вы не могли бы сделать это в первую очередь - один раздел на ISO и dd. Таким образом, фрагментация невозможна. Или, в качестве альтернативы, если это вообще возможно, файловая система без фрагментации (ISO внутри ISO?)
frostschutz
0

Давайте посмотрим на это с другой стороны, потому что вы привели пример «на USB-флешке, например»

Плохой пример

USB-накопитель - это флэш-память, и следует учитывать две вещи: 1) Поскольку во флэш-памяти нет движущихся частей, при дефрагментации заметного прироста производительности не наблюдается. Defrgs предназначены либо для очистки файловой системы, либо для перегруппировки файловых блоков, чтобы расположить их ближе друг к другу, чтобы уменьшить физические движения руки (поиск) и время ожидания вращения диска (задержка). Flash не имеет этого. 2) Запись и запись и запись на флэш-память стирает ее. Теперь, для 100-тысячной длительности записи, возможно, ваш USB-накопитель прослужит от нескольких до 10 лет, но количество времени, которое вы можете записать, является «конечным» числом. Постоянная дефрагментация на USB-накопителе пожирает эту жизнь из-за ограничения выносливости.

И это не только USB-накопитель, SD-карты, Compact FLASH и даже SSD-накопители.

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

Роберт Шуллич
источник