Назад | Перейти на главную страницу

Поврежденный tar (результирующая папка меньше упакованного файла)

У меня проблема с архивом, созданным на версии сервера SuSe 10.3.

Файл .tar имеет размер 6,5 ГБ, но если я распакую его в Ubuntu 9.10, размер результирующей папки будет только 1,5 ГБ.

используемые команды: tar cvf для упаковки, tar xvf для распаковки.

Возможно, кто-нибудь знает, как это можно исправить, было бы здорово.

Ура.

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

Tar не предназначен для сжатия, а просто для создания файла, содержащего несколько файлов. Вот почему вы обычно находите его передаваемым через gzip или bzip.

Я бы предложил попробовать человек. По крайней мере, так это называется в CentOS. IIRC, он может обрабатывать поврежденные файлы TAR, пропуская недопустимые члены tar. В противном случае я предлагаю вам поэкспериментировать с tarfile модуль стандартной библиотеки Python и делаем это программно. Я сделал что-то подобное несколько лет назад.

Если у вас много маленьких файлов, вы можете столкнуться с блокировкой и перегрузкой каталога в tar. Важная информация - насколько велик был исходный каталог. tar мог сжимать пустое пространство в файлах, не выделяя для них блоки. Попробуйте --apparent-size возможность du.

Вы можете попробовать сравнить список файлов, созданных tar -tf в извлеченные файлы. Извлечь с помощью tar -xf чтобы узнать, не возникает ли у вас ошибок при извлечении. Попробуйте воссоздать копию tar, чтобы узнать, насколько она велика.

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