นี่คือเซฟสำเนาคำสั่งที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
เซฟสำเนา - กู้คืนข้อมูลจากแหล่งที่ทำให้เกิดข้อผิดพลาด IO
เรื่องย่อ
เซฟสำเนา [ทางเลือกที่] ... แหล่งที่มา มือ
DESCRIPTION
เซฟสำเนา พยายามรับข้อมูลจาก SOURCE ให้ได้มากที่สุด แม้จะหันไปพึ่งอุปกรณ์ก็ตาม
การดำเนินงานระดับต่ำที่เฉพาะเจาะจงถ้ามี
ซึ่งทำได้โดยการระบุพื้นที่ที่มีปัญหาหรือเสียหาย ข้ามผ่านพวกเขาและ
อ่านต่อในภายหลัง พื้นที่ที่สอดคล้องกันในไฟล์ปลายทางคือ
ข้าม (ในการสร้างครั้งแรกที่หมายถึงเบาะด้วยศูนย์) หรือจงใจเติมด้วย
รูปแบบที่รู้จักเพื่อค้นหาไฟล์ที่ได้รับผลกระทบในภายหลังบนอุปกรณ์ที่เสียหาย
Safecopy ใช้อัลกอริธึมที่เพิ่มขึ้นเพื่อระบุจุดเริ่มต้นและจุดสิ้นสุดของสิ่งเลวร้าย
พื้นที่ทำให้ผู้ใช้สามารถแลกเปลี่ยนการเข้าถึงขั้นต่ำไปยังพื้นที่ที่ไม่ดีสำหรับข้อมูลอย่างละเอียด
การฟื้นคืนชีพ
สามารถส่งผ่านไฟล์เดียวกันได้หลายครั้ง เพื่อดึงข้อมูลจาก a . ให้ได้มากที่สุดก่อน
อุปกรณ์ให้มากที่สุดเท่าที่จะเป็นไปได้โดยมีอันตรายน้อยที่สุดแล้วพยายามดึงส่วนที่เหลือ
ข้อมูลที่มีการพยายามอ่านเชิงรุกมากขึ้น
เพื่อให้ใช้งานได้ ต้องค้นหาอุปกรณ์ต้นทางหรือไฟล์ สำหรับอุปกรณ์ที่หาไม่ได้
(เช่นเทป) คุณสามารถลองใช้สคริปต์ภายนอกเพื่อดำเนินการข้ามที่ควบคุมบน
ส่วนที่เสียหายสำหรับคุณ
(ตัวอย่างเช่น โดยใช้ "mt ค้นหา" และ "mt tell" บนอุปกรณ์เทป SCSI) ดู "-S
" พารามิเตอร์สำหรับรายละเอียด
ประสิทธิภาพและความสำเร็จของเครื่องมือนี้ขึ้นอยู่กับไดรเวอร์อุปกรณ์ เฟิร์มแวร์และ
ฮาร์ดแวร์พื้นฐาน
ปัจจุบัน safecopy รองรับการเข้าถึง RAW ไปยังไดรฟ์ CDROM เพื่ออ่านข้อมูลโดยตรงจากซีดี
เลี่ยงการแก้ไขข้อผิดพลาดที่ขึ้นกับไดรเวอร์บางตัว สิ่งนี้สามารถเร่งการดึงข้อมูลจาก
ซีดีและลดภาระของระบบระหว่างการกู้คืน รวมทั้งเพิ่มอัตราความสำเร็จ เซฟสำเนา
ใช้สถานะดิสก์ syscall เพื่อกำหนดขนาดเซกเตอร์และการกำหนดที่อยู่ของซีดี สิ่งนี้ล้มเหลวใน
ซีดีโหมดผสมหรือหลายเซสชัน เนื่องจากเค้าโครงเซกเตอร์สามารถเปลี่ยนแปลงได้ภายในดิสก์ แต่
จะยังคงทำงานบนดิสก์ส่วนใหญ่ ดิสก์อื่นยังสามารถกู้คืนได้
โดยใช้การเข้าถึงข้อมูลระดับสูงตามปกติ Safecopy ตรวจหาประเภทดิสก์ที่เกี่ยวข้องโดยอัตโนมัติระหว่าง
สแกนหาขนาดดิสก์และบล็อก
เป็นที่ทราบกันดีว่าไดรฟ์ซีดี/ดีวีดีบางตัวทำให้บัส ATAPI ขัดข้องจากข้อผิดพลาด ทำให้อุปกรณ์
ไดรเวอร์จะหยุดทำงานเป็นเวลาไม่เกินหนึ่งนาทีต่อข้อผิดพลาด พยายามหลีกเลี่ยงการใช้เช่น
ไดรฟ์สำหรับการกู้คืนสื่อ การใช้ฟีเจอร์การเข้าถึงระดับต่ำของ safecopy อาจช่วยได้บางส่วน
พฤติการณ์
ไดรฟ์บางตัวสามารถอ่านสื่อที่ไม่ดีได้ดีกว่าตัวอื่น อย่าลืมพยายามกู้คืนข้อมูลของซีดี
และดีวีดีในไดรฟ์และคอมพิวเตอร์หลายเครื่อง คุณสามารถใช้สำเนาที่ปลอดภัยเพิ่มขึ้น
คุณสมบัติการกู้คืนเพื่ออ่านภาคที่อ่านไม่ได้ก่อนหน้านี้เท่านั้น
ความน่าเชื่อถือ
การกู้คืนข้อมูลจากสื่อที่เสียหายเป็นงานที่ละเอียดอ่อน ในกรณีที่เลวร้ายที่สุดคือความสำเร็จหรือ
ความล้มเหลวสามารถรักษาความปลอดภัยหรือทำลายทั้งบริษัทและปิดผนึกชะตากรรมส่วนตัวของผู้คนที่ได้รับผลกระทบ มันคือ
สำคัญยิ่งที่เครื่องมือใดๆ ที่เขียนขึ้นเพื่อจุดประสงค์นั้นเชื่อถือได้และเชื่อถือได้
ผู้ใช้จำเป็นต้องรู้ว่าซอฟต์แวร์กำลังทำอะไรกับฮาร์ดแวร์และข้อมูลของเขา ดิ
ผลลัพธ์ของการดำเนินการใดๆ จะต้องมีทั้งที่เข้าใจและคาดการณ์ได้
"ตัวช่วยสร้างการฟื้นคืนชีพของข้อมูลอัจฉริยะ" ที่มีพฤติกรรมภายในที่ซับซ้อนที่ไม่รู้จักอาจเป็น
เครื่องมือที่ดี แต่ไม่ตรงตามข้อกำหนดข้างต้นของผลลัพธ์ที่คาดการณ์ได้ และ . จะไม่
ผู้ใช้รู้ล่วงหน้าว่าทำอะไรกับข้อมูลของเขาบ้าง
ลำดับการทำงานของสำเนาปลอดภัยนั้นค่อนข้างง่ายเพื่อให้มั่นใจได้
การคาดการณ์ น่าเสียดายที่การเพิ่มคุณสมบัติได้เพิ่มความซับซ้อนและนำไปสู่
ผลลัพธ์ที่ไม่ได้กำหนดในอดีตเมื่อมีการรวมและแยกรายการเข้าด้วยกันโดยเฉพาะ
เมื่อผสมบล็อกขนาดต่างๆ ในกรณีที่เลวร้ายที่สุด อาจนำไปสู่การเขียนทับ
ข้อมูลในไฟล์ปลายทางในการเรียกใช้ที่เพิ่มขึ้นในภายหลังด้วยตัวเลือกเครื่องหมาย (-M)
ตั้งแต่เวอร์ชัน 1.3 เป็นต้นไป Safecopy จะจัดส่งพร้อมชุดทดสอบที่สามารถใช้ตรวจสอบสำเนาปลอดภัยได้
พฤติกรรมในชุดของกรณีทดสอบ จำลองการรวมกันของบล็อกที่ไม่ดีในการป้อนข้อมูลด้วย
รายการรวมและไม่รวมที่แตกต่างกันทั้งที่มีและไม่มีการทำเครื่องหมาย ออกจำหน่ายเท่านั้น
ถ้า safecopy ผ่านกรณีทดสอบเหล่านั้นตามข้อกำหนด
ข้อมูลจำเพาะที่เป็นข้อความของพฤติกรรมของสำเนาปลอดภัยสามารถพบได้ในไฟล์
specification.txt ที่จัดส่งมาพร้อมกับ safecopy
OPTIONS
--เวที 1
ตั้งค่าไว้ล่วงหน้าเพื่อกู้คืนข้อมูลส่วนใหญ่อย่างรวดเร็ว ไม่ต้องลองใหม่ และหลีกเลี่ยงพื้นที่ที่เสียหาย
ค่าที่ตั้งไว้: -f 10% -r 10% -R 1 -Z 0 -L 2 -M BaDbLoCk -o stage1.badblocks
--เวที 2
ตั้งค่าไว้ล่วงหน้าเพื่อกู้ข้อมูลมากขึ้น โดยไม่ต้องลองใหม่ แต่ค้นหาจุดสิ้นสุดของ bad . ที่แน่นอน
พื้นที่
ค่าที่ตั้งไว้: -f 128* -r 1* -R 1 -Z 0 -L 2 -I stage1.badblocks -o stage2.badblocks
--เวที 3
ตั้งค่าล่วงหน้าเพื่อช่วยเหลือทุกอย่างที่สามารถช่วยชีวิตได้โดยใช้การลองใหม่สูงสุด หัว
เทคนิคการปรับใหม่และการเข้าถึงระดับต่ำ
ค่าที่ตั้งไว้: -f 1* -r 1* -R 4 -Z 1 -L 2 -I stage2.badblocks -o stage3.badblocks
ค่าที่ตั้งไว้ล่วงหน้าของสเตจทั้งหมดสามารถแทนที่ได้ด้วยตัวเลือกแต่ละรายการ
-b <ขนาด>
Blocksize สำหรับการดำเนินการอ่านเริ่มต้น ตั้งค่านี้เป็นขนาดเซกเตอร์กายภาพของคุณ
สื่อ
ค่าเริ่มต้น: พ.ศ. 1 *
ขนาดบล็อกของฮาร์ดแวร์หากรายงานโดย OS มิฉะนั้น 4096
-f <ขนาด>
บล็อกขนาดเป็นไบต์เมื่อข้ามบล็อกที่ไม่ดี การตั้งค่าที่สูงขึ้นทำให้ความเครียดน้อยลง
บนฮาร์ดแวร์ของคุณ แต่คุณอาจพลาดพื้นที่ที่ดีระหว่างสองส่วนที่ไม่ดี
ค่าเริ่มต้น: พ.ศ. 16 *
-r <ขนาด>
ความละเอียดเป็นไบต์เมื่อค้นหาจุดเริ่มต้นหรือจุดสิ้นสุดของพื้นที่ที่เสียหาย
หากคุณอ่านข้อมูลโดยตรงจากอุปกรณ์ ไม่จำเป็นต้องตั้งค่านี้ให้ต่ำกว่า
ขนาดบล็อกของฮาร์ดแวร์ อย่างไรก็ตาม บนระบบไฟล์ที่เมาท์ ให้อ่านบล็อคและฟิสิคัล
บล็อกอาจวางไม่ตรงแนว ค่าที่น้อยกว่านำไปสู่ความพยายามที่จะอ่านอย่างละเอียด
ข้อมูลที่ขอบของพื้นที่ที่เสียหาย แต่เพิ่มภาระให้กับสื่อที่เสียหาย
ค่าเริ่มต้น: พ.ศ. 1 *
-R <จำนวน>
อย่างน้อยก็มีการพยายามอ่านหลายครั้งในบล็อกแรกที่ไม่ดีของพื้นที่ที่เสียหาย
ด้วยความละเอียดขั้นต่ำ การลองใหม่อีกครั้งบางครั้งสามารถกู้คืนเซกเตอร์ที่อ่อนแอได้ แต่ที่
ค่าใช้จ่ายของความเครียดเพิ่มเติม
ค่าเริ่มต้น: 3
-Z <จำนวน>
ในแต่ละข้อผิดพลาด ให้บังคับค้นหาหัวอ่านตั้งแต่ต้นจนจบของอุปกรณ์ต้นทางเป็น
บ่อยตามที่กำหนด ที่ต้องใช้เวลา ทำให้เกิดความเครียดเพิ่มขึ้น และอาจไม่ใช่
รองรับโดยอุปกรณ์หรือไดรเวอร์ทั้งหมด
ค่าเริ่มต้น: 1
-L <โหมด>
ใช้การเรียกอุปกรณ์ระดับต่ำตามที่ระบุ:
0 อย่าใช้การโทรจากอุปกรณ์ระดับต่ำ
1 พยายามให้อุปกรณ์ระดับต่ำเรียกการกู้คืนข้อผิดพลาดเท่านั้น
2 ใช้การโทรระดับต่ำเสมอถ้ามี
คุณสมบัติระดับต่ำที่รองรับในเวอร์ชันนี้คือ:
คุณสมบัติประเภทอุปกรณ์ของระบบ
Linux cdrom/dvd บัส/รีเซ็ตอุปกรณ์
Linux cdrom อ่านเซกเตอร์ในโหมดดิบ
รีเซ็ตตัวควบคุมฟลอปปีลินุกซ์ twaddle
ค่าเริ่มต้น: 1
--ซิงค์ ใช้การเรียกอ่านแบบซิงโครไนซ์ (ปิดใช้งานการบัฟเฟอร์ไดรเวอร์) Safecopy จะใช้ O_DIRECT
หาก OS และ O_SYNC รองรับเป็นอย่างอื่น
ค่าเริ่มต้น: อนุญาตให้ใช้บัฟเฟอร์การอ่านแบบอะซิงโครนัสโดยระบบปฏิบัติการ
--บังคับเปิด
พยายามเปิดแหล่งที่มาอีกครั้งหลังจากข้อผิดพลาดในการอ่านที่เป็นประโยชน์สำหรับไดรฟ์ USB ที่หายไป
ออกไปชั่วคราว
การเตือน: อาจทำให้ safecopy ค้างจนกว่าจะยกเลิกด้วยตนเอง!
ค่าเริ่มต้น: ยกเลิกข้อผิดพลาด fopen()
-s <บล็อก>
เริ่มตำแหน่งที่จะเริ่มอ่าน จะสอดคล้องกับตำแหน่ง 0 ใน
ไฟล์ปลายทาง
ค่าเริ่มต้น: บล็อค 0
-l <บล็อก>
ความยาวสูงสุดของข้อมูลที่จะอ่าน
ค่าเริ่มต้น: ขนาดทั้งหมดของไฟล์อินพุต
-I <แบดบล็อกไฟล์>
โหมดที่เพิ่มขึ้น สมมติว่าไฟล์เป้าหมายมีอยู่แล้วและมีรูที่ระบุใน
ไฟล์ Badblock จะพยายามดึงข้อมูลเพิ่มเติมจากรายการ
บล็อกหรือเกินขนาดไฟล์ของไฟล์เป้าหมายเท่านั้น
การเตือน: หากไม่มีตัวเลือกนี้ ไฟล์ปลายทางจะว่างเปล่าก่อน
การเขียน. ใช้ -I /dev/null หากคุณต้องการเรียกใช้ safecopy ก่อนหน้าต่อไป
โดยไม่มีรายการ Badblock
หมายถึง: -c 0 ถ้าไม่ได้ระบุ -c
ค่าเริ่มต้น: none ( /dev/null หากได้รับ -c )
-i <ไบต์>
Blocksize เพื่อตีความ badblockfile ที่กำหนดด้วย -I
ค่าเริ่มต้น: Blocksize ตามที่ระบุโดย -b
-c <บล็อก>
คัดลอกต่อที่ตำแหน่งนี้ สิ่งนี้จะช่วยให้ดำเนินการต่อได้หากเอาต์พุตเป็นบล็อก
อุปกรณ์ที่มีขนาดคงที่เมื่อเทียบกับไฟล์ที่เติบโตได้ โดยที่ safecopy ไม่สามารถ
กำหนดว่ามันไปได้ไกลแค่ไหนแล้ว ขนาดบล็อกที่ใช้จะเหมือนกับขนาด -I
ตัวเลือก
-c 0 จะดำเนินต่อไปที่ขนาดปลายทางปัจจุบัน
หมายถึง: -I /dev/null หากไม่ได้ระบุ -I
ค่าเริ่มต้น: none ( 0 ถ้า -I ได้รับ )
-X <แบดบล็อกไฟล์>
โหมดยกเว้น หากใช้ร่วมกับ -I บล็อกที่แยกออกจะแทนที่บล็อกที่รวมอยู่
Safecopy จะไม่อ่านหรือเขียนข้อมูลใด ๆ จากพื้นที่ที่ครอบคลุมโดยการแยกบล็อค
ค่าเริ่มต้น: ไม่มี
-x <ไบต์>
Blocksize เพื่อตีความ badblockfile ที่กำหนดด้วย -X
ค่าเริ่มต้น: Blocksize ตามที่ระบุโดย -b
-o <แบดบล็อกไฟล์>
เขียนไฟล์ Badblock ที่เข้ากันได้กับ Badblocks/e2fsck
ค่าเริ่มต้น: ไม่มี
-S <ค้นหาสคริปต์>
ใช้สคริปต์ภายนอกเพื่อค้นหาในไฟล์อินพุต (อาจเป็นประโยชน์สำหรับอุปกรณ์เทป
และที่คล้ายกัน) Seekscript ต้องเป็นไฟล์ปฏิบัติการที่ใช้จำนวนบล็อกถึง
ถูกข้ามเป็น argv1 (1-64) ขนาดบล็อกเป็นไบต์เป็น argv2 และตำแหน่งปัจจุบัน
(เป็นไบต์) เป็น argv3 ค่าที่ส่งคืนจะต้องเป็นจำนวนบล็อกสำเร็จ
ข้ามหรือ 0 เพื่อบ่งชี้ความล้มเหลวในการค้นหา จะใช้ตัวค้นหาภายนอกเท่านั้น
ถ้า lseek() ล้มเหลวและเราจำเป็นต้องข้ามผ่านข้อมูล
ค่าเริ่มต้น: ไม่มี
-M <เชือก>
ทำเครื่องหมายข้อมูลที่ยังไม่ได้กู้คืนด้วยสตริงนี้แทนที่จะข้ามไป สิ่งนี้ช่วยได้ในภายหลัง
การค้นหาไฟล์ที่เสียหายจากอิมเมจระบบไฟล์ที่กู้คืน ค่าเริ่มต้นคือศูนย์
ข้อมูลที่อ่านไม่ได้ในการสร้างไฟล์เอาท์พุตและปล่อยให้ข้อมูลเป็นอยู่บนใดๆ
เรียกใช้ในภายหลัง
การเตือน: เมื่อใช้ร่วมกับโหมดที่เพิ่มขึ้น (-I) อาจเขียนทับ
ข้อมูลในบล็อกใด ๆ ที่เกิดขึ้นในไฟล์ -I บล็อกไม่อยู่ในไฟล์ -I หรือ
ครอบคลุมโดยไฟล์ที่ระบุด้วย -X จะถูกบันทึกจากการถูกเขียนทับ
ค่าเริ่มต้น: ไม่มี
--debug <ระดับ>
เปิดใช้งานการดีบักเอาต์พุต ระดับเป็นฟิลด์บิต เพิ่มค่าร่วมกันสำหรับ more
ข้อมูล:
การไหลของโปรแกรม: 1
การควบคุม IO: 2
เครื่องหมาย Badblock: 4
กำลังค้นหา: 8
โหมดที่เพิ่มขึ้น: 16
ไม่รวมโหมด: 32
หรือสำหรับเอาต์พุตการดีบักทั้งหมด: 255
ค่าเริ่มต้น: 0
-T <เวลาไฟล์>
เขียนข้อมูลเวลาอ่านเซกเตอร์ลงในไฟล์นี้เพื่อการวิเคราะห์ในภายหลัง
ค่าเริ่มต้น: ไม่มี
-h, --ช่วยด้วย
แสดงข้อความช่วยเหลือของโปรแกรม
พารามิเตอร์
พารามิเตอร์ที่ถูกต้องสำหรับ -f -r -b ตัวเลือกคือ:
จำนวนไบต์ - เช่น 1024
%
เปอร์เซ็นต์ของขนาดไฟล์/อุปกรณ์ทั้งหมด - เช่น 10%
*
-b เท่านั้น จำนวนครั้งที่บล็อกขนาดที่รายงานโดย OS
*
-f และ -r เท่านั้น จำนวนคูณค่าของ -b
เอาท์พุท
คำอธิบายของสัญลักษณ์เอาต์พุต:
. อ่านสำเร็จระหว่าง 1 ถึง 1024 บล็อก
_ การอ่านบล็อกไม่สมบูรณ์ (อาจเป็นจุดสิ้นสุดของไฟล์) ขนาดบล็อกลดลงแล้ว
เพื่ออ่านส่วนที่เหลือ
- การค้นหาล้มเหลว สามารถอ่านแหล่งที่มาได้ตามลำดับเท่านั้น
> การอ่านล้มเหลว กำลังลดขนาดบล็อกเพื่ออ่านข้อมูลบางส่วน
! ข้อผิดพลาดระดับต่ำในการพยายามอ่านขนาดที่เล็กที่สุดที่อนุญาตจะนำไปสู่การลองใหม่
พยายาม.
[xx](+ปป){
บล็อกปัจจุบันและจำนวนไบต์อ่านได้สำเร็จอย่างต่อเนื่องจนถึงจุดนี้
X การอ่านล้มเหลวในบล็อกที่มีขนาดบล็อกขั้นต่ำและถูกข้ามไป ข้อผิดพลาดที่ไม่สามารถกู้คืนได้
ไฟล์ปลายทางถูกเสริมด้วยศูนย์ ข้อมูลถูกข้ามไปจนสิ้นสุด
ถึงพื้นที่ที่ไม่สามารถอ่านได้
< การอ่านที่สำเร็จหลังจากจุดสิ้นสุดของพื้นที่ที่ไม่ดีทำให้เกิดการย้อนรอยโดยมีขนาดเล็กลง
blocksizes เพื่อค้นหาข้อมูลแรกที่อ่านได้
}[xx](+ปป)
บล็อกปัจจุบันและจำนวนไบต์ของข้อมูลที่อ่านไม่ได้อย่างต่อเนื่องล่าสุด
วิธีทำ
ฉันจะทำอย่างไร...
- ฟื้นคืนชีพไฟล์จากสื่อที่ต่อเชื่อมแต่เสียหาย สำเนานั้นจะล้มเหลวใน:
เซฟสำเนา /path/to/problemfile ~/บันทึกไฟล์
- สร้างอิมเมจระบบไฟล์ของดิสก์/cdrom ที่เสียหาย:
เซฟสำเนา /dev/อุปกรณ์ ~/ดิสก์อิมเมจ
- ฟื้นข้อมูลให้ละเอียดที่สุด?
เซฟสำเนา แหล่งปลายทาง -f 1* -R 8 -Z 2
(สมมติว่าการวางแนวตรรกะของบล็อกไปยังเซกเตอร์)
เซฟสำเนา ต้นทาง dest -f 1* -r 1 -R 8 -Z 2
- ฟื้นข้อมูลให้เร็วที่สุดหรือ
- ฟื้นคืนข้อมูลโดยมีความเสี่ยงต่ำที่จะทำลายสื่อเพิ่มเติม:
(คุณสามารถใช้ค่าที่สูงกว่าสำหรับ -f และ -r)
เซฟสำเนา แหล่งที่มา dest -f 10% -R 0 -Z 0
- ฟื้นคืนข้อมูลบางส่วนอย่างรวดเร็ว จากนั้นอ่านข้อมูลเพิ่มเติมอย่างละเอียดในภายหลัง:
เซฟสำเนา แหล่งที่มา dest -f 10% -R 0 -Z 0 -o badblockfile
เซฟสำเนา แหล่งที่มา dest -f 1* -R 8 -Z 2 -I badblockfile
สลับกัน เข้าใกล้ ด้วย ใหม่ ตั้งล่วงหน้า คุณสมบัติ:
เซฟสำเนา แหล่งที่มาปลายทาง --stage1
เซฟสำเนา แหล่งที่มาปลายทาง --stage2
เซฟสำเนา แหล่งที่มาปลายทาง --stage3
- ใช้ไดรฟ์ซีดีรอมเพื่อนเพื่อกรอกข้อมูลจากซีดีที่เสียหายของฉัน:
เซฟสำเนา /dev/mydrive ภาพไฟล์ -b -o myblockfile
เซฟสำเนา /dev/otherdrive ภาพไฟล์ -b -I myblockfile
-ผม -o otherblockfile
เซฟสำเนา /dev/anotherdrive ภาพไฟล์ -b -ผม
otherblockfile -i
- ขัดจังหวะและดำเนินการกู้ข้อมูลต่อ:
เซฟสำเนา แหล่งปลายทาง
(ยกเลิกเซฟสำเนา)
เซฟสำเนา แหล่งที่มาปลายทาง -I /dev/null
- ขัดจังหวะและดำเนินการกู้คืนข้อมูลต่อด้วยเอาต์พุต Badblock ที่ถูกต้อง:
เซฟสำเนา แหล่งปลายทาง -o badblockfile
(ยกเลิกเซฟสำเนา)
mv badblockfile ที่บันทึกไว้badblockfile
เซฟสำเนา แหล่งที่มา dest -I /dev/null -o badblockfile
แมว badblockfile >>savedbadblockfile
- ขัดจังหวะและดำเนินการต่อในโหมดที่เพิ่มขึ้น:
(ต้องใช้สคริปต์ทุบตีเล็กน้อยเพื่อรับรายการ Badblock ที่ถูกต้อง)
เซฟสำเนา แหล่งปลายทาง -o badblockfile1
เซฟสำเนา แหล่งปลายทาง -I badblockfile1 -o badblockfile2
(ยกเลิกเซฟสำเนา)
ล่าสุด=$( tail -n 1 badblockfile2 )
ถ้า [ -z $ล่าสุด ]; แล้วล่าสุด=-1; ไฟ;
cat badblockfile1 | ในขณะที่อ่านบล็อก ทำ
[ $block -gt $latest ] && echo $block >>badblockfile2;
เสร็จแล้ว;
เซฟสำเนา แหล่งปลายทาง -I badblockfile2 -o badblockfile3
- ค้นหาไฟล์ที่เสียหายในระบบไฟล์ที่ได้รับการช่วยเหลือสำเร็จบางส่วน:
เซฟสำเนา /dev/อิมเมจระบบไฟล์ -M CoRrUpTeD
ฟค ภาพ
ภูเขา -o ภาพวนซ้ำ /mnt/mountpoint
grep -R /mnt/จุดต่อเชื่อม "CoRrUpTeD"
(คำใบ้: อาจไม่พบไฟล์ที่ได้รับผลกระทบทั้งหมดหากส่วนที่อ่านไม่ได้มีขนาดเล็กลง
มีขนาดมากกว่าสายเครื่องหมายของคุณ)
- แยกรายการ Badblocks ที่รู้จักก่อนหน้านี้ของระบบไฟล์ออกจากอิมเมจระบบไฟล์
การสร้าง:
ทิ้ง2fs -b /dev/filesystem >badblocklist
เซฟสำเนา /dev/อิมเมจระบบไฟล์ -X badblocklist -x
- สร้างภาพอุปกรณ์ที่เริ่มต้นที่ X และมีขนาด Y:
เซฟสำเนา /dev/filesystem -b -s -l
- รวมสองภาพบางส่วนของข้อมูลที่ได้รับการช่วยเหลือโดยไม่ต้องเข้าถึงแหล่งที่มา (เสียหาย) จริง
ข้อมูล:
(ซึ่งค่อนข้างยุ่งยาก คุณต้องได้รับรายการ Badblock สำหรับทั้งสองไฟล์ถึงจะ
ทำให้ safecopy รู้ว่าข้อมูลที่ขาดหายไปอยู่ที่ไหน หากคุณใช้คุณสมบัติ -M (เครื่องหมาย) คุณ
อาจสามารถคำนวณสิ่งเหล่านี้ได้โดยอัตโนมัติ แต่ไม่มีคุณสมบัตินี้ให้
โดยเซฟสำเนา ให้ถือว่าคุณมีไฟล์ Badblock สองไฟล์
คุณมี:
ภาพ1.dat
image1.badblocks (ขนาดบล็อก1)
ภาพ2.dat
image2.badblocks (ขนาดบล็อก2)
ขนาดไฟล์ของ image1 ต้องมากกว่าหรือเท่ากับขนาดของ image2 (ถ้าไม่,
สลับกัน) )
cp image2.dat รวม.dat
เซฟสำเนา image1.dat รวม.dat -I image2.badblocks -i blocksize2 -X
image1.badblocks -x ขนาดบล็อก1
(สิ่งนี้ทำให้คุณได้รับข้อมูลที่รวมกัน แต่ไม่มีรายการบล็อกที่ไม่ดีผลลัพธ์ ผลลัพธ์
รายการ Badblocks จะเป็น Badblocks ที่
a: ในรายการ Badblock ทั้งสองรายการ หรือ
b: ใน image1.badblocks และเกินขนาดไฟล์ของ image2 มันควรจะสมเหตุสมผล
ง่ายต่อการแก้ไขตรรกะนี้ในเชลล์สคริปต์สั้น ๆ สักวันหนึ่งสิ่งนี้อาจจะถูกจัดส่ง
ด้วย safecopy จนกว่าจะถึงตอนนั้น ให้พิจารณาว่านี่เป็นโอกาสของคุณที่จะมีส่วนร่วมในการสุ่มเปิด
โครงการต้นทาง)
- ข้อมูลกู้ภัยของอุปกรณ์เทป:
หากไดรเวอร์อุปกรณ์เทปรองรับ lseek() ให้ถือว่าเป็นไฟล์ใด ๆ มิฉะนั้นให้ใช้
ตัวเลือก "-S" ของ safecopy พร้อม a เป็นสคริปต์ที่เขียนเองเพื่อข้ามสิ่งที่ไม่ดี
บล็อก (เช่น การใช้ "mt Seek") ตรวจสอบให้แน่ใจว่าอุปกรณ์เทปของคุณไม่อัตโนมัติ
ย้อนกลับเมื่อใกล้ ส่งคำติชมถึงฉันหากคุณโชคดีที่ทำเช่นนั้น ฉันจะได้อัปเดต
เอกสารนี้
คำถามที่พบบ่อย
ถาม: ทำไมต้องสร้างเครื่องมือนี้ หากมีบางอย่างเช่น dd-rescue และเครื่องมืออื่นๆ
เพื่อจุดประสงค์นั้น?
ตอบ: เพราะฉันไม่รู้ว่า dd(-)rescue เมื่อเริ่มต้นและฉันรู้สึกเหมือนมัน ฉันยัง
คิดว่า safecopy เหมาะสมกับความต้องการของผู้ใช้ในอันตรายจากการสูญหายของข้อมูลได้ดีขึ้นเนื่องจาก more
เอาต์พุตที่อ่านได้และตัวเลือกที่เข้าใจง่ายกว่าเครื่องมืออื่นๆ
(แล้วฉันลำเอียงอีกครั้ง เปรียบเทียบด้วยตัวเอง) ในขณะเดียวกัน safecopy รองรับต่ำ
คุณสมบัติระดับที่เครื่องมืออื่นไม่ทำ
ถาม: ตัวเลือก -Z ทำอะไรกันแน่
ตอบ: จำย้อนกลับไปใน MS-DOS ครั้งเมื่อฟลอปปีส่งเสียง "นีก นาค" 3 ครั้ง
ทุกครั้งที่พบข้อผิดพลาดในการอ่าน? สิ่งนี้เกิดขึ้นเมื่อดิสก์ BIOS หรือ DOS
คนขับย้ายหัว IO ไปยังขอบเขตเพื่อแก้ไขกระบอกสูบขนาดเล็ก
ผิดตำแหน่งก่อนที่จะลองอีกครั้ง ลินุกซ์ไม่ได้ทำอย่างนั้นโดยปริยาย, ก็ไม่ทำ
ไดรฟ์ซีดีรอมทั่วไปหรือไดรเวอร์ อย่างไรก็ตาม การบังคับพฤติกรรมนี้ก็สามารถเพิ่มขึ้นได้
โอกาสในการอ่านเซกเตอร์เสียจากซีดี __BIG__ ครั้ง (ต่างจากฟลอปปี้ที่
มักจะมีผลเพียงเล็กน้อย)
ถาม: อะไรคือโอกาสที่ดีที่สุดของฉันในการฟื้นคืนชีพซีดีที่อ่านไม่ออก?
ตอบ: ลองสร้างอิมเมจสำรองในคอมพิวเตอร์และไดรฟ์ต่างๆ ความสามารถที่จะ
อ่านจากสื่อไม่ดีต่างกันมาก ฉันมีไดรฟ์ Lite On CDRW อายุ 6 ขวบ นั่น
แม้กระทั่งอ่านแผ่นซีดีที่มีรอยขีดข่วนอย่างลึกซึ้งและตั้งใจ (เช่นเดียวกับคีย์ของฉัน เพื่อสร้างมัน
ไม่สามารถอ่านได้) ไม่มีที่ติ ไดรฟ์ CDRW ที่มีอายุเท่ากันในที่ทำงานไม่อ่านข้อมูลใดๆ
จากส่วนนั้นของซีดีเลย ในขณะที่ดีวีดีและคอมโบไดรฟ์ส่วนใหญ่มีบล็อคที่ไม่ดี
ทุกสองสามร้อยไบต์ ใช้ประโยชน์จากคุณสมบัติการเข้าถึง RAW ของสำเนาที่ปลอดภัยหาก
ใช้บังคับ (-L 2 ตัวเลือก)
ตามแนวทางทั่วไป:
- ไดรฟ์ CDRW มักจะทำได้ดีกว่าไดรฟ์ซีดีแบบอ่านอย่างเดียว
- ไดรฟ์ซีดีเท่านั้นบางครั้งทำบนซีดีได้ดีกว่าไดรฟ์ดีวีดี
- ไดรฟ์พีซีบางครั้งดีกว่าไดรฟ์แล็ปท็อป
- การขับรถด้วยเลนส์ที่สะอาดย่อมดีกว่าบอลสกปรก
- การล้างซีดีช่วยได้
- เว้นแต่คุณใช้สารเคมี
-การใช้เทปกาวติดบนแผ่นซีดีจะฉีกชั้นสะท้อนแสงออกอย่างถาวร
ดิสก์ไม่สามารถอ่านได้
ถาม: โอกาสที่ดีที่สุดของฉันในการฟื้นคืนชีพฟลอปปี้ที่อ่านไม่ออกคืออะไร
ตอบ: ลองใช้ฟลอปปีไดรฟ์อื่นอีกครั้ง จำไว้ว่ามันอาจจะง่ายกว่าที่จะไปต่อ
สร้างความเสียหายให้กับข้อมูลบนฟลอปปี้ที่แย่กว่าในซีดี (อย่าหักโหมพยายามอ่าน)
ถาม: แล้วดิสก์ BlueRay/HDDVD ล่ะ
ตอบ: ถ้าฉันรู้ แต่โดยทั่วไปแล้วควรจะคล้ายกับดีวีดี มันคงขึ้นอยู่กับ
การทำงานของเฟิร์มแวร์ของไดรฟ์
ถาม: จู่ๆ ฮาร์ดไดรฟ์ของฉันก็มีเซกเตอร์เสียจำนวนมาก ฉันควรทำอย่างไร
ตอบ: ความเร็วเป็นปัจจัยสำคัญในการกู้ข้อมูลจากฮาร์ดไดรฟ์เสีย เข้าถึง
พื้นที่ที่ไม่ดีหรือแม้กระทั่งการวิ่งเพียงชั่วครั้งชั่วคราวก็สามารถสร้างความเสียหายให้กับไดรฟ์และทำให้เป็นเหมือนเดิมได้
บริเวณที่อ่านได้อ่านไม่ออก ไม่ว่าจะเป็นเพราะอุณหภูมิสูงขึ้น หัวที่เสียหายเป็นรอย
ส่วนที่ดีของพื้นผิวยังคงดี แบริ่งเสื่อมสภาพเนื่องจากการสั่นสะเทือน ฯลฯ
แนะนำให้ปิดระบบและถอดฮาร์ดไดรฟ์ออกจากคอมพิวเตอร์เช่น
ทันทีที่เกิดข้อผิดพลาดและเร็วที่สุดโดยไม่ก่อให้เกิดความเสียหายเพิ่มเติม
(อย่าดึงปลั๊ก! กดรีเซ็ตเพื่อบังคับให้รีบูตแล้วปิดเครื่องโดยใช้พลังงาน
ปุ่ม/ACPI)
ตั้งค่าระบบกู้ภัยที่มีพื้นที่ว่างในดิสก์เพียงพอเพื่อจัดเก็บข้อมูลทั้งหมดจาก
ไดรฟ์เสียหาย (และอาจมีหลายสำเนา) หากคุณมีฮาร์ดภายนอก
เคสของไดรฟ์ที่เชื่อมต่อผ่าน USB SATA หรือ SCSI ทำให้สามารถเสียบ hot plug ของไดรฟ์ได้
เข้าสู่ระบบที่ใช้อยู่ นี้ช่วยให้คุณเตรียมทุกอย่างโดยไม่ต้อง
ต้องการให้ไดรฟ์เปิดเครื่องและอาจเป็น BIOS หรือระบบปฏิบัติการโดยไม่ตั้งใจ
การเข้าถึงมัน คุณยังเข้าถึงไดรฟ์ได้ง่ายขึ้นเพื่อตรวจสอบอุณหภูมิหรือ
เสียงรบกวนระหว่างการทำงาน
เมื่อคุณกู้ข้อมูล ให้กู้ข้อมูลที่ดีก่อนที่จะพยายามเข้าถึงข้อมูลที่ไม่ดี
ภาค Safecopy ให้คุณข้ามส่วนปัญหาที่ทราบได้โดยใช้การยกเว้น Badblock
ไฟล์ (-X) ที่คุณอาจดึงได้จากบันทึกของระบบหรือจากไดรฟ์
บันทึกภายใน ผ่าน smartmontools หรือซอฟต์แวร์ที่คล้ายกัน โปรดทราบว่าคุณอาจ
อาจจำเป็นต้องแปลงหมายเลขเซกเตอร์กายภาพเป็นหมายเลขบล็อกลอจิก
ขึ้นอยู่กับแหล่งที่มาของคุณ
นอกจากนี้คุณควรบอก safecopy ให้กระโดดออกจากพื้นที่ที่มีปัญหาโดยเร็วที่สุดและ
ไปต่อที่อื่น พารามิเตอร์ "-f 10% -r 10% -R 0 -Z 0" จะใช้กลอุบายโดย
การทำสำเนาปลอดภัยข้าม 10% ของเนื้อหาอุปกรณ์และดำเนินการต่อโดยไม่ต้อง
ย้อนรอย คุณสามารถลองรับข้อมูลในภายหลังได้เสมอ ก่อนอื่นให้รับ
ข้อมูลที่ดีที่คาดคะเนในส่วนที่เหลือของไดรฟ์ ขึ้นอยู่กับวิธีการของข้อมูล
การกู้คืนที่คุณวางแผนจะใช้ อาจเหมาะสมที่จะทำเครื่องหมายข้อมูลที่ไม่ถูกต้องด้วย "-M"
ตัวเลือก. ซึ่งช่วยให้คุณสามารถค้นหาไฟล์ที่ได้รับผลกระทบจากข้อมูลเสียหายได้ในภายหลัง
อย่างง่ายดาย. ใช้ตัวเลือก "-o" เพื่อให้ safecopy เขียนรายการ badblock พร้อมบล็อกทั้งหมด
ข้ามหรืออ่านไม่ได้
เมื่อ safecopy เสร็จสิ้นในการรันครั้งแรก คุณสามารถลองครั้งที่สองเพื่อลอง
รับข้อมูลเพิ่มเติม ใช้ค่าที่น้อยกว่าสำหรับ "-f" และอนุญาตให้ safecopy ย้อนรอยสำหรับ
จุดสิ้นสุดของพื้นที่ที่ได้รับผลกระทบ "-r 1*" อย่าลืมใช้โหมดที่เพิ่มขึ้น "-I" ถึง only
อ่านบล็อกที่ข้ามไปในการรันครั้งแรก
อาจทำให้ไดรฟ์เย็นลงระหว่างการวิ่งได้ เมื่อคุณได้รับทั้งหมด
ข้อมูลจากส่วน "ดี" ของไดรฟ์อาจทำให้คุณเสี่ยงที่จะเข้าถึงข้อมูล "อย่างละเอียด" ได้มากขึ้น
เพิ่มจำนวนครั้งในการลองใหม่ "-R" ในกรณีของบล็อกเสีย อาจร่วมกับ a
การปรับศีรษะ "-Z 1" "-f 1*" จะทำให้ safecopy พยายามอ่านทุก ๆ ตัว
บล็อกไม่ข้ามพื้นที่ที่ไม่ดีเลย
หากไดรฟ์ของคุณไม่ตอบสนอง ให้ปิดเครื่อง ปล่อยให้เครื่องเย็นลงครู่หนึ่ง จากนั้น
ลองอีกครั้ง.
(ได้ยินมาจากคนที่เอาซากรถกลับคืนมาอยู่ได้ไม่นานโดย
ทำให้เย็นลงที่อุณหภูมิต่ำด้วยก้อนน้ำแข็ง)
!!! หากข้อมูลมีความสำคัญมาก ให้ไปที่ผู้เชี่ยวชาญด้านการกู้คืนข้อมูลมืออาชีพ
ทันทีก่อนที่จะสร้างความเสียหายเพิ่มเติมให้กับไดรฟ์
EXIT สถานภาพ
safecopy คืนค่า 0 (ศูนย์) หากไม่มีข้อผิดพลาดที่ไม่สามารถกู้คืนได้
safecopy คืนค่า 1 หากข้อมูลบางอย่างไม่สามารถกู้คืนได้
safecopy คืนค่า 2 ในกรณีที่การคัดลอกถูกยกเลิกเนื่องจากข้อผิดพลาดหรือสัญญาณ
ผู้เขียน
safecopy และ manpage ได้รับการออกแบบและเขียนโดย CorvusCorax
ใช้ safecopy ออนไลน์โดยใช้บริการ onworks.net