PDA

Просмотр полной версии : NTFS и разреженные файлы (sparse files)



NEO SPECTRUMAN
29.01.2021, 18:50
Какой то время назад открыл для себя разреженные файлы
(в двух словах это просто когда лишние 0 не записываются на диск :v2_dizzy_roll:)
https://pic.maxiol.com/images2/1611933571.93957985.20210129165007.png https://pic.maxiol.com/images2/1611933895.93957985.20210129173842.png

просто на заменимая вещь для торентов которые никогда уже не докачаются и тучи файлов содержащих большое количество $00
никакое NTFS-ное сжатие и близко не лежит

НО данная шняга мало где упоминается вообще как таковая
в качалках по дефолту она успешно выключена
программ для создания разреженных файлов тоже особо не видно
везде предлагается чуть ли не разреживать ручками при помощи прописывания областей с $00 в командной сроке :v2_dizzy_facepalm:
да и даже просто так они не копируются без восстановления исходного размера...


программок для создания я нашел всего 2

проверил из которых только эту (уже не знаю где ее взял)
https://www.mediafire.com/file/nyp3n9c4vfjnh0v/SparseTest.7z/file

но это все же примитивный commad line tool
в придачу с таким текстом при запуске

This is Moonlight's Sparse File debugging test program version 0.01. This is pro
vided for demo purposes only.
Visit http://pages.infinit.net/moonligh/M-CS-ICH for the actual project's status
что нам говорит что юзать оно можно на свой страх и риск

конечно оно несколько автоматизируется при помощи батников

пакетное разреживание всего в папке с батником

for %%f in (*) do ECHO %%f & "C:\**прописываем_свой_путь**\Sp arseTest.exe" "%%f"
pause


пакетное разреживание всего драгндропнутого на батник (всего список чего влезет в буфер)


@ECHO OFF

:loop
if "%~1"=="" goto end

ECHO %~1
"C:\**прописываем_свой_путь**\Sp arseTest.exe" "%~1"
ECHO.

shift & goto loop
:end

pause


но все равно средство это дубовое...



вощем вопросы к тем кто тоже оно юзает
какие подводные камни у всего этого были кем замечены?

как восстанавливается такие файлы в случае повреждений ФС, после форматирования?
как такие файлы переваривают всякие линупсы и новомодные вин15?

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


да и ищется более приличная софтварь для создания разреженных файлов

AlexG
29.01.2021, 19:24
https://docs.microsoft.com/ru-ru/windows-server/administration/windows-commands/fsutil-sparse

NEO SPECTRUMAN
29.01.2021, 19:29
https://docs.microsoft.com/ru-ru/win.../fsutil-sparse
ну об этом? я и говорил


fsutil sparse [queryflag] <filename>
fsutil sparse [queryrange] <filename>
fsutil sparse [setflag] <filename>
fsutil sparse [setrange] <filename> <beginningoffset> <length>

из другого руководства

queryflag
Определяет, помечен ли файл, как разреженный

queryrange
Отображает диапазоны разреженного файла, которые содержат ненулевые данные.

setflag
Устанавливает флаг разреженности для файла

setrange
Заполняет диапазон (определяемый параметрами offset и length) указанного разреженного файла нулями

само оно вроде не находит $00 и не помечает их
тоесть бесполезно
но я в этом не удостоверилсо лично

SlashNet
29.01.2021, 19:37
Far Manager

https://s8.hostingkartinok.com/uploads/images/2021/01/fdef0ee311f2cc5f00f149b3068c4323.png

https://s8.hostingkartinok.com/uploads/images/2021/01/aa3a55527320e74b847681441c8598ab.png

Стоит торрентокачалка Tixati, и как я понял эта функция стоит в ней по-умолчанию.

NEO SPECTRUMAN
29.01.2021, 19:49
еще everething вроде может искать по атрибутам
https://www.voidtools.com/forum/viewtopic.php?f=2&t=8488
https://www.voidtools.com/support/everything/searching/

и при помощи attrib:P можно найти все что разреженно
но у меня атрибуты не проиндексированны поэтому проверить не реально

CodeMaster
29.01.2021, 20:45
никакое NTFS-ное сжатие и близко не лежит
Потому, что часть инфы о сжатии не в самом файле:

Информация о дырах (смещение от начала файла в байтах и количество байт) хранится в метаданных ФС.
Но, место на диске она всё-равно занимает.


и тучи файлов содержащих большое количество $00
Вопрос только в том, нахрена эти нули в файлах в таком количестве?

NEO SPECTRUMAN
29.01.2021, 20:54
Вопрос только в том, нахрена эти нули в файлах в таком количестве?
качал торенты и им подобное?
покачай узнаешь :v2_lol:

сверху я привел реальные скриншоты
100 гигов этих $00 освободилось из того что еще не планируется удалять

так же по идеи нули есть на образах дисков
но у меня под рукой их нет чтоб проверить

CodeMaster
29.01.2021, 21:04
качал торенты и им подобное?
Нет, как-то прожил без них.

NEO SPECTRUMAN
29.01.2021, 21:10
Нет, как-то прожил без них.
ну а бывает это обычно так
тк не все удосуживаются раздавать обратно то что скачали...
и "старые" раздачи либо мертвые полностью либо качаются на протяжении вечности
https://jpegshare.net/images/70/0c/700cbe340351f8b3feece5fce98dedf6.png

с вот такой целостностью файла например
https://jpegshare.net/images/a0/9d/a09d7135de9f7885bb8e1726edf61e8d.png
ЗЫ: необращаем внимание на 2 недели
файл качается лет 6 просто разными качалками :)

doorsfan
29.01.2021, 21:34
1. NTFS сжатие сжимает недокачанные файлы (которые можно качать годами) ровно до размера скачанного, проверено не раз.
2. с торрентами такая опция (так-же как и опция не резервировать место на диске до закачки и опция компрессии) приводит к фрагментации на over 9000 фрагментов.

раз уж об NTFS сжатие: линукс + сжатие + закачка по протоколу торрент = убитый файл ближе к концу скачки. после фикса кучи ошибок chkdsk и рехеша файла прогресс оказывается 0%.
проблеме № лет, актуально и на последних ядрах

NEO SPECTRUMAN
29.01.2021, 22:31
NTFS сжатие сжимает
оно пытается сжимать и все остальное
до и описывается это как одни тормоза лишние распаковки и упаковки
в общем не совсем то

а так странно
щас проверил и до оно жмет
когда проверял на файлах с пустотой
у меня до 4К ничего не сжималось
файл был меньше но не на много...

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

- - - Добавлено - - -


проблеме № лет, актуально и на последних ядрах
не совсем понел
линупс не переваривает ntfs разделы с сжатием?

doorsfan
30.01.2021, 00:51
линупс не переваривает ntfs разделы с сжатием?
драйвер NTFS-3G глючный и его поддержка давно заброшена. № лет было заявлено "компрессированные файлы поддерживаются на чтение и на запись". По факту, в линейном режиме действительно проблем нет, а сценарий работы с рандомным заполнением разрушает файл - в какой-то момент в такой файл не возможно ни записать, ни прочитать его. ну а после лечения chkdsk /f в файле остаётся 0% полезной информации.
Paragon открыла свой драйвер с пол-года назад, Торвальдсу на NTFS наплевать, а как его прикрутить самостоятельно идей/времени нет.

Sandro
11.06.2021, 07:12
Потому, что часть инфы о сжатии не в самом файле:
Но, место на диске она всё-равно занимает.


Она его всё равно занимает. "Под капотом" у NTFS -- вообще все файлы является разреженными. Так как это журналирующая файловая система, она хранит не двоичный образ файла, а историю записей в него (я упрощаю). Снятие флажка "sparse file" всего лишь означает, что место под файл будет выделено физически даже для участков, содержащих нули. При этом оно вовсе не обязательно будет прописано нулями, насколько я помню.