Sparse files (разряженные файлы): различия между версиями

Материал из sysadm
Перейти к навигации Перейти к поиску
 
Строка 5: Строка 5:
 
* [http://dar.linux.free.fr/doc/Tutorial.html DAR] - архиватор для больших файлов, поддерживает sparse, дифференциальный бэкап на уровне изменяемых блоков.
 
* [http://dar.linux.free.fr/doc/Tutorial.html DAR] - архиватор для больших файлов, поддерживает sparse, дифференциальный бэкап на уровне изменяемых блоков.
  
Если файл содержит большие пустоты, то они могут быть вырезаны и место занимаемое файлом частично освободится, при этом логический размер не изменится.
+
Если файл содержит большие фрагменты заполненные нулями, то они могут быть вырезаны и место занимаемое файлом частично освободится, при этом логический размер не изменится.
  
Вырезание пустот (преобразование обычного файла в sparse файл)
 
 
<pre>
 
<pre>
 +
# вырезание пустот (преобразование обычного файла в sparse файл)
 
fallocate -d </path/to/file>
 
fallocate -d </path/to/file>
 +
 +
# сейчас утилита копирования cp поддерживает sparse файлы
 +
# --sparse=auto    (сейчас по умолчанию) если источник является sparse, то файл назначения тоже будет sparse
 +
# --sparse=never    файл назначения будет не sparse
 +
# --sparse=always  файл назначения будет sparse
 +
# пример конвертации в sparse
 +
cp --sparse=always /path/to/file1 /path/to/file2
 +
 +
# к сожалению dar исключен из репозитория RHEL10
 +
 +
# актуальная версия tar поддерживает sparse
 +
# пример архивации с конвертацией в sparse
 +
tar --sparse -cJvf /path/to/file.tar.xz /path/to/file.dat
 +
 +
# если файл архива был создан с конвертацией в sparse, то при распаковке он будет восстановлен как sparse не зависимо от наличия опции --sparse
 +
tar -xJvf /path/to/file.tar.xz
 +
 +
# (нужно проверить) возможно так все восстанавливаемые файлы будут конвертироваться в sparse
 +
# даже если они не были sparse и архивировались без опции --sparse
 +
tar --sparse -xJvf /path/to/file.tar.xz
 +
 
</pre>
 
</pre>

Версия 00:55, 24 июля 2025

Ссылки по теме

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

# вырезание пустот (преобразование обычного файла в sparse файл)
fallocate -d </path/to/file>

# сейчас утилита копирования cp поддерживает sparse файлы
# --sparse=auto     (сейчас по умолчанию) если источник является sparse, то файл назначения тоже будет sparse
# --sparse=never    файл назначения будет не sparse
# --sparse=always   файл назначения будет sparse
# пример конвертации в sparse
cp --sparse=always /path/to/file1 /path/to/file2

# к сожалению dar исключен из репозитория RHEL10

# актуальная версия tar поддерживает sparse
# пример архивации с конвертацией в sparse
tar --sparse -cJvf /path/to/file.tar.xz /path/to/file.dat

# если файл архива был создан с конвертацией в sparse, то при распаковке он будет восстановлен как sparse не зависимо от наличия опции --sparse
tar -xJvf /path/to/file.tar.xz

# (нужно проверить) возможно так все восстанавливаемые файлы будут конвертироваться в sparse
# даже если они не были sparse и архивировались без опции --sparse
tar --sparse -xJvf /path/to/file.tar.xz