วิธีการแยกหลายส่วน rar ด้วยส่วนที่ขาดหายไป?


12

ฉันมี.rarไฟล์เก็บถาวรแบบหลายส่วนที่มี.tar.gzไฟล์เดียวอยู่ข้างใน (ไม่ต้องถามว่าเป็นเพราะเหตุใด) ฉันหายไปบางส่วน แต่มีส่วนแรก ฉันต้องการสกัดให้ได้มาก.tar.gzที่สุด ฉันจะทำสิ่งนั้นได้อย่างไร

หากฉันเรียกใช้unrar x -kb file.part1.rarมันจะแยกจุดเริ่มต้น.tar.gzจากpart1และหยุดที่นั่นด้วยข้อผิดพลาด ฉันมีความสุขที่จะลองใช้เครื่องมือใด ๆ (ไม่จำเป็นต้อง unrar)


1
เห็นได้ชัดว่าคุณต้องการสิ่งทั้งหมดมันจะไม่ทำงานอย่างอื่น
Sickest

1
เขาบอกว่าเขาต้องการ "มากที่สุด" อย่างไรก็ตามมีความเป็นไปได้สูงที่สิ่งใดก็ตามที่เขาแยกจะไม่สามารถใช้งานได้เว้นแต่จะเป็นรูปแบบไฟล์อย่างง่าย (บิตแมป?)
WindowsEscapist

หากมีไฟล์เก็บถาวรอื่นที่มีไฟล์จำนวนมากเขาอาจสามารถกู้คืนไฟล์บางไฟล์ได้ เคล็ดลับคือการทำให้ WinRar แยกออกให้ได้มากที่สุด
davidbaumann

2
ฉันไม่เข้าใจว่าทำไมผู้คนถึงลงคะแนนคำถามเพียงเพราะพวกเขาไม่เข้าใจ
davidbaumann

ดังนั้นคุณหาทางออกและแบ่งปันกับเรา?
davidbaumann

คำตอบ:


2

ฉันมีสิ่งที่คล้ายกันบนwindowsเมื่อฉันมีส่วน 1,5,6,9,10 จาก 10 ฉันหายไปส่วน 2,3,4,7,8

  1. ใช้ 7zip เพื่อแยกส่วนที่คุณมีและเปลี่ยนชื่อพวกเขาตาม เช่น: pt1 pt5 pt6 เป็นต้น

  2. สร้างไฟล์ null (ศูนย์) เพื่อเติมส่วนที่ขาดหายไปโดยใช้ขนาดที่แน่นอนเป็นไบต์ของแต่ละส่วนที่คุณมีและแยก (เช่นขนาดของ pt1 ซึ่งเหมือนกับขนาดของ pt5 และ pt6 ... ):

    ไฟล์ fsutil สร้างใหม่ [path_to_file] [size_in_bytes]

    ในกรณีของฉันฉันใช้:

    ไฟล์ fsutil สร้างใหม่ C: \ TMP \ empty 1022701562

  3. ต่อไฟล์ (ใช้ / b สำหรับไฟล์ไบนารี่)

    คัดลอก / b file1 + file2 + file3 targetfile

    ในกรณีของฉัน:

    คัดลอก / b pt1 + ว่าง + ว่าง + ว่าง + pt5 + pt6 + ว่าง + ว่าง + pt9 + pt10 output_file

เมื่อเสร็จแล้วฉันโหลดไฟล์ในไคลเอนต์ BitTorrent Deluge และบังคับให้ตรวจสอบอีกครั้งและฉันก็หายไปร้อยละที่ฉันไม่ได้จริงๆหมายความว่าลูกค้า BitTorrent ระบุว่าฉันมีข้อมูลที่แท้จริงระหว่างศูนย์ฉันทั้งหมด ที่เพิ่ม


ฉันไม่เข้าใจคำแนะนำที่ดีมาก คุณจะแยกส่วนที่คุณมีจาก 7zip ได้อย่างไร 7z %fileพยายามโหลดไฟล์ชิ้นส่วนทั้งหมดและส่งคืนข้อผิดพลาดหากหนึ่งในนั้นหายไป สิ่งทั้งหมดที่เกี่ยวกับ torrents คืออะไร? ฉันสามารถแตกไฟล์บีบอัดดั้งเดิมแต่ละไฟล์จากไบนารีที่ต่อกันโดยใช้ Deluge ได้หรือไม่
cduguet

5

นี่อาจจะไม่เกี่ยวข้องกันอีกต่อไป แต่ฉันเพิ่งมีปัญหาเดียวกันและพบวิธีแก้ปัญหาง่ายๆที่ใช้งานได้สำหรับฉันและคิดว่ามันจะเป็นการแบ่งปันที่ดี

ฉันมีรหัสผ่านป้องกันการเก็บถาวร RAR ใน 6 ส่วน แต่ตอนที่ 4 หายไป ฉันพยายามใช้ฟังก์ชั่น "ซ่อมแซม" ของ WinRAR แต่มันบอกว่าไม่พบบันทึกการกู้คืน ฉันลองใช้วิธีการข้างต้น แต่พวกเขาไม่ได้ผลและการสกัดหยุดที่จุดเริ่มต้นที่ขาดหายไปเสมอ

