1

У меня есть tar-файл 40 Гб, но когда я открываю его с помощью менеджера архивов в Ubuntu, я получаю только 512 Мб. Большая часть моих файлов испорчена. Даже когда я делаю:

tar -tf myfile.tar.gz

Я не получаю список всех моих файлов. Когда я создавал файл, я использовал команду:

tar -zcvf myfile.tar.gz myhomefolder

А затем я остановил команду, так как не хочу сжимать (это занимает слишком много времени) и запустить:

tar cvf myfile.tar.gz myhomefolder

В Windows, когда я использую 7-Zip, я получаю эту ошибку:

There are data after the end of file

Проблема в том, что в файле плохой конец. Как сделать, чтобы удалить этот конец. Какое программное обеспечение может открыть файл в двоичном режиме или что-то вроде этого.

Как я могу получить мои файлы?

2 ответа2

2

Вы можете попробовать утилиту gzrecover, а затем извлечь восстановленный архив с помощью cpio.

Это помогло восстановить поврежденные архивы в прошлом, но ваш пробег может отличаться. У меня проблема, когда он не может восстановить архив для меня, так что честное предупреждение.


РЕДАКТИРОВАТЬ: модом яростно угрожает мне ножом, я добавлю некоторые детали, как я восстановил архивы заранее. (Шучу. Не делай мне больно, @ Scott!)

Вы можете установить оба пакета, используя

sudo apt-get install cpio gzrt

Убедившись, что оба пакета установлены, приступим к работе.

Во-первых, разместите свой архив там, где вы не против извлечения данных. Оттуда вы можете запустить

gzrecover broken-archive.tar.gz

gzrecover, вероятно, займет некоторое время, в зависимости от размера архива. Однако, если повезет, вы увидите «broken-archive.tar.recovered» в том же каталоге после завершения операции.

Восстановленный архив, вероятно, также получил некоторый ущерб; Здесь пригодится cpio. Он должен быть уже установлен в вашей системе.

Чтобы извлечь восстановленный архив, используйте

cpio -F broken-archive.tar.recovered -i -v

Имейте в виду, что в течение этого времени cpio будет выдавать большое количество информации. Я рекомендую вам делать это на отдельном tty целиком, а не на терминале в вашей X-сессии. Чтобы сделать это, вы можете просто нажать CTRL+ALT+F1 и ваш экран переключится на терминал. Чтобы вернуться к сеансу X, нажмите CTRL+ALT+F8 (может отличаться, но обычно это F7-9).

Процесс извлечения восстановленного архива также будет довольно интенсивным. Поскольку cpio не оптимизирован для использования с несколькими ядрами, он будет привязан к одному ядру. Независимо от того, на каком ядре оно закреплено, оно, вероятно, закрепит ядро на 100%. Если у вас двухъядерный компьютер, вам, возможно, придется некоторое время не использовать его.

Имейте в виду, что этот процесс может занять несколько дней, особенно учитывая размер архива. Либо найдите другую машину, чтобы перегрузить эту работу (более медленные процессоры будут делать это дольше), не планируйте использовать компьютер некоторое время, либо просто приготовьтесь к тому, что ваша система задохнется во время работы. Кроме того, если вы запустите это в терминале в сеансе X, вы, вероятно, закрепите второе ядро до 100%. Если вы опытный пользователь, вы можете использовать команду taskset чтобы назначить процесс (ы) конкретному ядру. Однако это выходит за рамки моего ответа.

Я желаю вам удачи.

0

Сначала tar cvf myfile.tar.gz myhomefolder должен быть tar cvf myfile.tar myhomefolder .

Во-вторых, вы можете попробовать tar xvf myfile.tar.gz .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .