dd ใช้เพื่อ dev USB ก่อนที่จะเชื่อมต่อเสียหาย / dev / sdX และไม่ทำงาน


1

ฉันมี USB ที่ฉันจัดการกับ ISO 5 Mb aprox กับระบบปฏิบัติการขนาดเล็กที่มีด้วงของตัวเอง ถ้าฉันเชื่อมต่ออุปกรณ์และตรวจสอบมันsudo fdisk -lฉันได้รับ:

...
Device     Boot Start   End Sectors  Size Id Type
/dev/sdb1  *        1  9551    9551  4.7M cd unknown

ถ้าฉันคัดลอกด้วย dd ISO sudo dd if = my_os.iso of = / dev / sdb

14852+0 records in
14852+0 records out
7604224 bytes (7.6 MB) copied, 0.538487 s, 14.1 MB/s

มันทำงานได้อย่างสมบูรณ์ การบูตจาก BIOS ในพีซีเครื่องอื่น

ปัญหาคือบางครั้งฉันลืมเชื่อมต่อ USB หลังจากอัปเดต BIOS ดังนั้นฉันจะ ff โดยไม่ต้องเชื่อมต่อ USB ผลลัพธ์คือ:

14852+0 records in
14852+0 records out
7604224 bytes (7.6 MB) copied, 0.00987684 s, 770 MB/s

ขณะนี้การลงทะเบียน / dev / sdb เสียหายความเร็วในการคัดลอก (770 MB / s) ไม่สมเหตุสมผลและผู้ใช้ไม่สามารถ dd อีกครั้งจนกว่าจะรีบูต

ฉันพยายามซ่อมแซมด้วย ddrescue และใช้งานไม่ได้

sudo ddrescue /dev/zero /dev/sdb conv=noerror,sync

คำถามของฉันคือสิ่งที่เกิดขึ้นตรงและถ้าเป็นไปได้วิธีการซ่อมแซม / dev / sdb เพื่อหลีกเลี่ยงการรีบูตและ dd เริ่มทำงานอีกครั้ง?

ขอบคุณ

คำตอบ:


5

โหนดอุปกรณ์เช่น/dev/sd*แสดงเฉพาะใน / dev หลังจากอุปกรณ์เชื่อมต่อไม่ใช่ก่อนหน้า (นอกจากนี้พวกเขาจะไม่ถูกเรียกว่า "registers") ดังนั้นเมื่อคุณรันdd of=/dev/sdbมันก็ไม่ได้สัมผัสอุปกรณ์ใด ๆ - แทนเนื่องจากไฟล์เอาต์พุตไม่มีอยู่dd สร้างไฟล์ใหม่ด้วยชื่อนั้น

$ sudo dd if = archlinux-2016.04.01-dual.iso of = / dev / sdc
1482752 + 0 รายการใน
1482752 + 0 บันทึกออก
759169024 ไบต์ (759 MB, 724 MiB) คัดลอก, 0.941926 s, 806 MB / s

$ ls -l / dev / sd *
brw-rw ---- 1 รูตดิสก์ 8, 0 Jun 15 08:54 / dev / sda
brw-rw ---- 1 root disk 8, 16 Jun 15 14:14 / dev / sdb
-rw-r - r-- 1 รูทราก 724M 15 มิ.ย. 15:06 / dev / sdc

ดังนั้นจึงไม่มีอะไรที่จะ "เสียหาย" และไม่มีอะไรที่เหมาะสมที่จะ "ซ่อมแซม" หรือ ddrescue คุณเพียงแค่มีไฟล์ขนาดใหญ่ชื่อ/dev/sdbและเนื่องจากมันมีอยู่เคอร์เนลไม่สามารถสร้างโหนดอุปกรณ์จริงที่นั่น

(ความเร็วในการเขียนเหมาะสมมาก - /devเก็บไว้ใน RAM ดังนั้นคุณเพิ่งคัดลอกรูปภาพจาก RAM ที่เก็บไว้แคชกลับไปที่ RAM ที่ / dev อยู่)

ลบ/dev/sdbและเชื่อมต่ออุปกรณ์อีกครั้งและโหนดอุปกรณ์จริงควรปรากฏขึ้นอีกครั้ง

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