ในที่สุดฉันตัดสินใจที่จะหลอก WinRAR ให้คิดในส่วนที่ 5 และ 6 ซึ่งเป็นที่เก็บถาวรอื่นและเปลี่ยนชื่อเป็น "archive.part1.rar" และ "archive.part2.rar" ฉันบอก WinRAR เพื่อแยกส่วนใหม่ 1 และถึงแม้ว่าฉันได้รับข้อความแสดงข้อผิดพลาดว่ามันไม่สามารถแยกไฟล์ที่สิ้นสุดในตอนต้นของส่วนใหม่ 1 (เนื่องจากขาดข้อมูลบางส่วนจากส่วนที่ขาดหายไป 4) มันจัดการเพื่อแยกไฟล์อื่น ๆ ทั้งหมดจากชิ้นส่วนเดิมที่ 5 และ 6

ฉันหวังว่าสิ่งนี้จะช่วยให้ผู้อื่นที่มีปัญหาเดียวกันในอนาคต


1

ฉันถือว่าชิ้นส่วน 100Mb ส่วนที่ 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. หากมีการต่อชิ้นส่วนที่มีอยู่ทั้งหมดเข้าด้วยกัน unrar ล้มเหลว (ข้อผิดพลาด CRC) ในที่เดียวกัน 2. หากฉันเพิ่งคัดลอกส่วนที่ใหม่กว่าเพื่อให้มีชื่อเหมือนกับส่วนที่หายไปมันจะล้มเหลวในที่เดียวกัน แต่จากนั้นพิมพ์ข้อความที่บ่งบอกว่ากำลังประมวลผลส่วนต่อมา (อาจมองหาจุดเริ่มต้นของไฟล์อื่น) 3 ถ้าฉันสร้างไฟล์ all-zeros ด้วย dd มันจะล้มเหลวด้วย "Bad archive"
Alex ฉัน

และถ้าฉันสร้างไฟล์ศูนย์ทั้งหมดและต่อกันมันจะล้มเหลวในที่เดียวกันด้วย "ไม่สามารถหาโวลุ่ม"
Alex ฉัน

cat blubb.rar | unrar > file.tgzเพียงแค่ความคิด:
davidbaumann

บางทีคุณอาจต้องการใช้WinRar สำหรับ Windows
davidbaumann

1

ขั้นตอนที่ 1: เปลี่ยนชื่อไฟล์ตัวอย่างเช่น:

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

ขั้นตอนที่ 2: ใช้7-Zipเพื่อแยกแต่ละไฟล์

กำไร!

(ในบางสถานการณ์การเปลี่ยนชื่อไม่จำเป็นและคุณสามารถปล่อยให้ 7-Zip แตกไฟล์ทั้งหมดสำหรับคุณ)


3
สิ่งนี้จะไม่ช่วยไฟล์ที่มีไฟล์มากกว่าหนึ่งส่วน
Rohit Gupta

คุณพยายามแตกไฟล์ที่เปลี่ยนชื่อแต่ละไฟล์ทีละไฟล์โดยใช้ 7-Zip หรือไม่?
cychoi

1

ฉันมีเพียงส่วนที่สองของการเก็บถาวร rar สองส่วนในขณะที่การเอาออกส่วนที่ 2 ตามที่คาดไว้ winrar โผล่ข้อความว่าส่วนแรกหายไป; ฉันยังสังเกตเห็นว่าเนื้อหาทั้งหมดของส่วนที่สองได้รับการคลายในโฟลเดอร์ ดังนั้นโดยไม่ต้องแตะข้อความป๊อปอัพของ winrar ฉันก็อปปี้ไฟล์ที่ไม่ได้แพ็คลงในโฟลเดอร์อื่นแล้วคลิกที่ปิดในข้อความป๊อปอัพของ winrar; เนื้อหาที่ไม่ได้แพ็คบรรจุถูกลบโดย winrar แต่เนื่องจากฉันได้คัดลอกไปไว้ก่อนหน้านี้ในโฟลเดอร์อื่นฉันจึงสามารถใช้เนื้อหาที่ไม่ได้แยกจากโฟลเดอร์อื่น


0

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(ขนาดบล็อกออก) หรืออาจมีเครื่องมืออื่น ๆ ที่สามารถค้นหาตำแหน่งไบต์ตามอำเภอใจแล้วทำ I / Os ขนาดปกติ หรือถ้าคุณเขียนสคริปต์สิ่งนี้คุณสามารถbs=1ปรับแนวได้สูงสุด 32k ดังนั้นอาจเป็นไปได้tail -c +$misalignment lastpart/file | dd ... of=p1/file conv=notrunc bs=32k seek=$(( (full_size - lastpart_size + misalignment) / (32 * 1024) ))

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.