วันนี้เซิร์ฟเวอร์ที่บ้านของฉันไปที่เคอร์เนลแพนิค มีบางอย่างผิดปกติกับไดรฟ์ระบบ ฉันเปลี่ยนไดรฟ์ กู้คืนเซิร์ฟเวอร์ และตอนนี้ฉันกำลังพยายามค้นหาว่าเกิดอะไรขึ้นกับไดรฟ์เก่า มันจริง เป็น ค่อนข้างเก่า ดังนั้นฉันเดาว่ามันน่าจะล้มเหลว แต่ฉันยังอยากลองเรียนรู้บางอย่างเกี่ยวกับเทคนิคการกู้คืน (และค้นหาสาเหตุที่ SMART ไม่เตือนฉัน) ตอนนี้ฉันเห็นไดรฟ์เป็น /dev/sdb และตรวจพบ lvm ที่นั่น ดังนั้นฉันจึงเปลี่ยนชื่อ ubuntu-vg เป็น ubuntu-vg-old และเปิดใช้งาน
root@แคลเซียม:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
ubuntu-lv ubuntu-vg -wi-ao---- <29.06g
การสำรองข้อมูล ubuntu-vg-old -wi-a----- 1.29t
ubuntu-lv ubuntu-vg-เก่า -wi-a----- 200.00g
น่าเสียดายที่การติดตั้งใช้งานไม่ได้และหลังจากหมดเวลานาน คำสั่งล้มเหลวทำให้ไม่สามารถเข้าถึงไดรฟ์ได้:
root@แคลเซียม:~# mount /dev/ubuntu-vg-old/ubuntu-lv /mnt -o ro ผู้ใช้
เมานต์: /mnt: ไม่สามารถอ่าน superblock บน /dev/mapper/ubuntu--vg--old-ubuntu--lv.
root@แคลเซียม:~# pvscan
เกิดข้อผิดพลาดในการอ่านอุปกรณ์ /dev/sdb ที่ 0 ความยาว 512
เกิดข้อผิดพลาดในการอ่านอุปกรณ์ /dev/sdb ที่ 0 ความยาว 4096
เกิดข้อผิดพลาดในการอ่านอุปกรณ์ /dev/sdb1 ที่ 0 ความยาว 4096
เกิดข้อผิดพลาดในการอ่านอุปกรณ์ /dev/sdb2 ที่ 0 ความยาว 4096
เกิดข้อผิดพลาดในการอ่านอุปกรณ์ /dev/sdb3 ที่ 0 ความยาว 4096
PV /dev/sda3 VG ubuntu-vg lvm2 [ฟรี 58.12 GiB / 29.06 GiB]
ทั้งหมด: 1 [58.12 GiB] / ใช้งาน: 1 [58.12 GiB] / ไม่มี VG: 0 [0 ]
หลังจากรีบูต (ฉันไม่พบวิธีอื่นที่จะทำให้สามารถเข้าถึงได้อีกครั้ง) ไดรฟ์จะกลับมา ฉันพยายามแก้ไข:
root@แคลเซียม:~# fsck /dev/mapper/ubuntu--vg--old-ubuntu--lv
fsck จาก util-linux 2.36.1
e2fsck 1.46.3 (27-ก.ค.-2021)
/dev/mapper/ubuntu--vg--old-ubuntu--lv: กำลังกู้คืนบันทึกประจำวัน
fsck.ext4: ข้อผิดพลาดอินพุต/เอาต์พุตขณะพยายามเปิดอีกครั้ง /dev/mapper/ubuntu--vg--old-ubuntu--lv
/dev/mapper/ubuntu--vg--old-ubuntu--lv: ********** คำเตือน: ระบบไฟล์ยังคงมีข้อผิดพลาด **********
แต่สิ่งนี้ทำงานเหมือนกันทุกประการกับการเมานต์ การหมดเวลานาน และไดรฟ์หลุดออกจากระบบ ฉันรันการทดสอบ Surface แบบออฟไลน์ของ SMART ในชั่วข้ามคืน (smartctl -t ออฟไลน์ /dev/sdb
) ไม่พบปัญหาใดๆ หรือเปลี่ยนแอตทริบิวต์ SMART ออฟไลน์ใดๆ การทดสอบการอ่าน Badblocks ยังทำงานได้ดีโดยไม่มีข้อผิดพลาด:
root@แคลเซียม:~# บล็อกเสีย -b 4096 -c 1024 -s -o bb.out /dev/sdb
การตรวจสอบบล็อกเสีย (การทดสอบแบบอ่านอย่างเดียว): เสร็จสิ้น
ดังนั้นฉันจึงลองทดสอบการอ่าน-เขียนแบบไม่ทำลายด้วยแบดบล็อค (บล็อกเสีย -b 4096 -c 1024 -s -n -v /dev/sdb
) และไดร์ฟจะหลุดออกจากระบบอีกครั้งหลังจากรันไปประมาณครึ่งชั่วโมง ฉันเปลี่ยนสาย SATA และเชื่อมต่อไดรฟ์กับพอร์ตอื่นแล้ว มีปัญหาอย่างชัดเจนก็ต่อเมื่อ การเขียน ไปยังภาคส่วนใดโดยเฉพาะ
มีอะไรเพิ่มเติมที่ฉันสามารถลองก่อนฟอร์แมตแบบเต็ม (ซึ่งส่วนใหญ่อาจจะล้มเหลวด้วย ฉันเดาว่า)
ข้อมูลอัจฉริยะ:
=== จุดเริ่มต้นของการอ่านข้อมูลสมาร์ทส่วน ===
ผลการทดสอบการประเมินตนเองด้านสุขภาพโดยรวมของ SMART: ผ่าน
หมายเลขการแก้ไขโครงสร้างข้อมูลแอตทริบิวต์ SMART: 16
แอตทริบิวต์ SMART เฉพาะของผู้ขายที่มีเกณฑ์:
ID# ATTRIBUTE_NAME ค่าสถานะ ค่าสถานะ ประเภทที่แย่ที่สุด อัปเดตเมื่อ RAW_VALUE ล้มเหลว
1 Raw_Read_Error_Rate 0x002f 100 100 051 ผิดพลาดล่วงหน้าเสมอ - 414
2 ปริมาณงาน_ประสิทธิภาพ 0x0026 055 051 000 Old_age เสมอ - 18840
3 Spin_Up_Time 0x0023 077 066 025 ก่อนล้มเหลวเสมอ - 7179
4 Start_Stop_Count 0x0032 094 094 000 Old_age เสมอ - 6274
5 Reallocated_Sector_Ct 0x0033 252 252 010 ล้มเหลวล่วงหน้าเสมอ - 0
7 Seek_Error_Rate 0x002e 252 252 051 Old_age เสมอ - 0
8 Seek_Time_Performance 0x0024 252 252 015 Old_age ออฟไลน์ - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age เสมอ - 31668
10 Spin_Retry_Count 0x0032 252 252 051 Old_age เสมอ - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age เสมอ - 2
12 Power_Cycle_Count 0x0032 098 098 000 Old_age เสมอ - 2286
181 Program_Fail_Cnt_Total 0x0022 100 100 000 Old_age เสมอ - 19262840
191 G-Sense_Error_Rate 0x0022 099 099 000 Old_age เสมอ - 11132
192 Power-Off_Retract_Count 0x0022 252 252 000 Old_age เสมอ - 0
194 Temperature_Celsius 0x0002 064 044 000 Old_age เสมอ - 35 (ต่ำสุด/สูงสุด 14/56)
195 Hardware_ECC_Recovered 0x003a 100 100 000 Old_age เสมอ - 0
196 Reallocated_Event_Count 0x0032 252 252 000 Old_age เสมอ - 0
197 Current_Pending_Sector 0x0032 087 083 000 Old_age เสมอ - 1617
198 ออฟไลน์_แก้ไขไม่ได้ 0x0030 252 084 000 Old_age ออฟไลน์ - 0
199 UDMA_CRC_Error_Count 0x0036 200 200 000 Old_age เสมอ - 0
200 Multi_Zone_Error_Rate 0x002a 100 100 000 Old_age เสมอ - 235
223 Load_Retry_Count 0x0032 100 100 000 Old_age เสมอ - 2
225 Load_Cycle_Count 0x0032 100 100 000 Old_age เสมอ - 6320
เวอร์ชันบันทึกข้อผิดพลาด SMART: 1
ไม่มีการบันทึกข้อผิดพลาด
การแก้ไขโครงสร้างบันทึกการทดสอบตัวเอง SMART หมายเลข 1
จำนวน Test_Description สถานะอายุการใช้งานที่เหลืออยู่ (ชั่วโมง) LBA_of_first_error
# 1 ออฟไลน์สั้น ๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31656 -
# 2 สั้นออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31632 -
# 3 สั้นออฟไลน์ เสร็จสมบูรณ์: อ่านล้มเหลว 10% 31608 2541336840
# 4 ขยายออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31587 -
# 5 สั้นออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31560 -
# 6 ออฟไลน์สั้น ๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31536 -
# 7 ออฟไลน์สั้น ๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31512 -
# 8 สั้นออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31488 -
# 9 สั้นออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31464 -
#10 ออฟไลน์สั้นๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31440 -
#11 ขยายออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31419 -
#12 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31392 -
#13 ออฟไลน์สั้นๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31368 -
#14 ออฟไลน์สั้นๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31344 -
#15 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31320 -
#16 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31296 -
#17 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31272 -
#18 ขยายออฟไลน์ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31251 -
#19 ออฟไลน์สั้นๆ เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31224 -
#20 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31200 -
#21 ออฟไลน์แบบสั้น เสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด 00% 31176 -