Score:0

ลำดับปกติของข้อความใน dmesg คืออะไรเมื่อ USB HDD ล้มเหลว

ธง mu

ฉันมีฮาร์ดไดรฟ์ USB ที่เชื่อมต่อกับเซิร์ฟเวอร์ Debian GNU/Linux ฉันกำลังพยายามจัดรูปแบบ (NTFS) ด้วยคำสั่งนี้:

# mkntfs -v /dev/sdd1

ซึ่งใช้เวลาไม่กี่ชั่วโมงเพราะมันตรวจสอบดิสก์ด้วย ขณะทำการตรวจสอบ dmesg -T แสดงสิ่งต่อไปนี้:

[วันพุธที่ 12 มกราคม 15:22:53 น. 2565] sd 9:0:0:0: [sdd] แนบดิสก์ SCSI
[พุธ 12 ม.ค. 18:03:26 น. 2565] usb 1-4: ปลด USB, อุปกรณ์หมายเลข 5
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] blk_update_request: ข้อผิดพลาด I/O, dev sdd, เซกเตอร์ 621745808 op 0x1:(WRITE) แฟล็ก 0x104000 phys_seg 240 prio คลาส 0
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] ข้อผิดพลาดบัฟเฟอร์ I/O บน dev sdd1, บล็อกตรรกะ 621743760, การเขียนหน้า async หายไป
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] ข้อผิดพลาดบัฟเฟอร์ I/O บน dev sdd1, บล็อกตรรกะ 621743761, การเขียนหน้า async หายไป
   (...และต่อไปอีกสองสามบรรทัด)
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] blk_update_request: ข้อผิดพลาด I/O, dev sdd, ภาค 621746048 op 0x1:(WRITE) ตั้งค่าสถานะ 0x104000 phys_seg 240 คลาส prio 0
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] blk_update_request: ข้อผิดพลาด I/O, dev sdd, ภาค 621746288 op 0x1:(WRITE) ตั้งค่าสถานะ 0x100000 phys_seg 8 prio คลาส 0
[วันพุธที่ 12 มกราคม 18:03:26 น. 2565] blk_update_request: ข้อผิดพลาด I/O, dev sdd, ภาค 621746296 op 0x1:(WRITE) ตั้งค่าสถานะ 0x800 phys_seg 16 prio คลาส 0
   (...และต่อไปอีกสองสามบรรทัด)
[วันพุธที่ 12 มกราคม 18:03:31 น. 2565] buffer_io_error: 9015384 ระงับการโทรกลับ
   (...ข้อผิดพลาดอื่นๆ...)

เมื่อดูข้อความแสดงข้อผิดพลาดจำนวนมาก ฉันจะบอกว่า HDD เกือบตายแล้ว แต่ดูเหมือนว่าการเชื่อมต่อกับพีซีที่ใช้ Windows จะใช้งานได้ นอกจากนี้ข้อผิดพลาดแรก (usb 1-4: ปลดการเชื่อมต่อ USB หมายเลขอุปกรณ์ 5) ที่เข้ามา dmesg ก่อนข้อผิดพลาดอื่นๆ ทำให้ฉันสงสัยว่าปัญหาไม่ได้อยู่ที่ตัว HDD เอง แต่เป็นอย่างอื่นที่ทำให้ HDD ขาดการเชื่อมต่อในตอนแรก และข้อผิดพลาดที่ตามมาอาจเป็นผลมาจากการตัดการเชื่อมต่ออย่างชัดเจน

อย่างไรก็ตามฉันไม่ค่อยมีประสบการณ์ใน dmesg เอาต์พุต ดังนั้นจึงเป็นไปได้มากที่ฉันอ่านผิด

แก้ไข: ตามที่ร้องขอโดย NiKiZe นี่คือผลลัพธ์ของ smartctl -a /dev/sdd:

