Как извлечь многотомный архив с недостающими деталями?

у меня составная .rar архив, содержащий один .tar.gz файл внутри него (не спрашивайте почему, просто так это было сделано). Мне не хватает нескольких частей, но у меня есть первая часть. Хотелось бы извлечь как можно больше .tar.gz как это возможно. Как я могу это сделать?

если я запускаю unrar x -kb file.part1.rar Он всегда извлекает начале .tar.gz С part1 и останавливается там с ошибкой. Я рад попробовать любые инструменты (не обязательно unrar).

13
задан Jawa
12.05.2023 14:10 Количество просмотров материала 3372
Распечатать страницу

6 ответов

У меня была похожая вещь на windows, когда я имел части 1,5,6,9,10 из 10. У меня отсутствовали детали 2,3,4,7,8.

  1. используйте 7zip, чтобы извлечь части, которые у вас есть, и переименовать их соответствующим образом. т. е.: pt1 pt5 pt6 и т. д.

  2. генерировать нулевой (нулевой) файл, чтобы заполнить недостающие части, используя точный размер в байтах каждой из частей у вас есть и извлечены (т. е. размер pt1, который является таким же, как размер pt5 и РТ-6...):

    fsutil файл createnew [path_to_file] [size_in_bytes]

    в моем случае я использовал:

    файл fsutil createnew C:\TMP\empty 1022701562

  3. объединить файлы (используя /b для двоичных файлов)

    copy / b file1+file2+file3 целевой файл

    в моем случае:

    копировать / b рт1+пусто+пусто+пусто+пт5+РТ-6+пусто+пусто+pt9+pt10 выходной_файл

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

2
отвечен Nben 2023-05-13 21:58

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

У меня был защищенный паролем архив RAR в 6 частях, но часть 4 отсутствовала. Я попытался использовать функцию "ремонт" WinRAR, но он сказал, что не может найти запись восстановления. Я пробовал методы выше, но они не работали, и извлечение всегда останавливалось там, где начиналась недостающая часть.

наконец, я решил чтобы обмануть WinRAR, подумав о частях 5 и 6, где другой архив и переименовал их в "архив".часть 1.RAR" и "архив.часть 2.Рар." Затем я сказал WinRAR извлечь новую часть 1, и хотя я получил сообщение об ошибке, в котором говорилось, что он не может извлечь файл, который закончился в начале новой части 1 (поскольку в нем отсутствовали некоторые данные из отсутствующей части 4), ему удалось извлечь все другие файлы из исходных частей 5 и 6.

Я надеюсь, что это поможет другим людям с такой же проблемы в будущем.

4
отвечен magogo200 2023-05-14 00:15

Я предполагаю, что 100 МБ частей, Часть 3 отсутствует. Вы можете попробовать

cat blubb.part01.rar blubb.part02.rar blubb.part04.rar > blubb.rar

также я хотел бы попробовать, который может работать лучше и сделать WinRar думаю, что файл поврежден:

dd if=/dev/zero of=blubb.part03.rar bs=1M count=100
cat blubb.part01.rar blubb.part02.rar blubb.part03.rar blubb.part04.rar > blubb.rar
1
отвечен davidbaumann 2023-05-14 02:32

Шаг 1: переименуйте файлы, например:

file.part1.rar -> fileA.rar
file.part2.rar -> fileB.rar
file.part3.rar -> fileC.rar
etc..

Шаг 2: Используйте 7-Zip извлечь каждый файл.

профит!

(в некоторых случаях переименование не требуется, и вы можете позволить 7-Zip извлечь все файлы за вас.)

1
отвечен cychoi 2023-05-14 04:49

У меня была только вторая часть из двух частях в rar архиве, при распаковке часть 2 как и ожидалось в WinRAR всплыло сообщение, что первая часть не хватает; я также заметил, что полное содержание Часть вторая был распакован в папку; поэтому, не касаясь того, WinRAR это всплывающее сообщение, Я скопировал распакованные файлы в другую папку и нажал на закрыть в программе WinRAR всплывающего сообщения; распакованного содержимого были удалены с помощью WinRAR, но так как я скопировал их в другую папку, я можно использовать распакованное содержимое из другой папки.

1
отвечен AR Augustine 2023-05-14 07:06

7-zip извлечет часть файла из составного rar, а затем вы можете сшить их вместе с dd. Например, если у вас есть первая и последняя RAR-части:

7z x p1.rar
mv dir p1  # rename out of the way
7z x plast.rar
unrar l p1.rar
   # note the file size of the entire file
ls -l dir/file  # note the size of the last part
dd if=dir/file of=p1/file  conv=notrunc  bs=1 seek=$((full_size - lastpart_size))

если смещение, которое вам нужно искать, не простое, используйте размер блока больше единицы. dd может быть только seek к кратным размеру выходного блока. dd действительно read и write системные вызовы с таким размером блока, так что bs=1 очень хреново.

большой ibs (размер входного блока) сэкономит половину процессорного времени, так как seek составляет obs (размер выходного блока). Или, может быть, есть какой-то другой инструмент, который может искать произвольную позицию байта, а затем выполнять операции ввода/вывода нормального размера. Или, если бы вы писали это, вы могли бы dd с bs=1 до 32K выровнены, то, возможно,tail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))

0
отвечен Peter Cordes 2023-05-14 09:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

compression
data-recovery
rar
tar
winrar
Вверх