Розріджені файли в Windows, Linux та MacOS, файлових систем NTFS, REFS, Ext3, Ext4, BTRFS та APFS
У цій статті піде мова про розріджені файли: про їх недоліки та переваги, які файлові системи підтримують такі файли. А також, як створювати або перетворювати їх зі звичайних.
- Різниця між стисненням та розрідженими файлами
- Переваги та недоліки
- Створюємо розріджений файл в Windows
- Як створити розріджений файл в Linux
- Як збільшити існуючий файл
- Розріджені файли в ApFS
- Відновлення розріджених файлів
- Висновок
- Питання та відповіді
- Коментарі
Розріджені – це спеціальні файли, які з більшою ефективністю використовують файлову систему. Вони не дозволяють файловій системі займати вільний дисковий простір носія, коли розділи незаповнені. Тобто, «порожнє місце» буде задіяне тільки у разі необхідності. Порожня інформація у вигляді нулів буде зберігається в блоці метаданих файлової системи. Тому, розріджені файли спочатку займають менший об’єм носія, ніж їх реальний обсяг.
Цей тип підтримує більшість файлових систем:
- BTRFS,
- NILFS,
- ZFS,
- NTFS,
- ext2, ext3, ext4,
- XFS,
- JFS,
- ReiserFS, Reiser4,
- UFS,
- Rock Ridge,
- UDF,
- ReFS,
- APFS,
- F2FS.
Всі ці файлові системи повністю підтримують такий тип, але в той же час не надають прямий доступ до їх функцій засобом свого стандартного інтерфейсу. Управляти їх властивостями можна тільки через команди командного рядка.
Різниця між стисненням та розрідженими файлами
Всі файлові системи, які я назвав вище, також підтримують стандартну функцію стиснення. Обидва цих інструменти дають перевагу у вигляді економії місця на диску, але досягають цієї мети по-різному. Основним недоліком використання стиснення є те, що це може знизити продуктивність системи при виконанні операції читання\запису. Так, як будуть використовуватися додаткові ресурси для розпакування або стиснення даних. Але деякі програмні продукти не підтримують стиснення.
Переваги та недоліки
Найбільшою перевагою розріджених файлів є те, що користувач може створювати файли великого розміру, які займають дуже мало місця. Простір для зберігання виділяється автоматично, по мірі запису на нього даних. Розріджені файли великого об’єму створюються за відносно короткий час, оскільки файловій системі не потрібно попередньо виділяти дисковий простір для запису нулів.
Переваги обмежені лише додатками, які їх підтримують. Якщо у програми немає можливості розпізнавати або використовувати їх, то вона збереже їх у вихідному – нестислому стані, що не дасть ніяких переваг. Також з ними потрібно бути обережними, оскільки розріджений файл розміром всього в декілька мегабайт може раптово збільшитися до декількох гігабайт, коли непідтримувані додатки скопіюють його в місце призначення.
Ще один з недоліків – це те, що не можна скопіювати або створити такий файл, якщо його номінальний розмір перевищує поточну кількість вільного місця (або є обмеження розміру квоти, що накладаються на облікові записи користувачів). Наприклад, якщо вихідний розмір (з усіма нульовими байтами) становить 500 МБ, а для облікового запису користувача, що використовується для його створення існує межа квоти в 400 МБ. Це призведе до помилки, навіть якщо фактичний дисковий простір займане ним, складає всього 50 МБ на диску.
Що стосується накопичувачів на яких зберігаються такі дані, то вони також схильні до фрагментації, оскільки файлова система буде записувати дані в розріджені файли в міру необхідності. Згодом це може призвести до зниження продуктивності. Крім того, деякі утиліти для управління дисками можуть неточно відображати обсяг вільної пам’яті. Коли файлова система майже заповнена, це може призвести до несподіваних результатів. Наприклад, можуть виникати помилки «переповнення диска», коли дані копіюються поверх існуючої частини, яка була позначена як розріджена.
Переваги | Недоліки |
---|---|
Ефективне використання дискового простору, оскільки файли займають лише фактично використані блоки | Можлива втрата даних, якщо диск заповниться, оскільки файл може бути записаний частково |
Підвищення швидкості створення великих файлів | Не всі файлові системи підтримують розріджені файли |
Економія місця при роботі з резервними копіями та великими файлами | Використання розріджених файлів може призвести до фрагментації даних на диску |
Можливість швидкого створення та виділення великого обсягу дискового простору | Моніторинг реального використання дискового простору може бути складнішим |
Підтримка багатьма операційними системами та віртуалізаційними платформами | Потреба в більш ретельному управлінні дисковим простором для уникнення проблем |
Створюємо розріджений файл в Windows
Для цього в ОС Windows будемо використовувати командний рядок. У пошуку пишемо cmd і запускаємо його від імені адміністратора.
У Windows для управління такими даними використовують програму fsutil (утиліта файлової системи). При виконанні create, за замовчуванням файл створюється самий звичайний. Переходимо в папку де потрібно його створити і вводимо:
fsutil file createnew sparse-file 1000000000
Де sparse-file – ім'я, а в кінці вказано його розмір в байтах.
Щоб надати файлу значення «розріджений», вводимо:
fsutil sparse setflag sparse-file
Для видалення цього значення виконується наступна команда:
fsutil sparse setflag sparse-file 0
І щоб знову надати атрибут:
fsutil sparse setflag sparse-file
Перевіряємо:
fsutil sparse queryflag sparse-file
Сам по собі атрибут ще не призводить до економії дискового простору. Для цього потрібно розмітити порожню область, яка буде звільнена всередині.
Для розмітки порожнтої області введіть:
fsutil sparse setrange sparse-file 0 1000000000
В кінці вказується зміщення та довжина, вони задаються в байтах. У моєму випадку від нуля до 1Гб.
Для установки повністю розрідженого файлу вказуємо повний обсяг. Якщо потрібно, то можна розширити файл вказавши тут більше значення.
Для того щоб переконатися, що файлу присвоєно даний атрибут виконаємо layout.
fsutil file layout sparse-file
Такий Атрибут можна задати будь-якому файлу. Просто виконайте цю команду з його ім'ям і задайте потрібний вам розмір.
У властивостях створеного раніше файлу можна побачити, що при розмірі в 1 Гб файл займає на диску 0 байт.
Даний набір команд підходить для всіх файлових систем Windows, які підтримують даний тип даних (NTFS, ReFS і т.д.).
Як створити розріджений файл в Linux
У Linux процес створення таких типів даних дещо простіший, оскільки існує декілька команд для їх створення. Цей набір підійде для всіх файлових систем Linux.
Тут можна використовувати команду dd, або truncate.
Перша команда має наступний вигляд:
dd if=/dev/zero of=file-sparse bs=1 count=0 seek=2G
Де file-sparse – ім'я, і в кінці вказано його розмір. Можна задати в байтах, мегабайтах і т.д.
Друга команда простіша, вона має такий вигляд:
truncate -s2G file-sparse
Де значення s - вказує розмір, після якого йде ім'я.
У порівнянні з Windows, в Linux при створенні такого файлу однією з команд, він буде «розрідженим» за замовчуванням.
Для перетворення звичайного в розріджений, є окрема команда:
cp --sparse=always ./025.jpg ./0251.jpg
Де 025.jpg – перше ім'я звичайного.
0251.jpg – і друге ім'я розрідженого.
Як збільшити існуючий файл
Якщо вам потрібно збільшити вже існуючий файл, то скористайтеся першою командою. Тут замініть ім'я і вкажіть потрібний розмір.
dd if=/dev/zero of=025.jpg bs=1 count=0 seek=2G
Це збільшить його розмір до 2 Гб.
Для перевірки розміру виконаємо таку команду:
du -h --apparent-size 025.jpg
Розріджені файли в ApFS
По суті, даний набір команд підходить і для файлової системи від Apple - ApFS. Так як Linux і MacOS використовують в своїй основі архітектуру ядра Unix, вони обидві забезпечують доступ до Unix-командам і до оболонки Bash.
Запустіть термінал і виконайте будь-яку з команд, яку я використовував в Linux.
У MacOS Catalina працює тільки перша команда, і розмір потрібно вказувати в байтах, інакше в результаті команда виведе помилку.
sudo dd if=/dev/zero of=sparse_APFS bs=1 count=0 seek=1000000000
Файлова система ApFS при дотриманні певних умов створює розріджені файли за замовчуванням, тому для збільшення будь-якого файлу можна використовувати команду:
dd if=/dev/zero of=187.jpg bs=1 count=0 seek=500000000
Задамо розмір, наприклад, 500Мб, в MacOS розмір потрібно вказувати в байтах.
У властивостях можна побачити, що його розмір збільшився до 500 Mb.
Відновлення розріджених файлів
А якщо ви випадково видалили або відформатували диск з важливими даними, і вони виявилися розрідженими? Для їх відновлення скористайтеся програмою Hetman Partition Recovery або Hetman RAID Recovery. Наша програма підтримує даний тип файлів у всіх представлених в цьому відео операційних та файлових системах. Завантажте, встановіть та запустіть програму, проскануйте носій.
Як бачите, програма знаходить існуючі та видалені розріджені файли, і відображає їх вміст. Відкривши файл в HEX-редакторі можна переконатися, що він повністю заповнений нулями.
Програма знайшла раніше видалені дані на диску з файловою системою NTFS, REFS, BtrFS, Ext3, Ext4 та ApFS. Залишилося лише натиснути кнопку Відновити.
По завершенню процесу всі потрібні дані будуть лежати в зазначеній папці. Дивимося властивості, файли відновлені в повному обсязі.
Висновок
Перед використанням цього функціоналу в будь-яких ОС, вам вкрай важливо дізнатися всі переваги та недоліки розріджених файлів. Знання цих особливостей гарантовано дозволить уникнути потенційних проблем в майбутньому.