Saya memiliki .rar
arsip multi bagian yang berisi satu .tar.gz
file di dalamnya (jangan tanya mengapa, begitulah dibuatnya). Saya kehilangan beberapa bagian, tetapi memiliki bagian pertama. Saya ingin mengekstrak sebanyak .tar.gz
mungkin. Bagaimana saya bisa melakukan itu?
Jika saya jalankan unrar x -kb file.part1.rar
selalu mengekstrak awal .tar.gz
dari part1
dan berhenti di sana dengan kesalahan. Saya senang mencoba alat apa pun (tidak harus unrar).
data-recovery
compression
tar
rar
winrar
Alex I
sumber
sumber
Jawaban:
Saya memiliki hal serupa di windows , ketika saya memiliki bagian 1,5,6,9,10 dari 10. Saya kehilangan bagian 2,3,4,7,8.
gunakan 7zip untuk mengekstrak bagian yang Anda miliki, dan ganti namanya sesuai dengan itu. yaitu: pt1 pt5 pt6, dll.
menghasilkan file nol (nol) untuk mengisi bagian yang hilang, menggunakan ukuran yang tepat dalam byte dari masing-masing bagian yang Anda miliki dan diekstraksi (yaitu ukuran pt1 yang sama dengan ukuran pt5 dan pt6 ...):
dalam kasus saya, saya menggunakan:
menyatukan file (menggunakan / b untuk file biner)
dalam kasus saya:
ketika selesai, saya memuat file dalam klien bittorrent Deluge, dan dipaksa memeriksa kembali, dan saya hanya kehilangan persentase yang sebenarnya tidak saya miliki, artinya klien bittorrent mengidentifikasi bahwa saya memiliki informasi yang benar antara semua nol yang saya ditambahkan.
sumber
7z %file
mencoba memuat semua file bagian dan mengembalikan kesalahan jika salah satunya sudah hilang. Apa yang harus dilakukan dengan torrents? Bisakah saya mengekstrak file terkompresi asli individual dari biner gabungan menggunakan Deluge?Ini mungkin tidak relevan lagi, tetapi saya hanya memiliki masalah yang sama dan menemukan solusi sederhana yang bekerja untuk saya dan saya pikir itu akan baik untuk dibagikan.
Saya memiliki arsip RAR yang dilindungi kata sandi di 6 bagian, tetapi part4 tidak ada. Saya mencoba menggunakan fungsi "perbaikan" WinRAR tetapi katanya tidak dapat menemukan catatan pemulihan. Saya mencoba metode di atas tetapi tidak berhasil dan ekstraksi selalu berhenti di mana bagian yang hilang dimulai.
Akhirnya, saya memutuskan untuk membodohi WinRAR dengan memikirkan bagian 5 dan 6 di mana arsip berbeda dan menamainya dengan "archive.part1.rar" dan "archive.part2.rar". Saya kemudian mengatakan kepada WinRAR untuk mengekstrak bagian 1 yang baru dan meskipun saya mendapat pesan kesalahan yang mengatakan itu tidak dapat mengekstrak file yang berakhir di awal bagian 1 yang baru (karena kehilangan beberapa data dari bagian yang hilang 4), itu berhasil mengekstrak semua file lain dari bagian asli 5 dan 6.
Saya harap ini akan membantu orang lain dengan masalah yang sama di masa depan.
sumber
Saya berasumsi 100MB bagian, bagian 3 hilang. Anda dapat mencoba
Saya juga akan mencoba, yang mungkin bekerja lebih baik dan membuat WinRar berpikir, file tersebut rusak:
sumber
cat blubb.rar | unrar > file.tgz
.Langkah 1: Ganti nama file, misalnya:
Langkah 2: Gunakan 7-Zip untuk mengekstrak setiap file.
Keuntungan!
(Dalam beberapa keadaan, penggantian nama tidak perlu dan Anda dapat membiarkan 7-Zip mengekstrak semua file untuk Anda.)
sumber
Saya hanya memiliki bagian kedua dari arsip rar dua bagian, sementara membongkar bagian 2 seperti yang diharapkan winrar muncul pesan mengatakan bagian pertama hilang; Saya juga memperhatikan bahwa konten lengkap dari bagian dua telah dibongkar di folder; jadi tanpa menyentuh pesan popup winrar, saya menyalin file yang belum dibuka ke folder lain dan kemudian mengklik di dekat pada pesan popup winrar; konten yang sudah dibongkar dihapus oleh winrar, tetapi karena saya telah menyalinnya sebelumnya ke folder yang berbeda, saya bisa menggunakan konten yang sudah dibongkar dari folder yang berbeda.
sumber
7-zip akan mengekstrak bagian file dari rar multi-bagian, dan kemudian Anda dapat menjahitnya kembali bersama dengan dd. Misalnya, jika Anda memiliki rar-bagian pertama dan terakhir:
Jika offset yang Anda butuhkan tidak prima, maka gunakan ukuran blok yang lebih besar dari satu.
dd
hanya dapatseek
mengalikan ukuran blok output.dd
benar-benar membuatread
danwrite
panggilan sistem dengan ukuran blok itu, jadibs=1
sangat menyebalkan.Besar
ibs
(ukuran blok input) akan menghemat separuh waktu CPU, karenaseek
dalam satuanobs
(ukuran blok output). Atau mungkin ada beberapa alat lain yang dapat mencari ke posisi byte sewenang-wenang dan kemudian melakukan I / Os berukuran normal. Atau jika Anda membuat skrip ini, Anda dapatbs=1
menemukan hingga 32k, maka mungkintail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))
sumber