# smartctl -a /dev/sdd
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-5.10.0-3-amd64] (รุ่นในเครื่อง)
ลิขสิทธิ์ (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== จุดเริ่มต้นของส่วนข้อมูล ===
ตระกูลรุ่น: Western Digital Blue Mobile
รุ่นอุปกรณ์: WDC WD10SPCX-00KHST0
หมายเลขซีเรียล: WD-WXF1A95F0J3X
รหัสอุปกรณ์ LU WWN: 5 0014ee 65b7e0332
เวอร์ชันเฟิร์มแวร์: 01.01A01
ความจุของผู้ใช้: 1.000.204.886.016 ไบต์ [1,00 TB]
ขนาดเซกเตอร์: โลจิคัล 512 ไบต์ ฟิสิคัล 4096 ไบต์
อัตราการหมุน: 5400 รอบต่อนาที
อุปกรณ์คือ: ในฐานข้อมูล smartctl [สำหรับรายละเอียดใช้: -P แสดง]
เวอร์ชัน ATA คือ: ACS-2 (ไม่ได้ระบุการแก้ไขเล็กน้อย)
เวอร์ชัน SATA คือ: SATA 3.0, 6.0 Gb/s (ปัจจุบัน: 1.5 Gb/s)
เวลาท้องถิ่นคือ: พฤหัสบดีที่ 13 มกราคม 11:04:19 2022 CET
การสนับสนุน SMART คือ: พร้อมใช้งาน - อุปกรณ์มีความสามารถ SMART
การสนับสนุน SMART คือ: เปิดใช้งาน

=== จุดเริ่มต้นของการอ่านข้อมูลสมาร์ทส่วน ===
ไม่รองรับสถานะ SMART: การตอบสนองไม่สมบูรณ์ ไม่มีการลงทะเบียนเอาต์พุต ATA
ผลการทดสอบการประเมินตนเองด้านสุขภาพโดยรวมของ SMART: ผ่าน
คำเตือน: ผลลัพธ์นี้ขึ้นอยู่กับการตรวจสอบแอตทริบิวต์

ค่า SMART ทั่วไป:
สถานะการรวบรวมข้อมูลออฟไลน์: (0x00) กิจกรรมการรวบรวมข้อมูลออฟไลน์
                    ไม่เคยเริ่มต้น
                    การรวบรวมข้อมูลออฟไลน์อัตโนมัติ: ปิดใช้งาน
สถานะการดำเนินการทดสอบตัวเอง: ( 0) รูทีนการทดสอบตัวเองก่อนหน้านี้เสร็จสิ้น
                    โดยไม่มีข้อผิดพลาดหรือไม่มีการทดสอบตัวเองเลย 
                    ถูกเรียกใช้
เวลาทั้งหมดในการทำออฟไลน์ให้เสร็จ 
การรวบรวมข้อมูล: (16080) วินาที
การรวบรวมข้อมูลออฟไลน์
ความสามารถ: (0x7b) SMART ดำเนินการออฟไลน์ทันที
                    รองรับการเปิด/ปิดการรวบรวมข้อมูลออฟไลน์อัตโนมัติ
                    ระงับคอลเลกชันออฟไลน์เมื่อใหม่
                    สั่งการ.
                    รองรับการสแกนพื้นผิวแบบออฟไลน์
                    รองรับการทดสอบตัวเอง
                    รองรับการทดสอบตัวเองของพาหนะ
                    รองรับการทดสอบตัวเองแบบ Selective
ความสามารถ SMART: (0x0003) บันทึกข้อมูล SMART ก่อนเข้า
                    โหมดประหยัดพลังงาน.
                    รองรับตัวจับเวลาบันทึกอัตโนมัติ SMART
ความสามารถในการบันทึกข้อผิดพลาด: (0x01) รองรับการบันทึกข้อผิดพลาด
                    รองรับการบันทึกวัตถุประสงค์ทั่วไป
ขั้นตอนการทดสอบตัวเองสั้นๆ 
เวลาสำรวจที่แนะนำ: ( 2) นาที
รูทีนการทดสอบตัวเองเพิ่มเติม
เวลาสำรวจที่แนะนำ: ( 184) นาที
รูทีนการทดสอบตัวเองของพาหนะ
เวลาสำรวจที่แนะนำ: ( 5) นาที
ความสามารถของ SCT: (0x7035) รองรับสถานะ SCT
                    รองรับการควบคุมคุณสมบัติ SCT
                    รองรับตารางข้อมูล SCT

หมายเลขการแก้ไขโครงสร้างข้อมูลแอตทริบิวต์ SMART: 16
แอตทริบิวต์ SMART เฉพาะของผู้ขายที่มีเกณฑ์:
ID# ATTRIBUTE_NAME ค่าสถานะ ค่าสถานะ ประเภทที่แย่ที่สุด อัปเดตเมื่อ RAW_VALUE ล้มเหลว
  1 Raw_Read_Error_Rate 0x002f 200 200 051 ผิดพลาดล่วงหน้าเสมอ - 0
  3 Spin_Up_Time 0x0027 190 184 021 ก่อนล้มเหลวเสมอ - 1500
  4 Start_Stop_Count 0x0032 081 081 000 Old_age เสมอ - 19048
  5 Reallocated_Sector_Ct 0x0033 200 200 140 ล้มเหลวล่วงหน้าเสมอ - 0
  7 Seek_Error_Rate 0x002e 200 200 000 Old_age เสมอ - 0
  9 Power_On_Hours 0x0032 073 073 000 Old_age เสมอ - 20415
 10 Spin_Retry_Count 0x0032 100 100 000 Old_age เสมอ - 0
 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age เสมอ - 0
 12 Power_Cycle_Count 0x0032 100 100 000 Old_age เสมอ - 188
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age เสมอ - 43
193 Load_Cycle_Count 0x0032 187 187 000 Old_age เสมอ - 41054
194 อุณหภูมิ_เซลเซียส 0x0022 119 095 000 Old_age เสมอ - 28
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age เสมอ - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age เสมอ - 0
198 ออฟไลน์_แก้ไขไม่ได้ 0x0030 100 253 000 Old_age ออฟไลน์ - 0
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age เสมอ - 0
200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age ออฟไลน์ - 0

เวอร์ชันบันทึกข้อผิดพลาด SMART: 1
ไม่มีการบันทึกข้อผิดพลาด

การแก้ไขโครงสร้างบันทึกการทดสอบตัวเอง SMART หมายเลข 1
ไม่มีการบันทึกการทดสอบตัวเอง [หากต้องการเรียกใช้การทดสอบตัวเอง ให้ใช้: smartctl -t]

การแก้ไขโครงสร้างข้อมูลบันทึกการทดสอบตัวเอง SMART Selective หมายเลข 1
 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
    1 0 0 Not_testing
    2 0 0 ไม่ทดสอบ
    3 0 0 ไม่ทดสอบ
    4 0 0 ไม่ทดสอบ
    5 0 0 ไม่ทดสอบ
การตั้งค่าสถานะการทดสอบตัวเองแบบเลือก (0x0):
  หลังจากสแกนช่วงเวลาที่เลือกแล้ว อย่าอ่าน-สแกนส่วนที่เหลือของดิสก์
หากการทดสอบตัวเองแบบเลือกกำลังอยู่ระหว่างการเปิดเครื่อง ให้ดำเนินการต่อหลังจากหน่วงเวลา 0 นาที

สมมติว่า HDD นี้ล้มเหลวจริง ๆ และข้อความแสดงข้อผิดพลาดเหล่านั้นเข้ามา dmesg มีเซกเตอร์เสียจริงทำไม dmesg แสดงการตัดการเชื่อมต่อ ก่อน ข้อความเซกเตอร์เสียมากกว่าหลังจาก?

in flag
ข้อผิดพลาด I/O ดูเหมือนจะเป็นผลมาจากการตัดการเชื่อมต่อ USB แต่ใครจะรู้ว่าอุปกรณ์ USB/ดิสก์จัดการปัญหาอย่างไร บางทีอาจพยายามรีเซ็ตหรือแหล่งจ่ายไฟเสีย และทันทีที่คุณโหลดข้อมูลใด ๆ มันก็จะรีเซ็ต . ดูเหมือนจะมีช่วงเวลาระหว่างการเชื่อมต่อและการเชื่อมต่อ เกิดอะไรขึ้นในช่วงเวลานั้น?
Lucio Crusca avatar
mu flag
ในช่วงเวลานั้น `mkntfs` กำลังทำงานอยู่ (เช่น การตรวจสอบและทำให้ดิสก์มีค่าเป็นศูนย์)
in flag
เอาต์พุต smartctl ไม่แสดงปัญหาใดๆ กับดิสก์ ให้เริ่มตรวจสอบกล่องหุ้ม บางทีมันอาจจะเก่าและไม่ดี
Score:1
ธง br

การตัดการเชื่อมต่อเกิดขึ้นก่อน จากนั้นคุณจะได้รับข้อผิดพลาดหลายอย่างที่เกิดจากการตัดการเชื่อมต่อ โดยที่เลเยอร์ต่างๆ ที่สร้างดิสก์จะแจ้งว่ามีบางอย่างผิดปกติ

I/O ส่วนใหญ่เกิดขึ้นในรูปแบบของหน้าหน่วยความจำ "สกปรก" ที่มีดิสก์สำรอง ซึ่งในที่สุดเคอร์เนลก็จะล้างข้อมูลลงดิสก์ นานหลังจากที่แอปพลิเคชันยอมรับการเขียน และเลเยอร์ไดรเวอร์เท่านั้นที่มี ยังคงสนใจในคำขอคือระบบย่อยหน่วยความจำ (ที่ต้องการทราบว่าสามารถปล่อยเพจได้หรือไม่) และระบบไฟล์ (ที่ต้องสร้างการเขียนเพิ่มเติมเพื่ออัปเดตข้อมูลเมตาหลังจากเขียนข้อมูลแล้ว) - สิ่งใดก็ตามข้างต้นที่ถูกรื้อทิ้ง แล้ว.

คำขอบางรายการไม่ผ่านระบบย่อยของหน่วยความจำ (เช่น การสอบถามสถานะ SMART) คำขอบางอย่าง เช่น การอ่าน มีแนวโน้มที่จะแนบกับระบบย่อยของหน่วยความจำเท่านั้น เนื่องจากระบบไฟล์ได้ค้นหาการแมปบล็อกแล้ว และไม่จำเป็นต้องเกี่ยวข้องอีกต่อไป

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

ฉันอาจจะพยายามใช้ดิสก์บนพอร์ต SATA ที่เหมาะสม และด้วยพลังงานจากแหล่งจ่ายที่ดี -- ตัวแปลงแรงดันไฟฟ้าในกล่องหุ้ม USB-to-SATA มักจะหลบหลีกเล็กน้อย

Score:0
ธง in

โปรดพิจารณาไดรฟ์เสีย

โดยปกติจะใช้เวลาไม่นานในการฟอร์แมตไดรฟ์ อย่างไรก็ตาม การลองใหม่และรีเซ็ตบล็อกเสียต้องใช้เวลา

แน่นอนว่าอาจเป็นเพราะแหล่งจ่ายไฟไม่ดีหรืออย่างอื่น

อุปกรณ์ USB บางตัวไม่รองรับ smart passthru แต่ลอง: smartctl -a /dev/sdd มองหาโดยเฉพาะอย่างยิ่งสำหรับ Reallocated_Sector_Ct, Reallocated_Event_Count, ปัจจุบัน_รอดำเนินการ_ภาค, ออฟไลน์_ไม่สามารถแก้ไขได้ หากข้อใดข้อหนึ่งมี RAW_VALUE นอกเหนือจากนี้ 0ฉันจะพยายามหลีกเลี่ยงการใช้ดิสก์สำหรับสิ่งอื่นที่ไม่ใช่ข้อมูลที่ไม่สำคัญ

หากไม่มีข้อมูลในดิสก์ คุณสามารถลองล้างข้อมูลได้ตลอดเวลา โดยใช้บางอย่างเช่น (ที่นี่ระวัง!!!) dd if=/dev/zero of=/dev/sdd bs=4M สถานะ=ความคืบหน้า. คุณจะต้องสร้างตารางพาร์ติชันใหม่ในภายหลัง

Lucio Crusca avatar
mu flag
ขอบคุณ แต่ทำไม `dmesg` แสดงการตัดการเชื่อมต่อก่อนเซกเตอร์เสีย (ฉันได้อัปเดตคำถามของฉันเพื่อสะท้อนคำตอบที่ฉันกำลังมองหาจริงๆ)
in flag
คุณลอง `smartctl` เพื่อดูว่าไดรฟ์เสียจริงหรือไม่?
Lucio Crusca avatar
mu flag
ฉันได้อัปเดตคำถามด้วยผลลัพธ์ของ `smartctl -a /dev/sdd`

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา