Ubuntu 시스템(19.10)에 데이터 드라이브로 마운트된 NTFS 디스크가 있습니다.
지난 며칠 동안 드라이브가 매우 느리고 신뢰할 수 없게 되었습니다.
저널(journalctl -r)에 다음이 표시됩니다.
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 194 Temperature_Celsius changed from 54 to 53
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 46 to 47
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 188 Command_Timeout changed from 100 to 99
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], SMART Usage Attribute: 183 Runtime_Bad_Block changed from 97 to 96
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Offline uncorrectable sectors (changed +8)
...
Nov 20 15:23:39 acer smartd[1253]: Device: /dev/sdb [SAT], 41344 Currently unreadable (pending) sectors (changed +8)
하지만 ntfsfix
디스크가 괜찮다고 보고합니다. (제 생각에는)
sudo ntfsfix -bd /dev/sdb1
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
Going to un-mark the bad clusters ($BadClus)... No bad clusters...OK
NTFS partition /dev/sdb1 was processed successfully.
- 이 디스크를 검사하는 다른 방법이 있습니까?
의견의 제안에 따라 일부 smartctl
출력이 발생합니다.
smartctl -data -A /dev/sdb
smartctl 7.0 2018-12-30 r4883 [x86_64-linux-5.3.0-23-generic] (local build)
Copyright (C) 2002-18, Bruce Allen, Christian Franke, www.smartmontools.org
[=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 079 078 006 Pre-fail Always - 168133076
3 Spin_Up_Time 0x0003 094 092 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 099 099 020 Old_age Always - 1209
5 Reallocated_Sector_Ct 0x0033 093 093 036 Pre-fail Always - 9840
7 Seek_Error_Rate 0x000f 074 060 030 Pre-fail Always - 8648101443
9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 24172
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 099 099 020 Old_age Always - 1237
183 Runtime_Bad_Block 0x0032 096 096 000 Old_age Always - 4
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 001 001 000 Old_age Always - 12019
188 Command_Timeout 0x0032 099 098 000 Old_age Always - 11 26 26
189 High_Fly_Writes 0x003a 097 097 000 Old_age Always - 3
190 Airflow_Temperature_Cel 0x0022 047 042 045 Old_age Always In_the_past 53 (Min/Max 47/58 #91)
191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 1217
193 Load_Cycle_Count 0x0032 099 099 000 Old_age Always - 3392
194 Temperature_Celsius 0x0022 053 058 000 Old_age Always - 53 (0 18 0 0 0)
197 Current_Pending_Sector 0x0012 001 001 000 Old_age Always - 41344
198 Offline_Uncorrectable 0x0010 001 001 000 Old_age Offline - 41344
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 23784h+22m+27.579s
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 16322055947757
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 108452827544617
정확하게 해석할 수는 없지만 발열 문제인 것 같은데요?
답변1
드라이브 교체를 권장합니다.
Smart 05는 불량 섹터를 교체하는 데 사용되는 예비 섹터 수를 의미합니다. RAW 값 9840은 9840 섹터, 즉 4920KB를 의미합니다. 93은 정규화된 값으로, 여전히 93%의 예비 섹터가 있음을 의미합니다.
그러나 동시에 197은 41344개의 보류 중인 섹터가 있음을 나타냅니다. 보류 중인 섹터가 반드시 해당 섹터가 불량하다는 의미는 아니지만 하드 드라이브가 해당 섹터를 완전히 처리하지 못했습니다. (정전이 중단되기 전에 플러시되지 않기 때문에 가끔) 다음 쓰기 시에는 양호한 섹터 상태로 돌아가거나 05로 이동하여 예비 섹터로 교체됩니다.
어느 쪽이든 41344는 이미 약 20MB입니다. 이는 이미 너무 많아서 드라이브가 안정적이지 않다는 것을 의미합니다.
답변2
데이터가 클라우드에 백업되어 있으므로 이 방법으로 드라이브를 불량 블록에 대비할 수 있습니다...
gparted
새로운 GPT 파티션 테이블을 배치하는 데 사용합니다 (이렇게 하면 드라이브가 지워집니다.)gparted
할당되지 않은 모든 공간을 사용하는 단일 ext4 파티션을 만드는 데 사용(디스크를 잘못 차단한 후에는 언제든지 NTFS 파티션을 다시 만들 수 있습니다)
Note: do NOT abort a bad block scan!
Note: do NOT bad block a SSD
Note: backup your important files FIRST!
Note: this will take many hours
Note: you may have a pending HDD failure
Ubuntu Live DVD/USB로 부팅합니다.
안에 terminal
...
sudo fdisk -l
# 모든 "Linux 파일 시스템" 파티션을 식별합니다.
참고: 어떤 드라이브가 불량 블록인지 올바르게 식별했는지 확인하십시오... sdb1/etc.
sudo e2fsck -fcky /dev/sdXX
# 읽기 전용 테스트
또는
sudo e2fsck -fccky /dev/sdXX
# 비파괴 읽기/쓰기 테스트(권장)
-k는 이전 불량 블록 테이블을 저장하고 새 불량 블록을 해당 테이블에 추가하므로 중요합니다. -k를 사용하지 않으면 이전 불량 블록 정보가 모두 손실됩니다.
-fccky 매개변수...
-f Force checking even if the file system seems clean.
-c This option causes e2fsck to use badblocks(8) program to do a
read-only scan of the device in order to find any bad blocks.
If any bad blocks are found, they are added to the bad block
inode to prevent them from being allocated to a file or direc‐
tory. If this option is specified twice, then the bad block
scan will be done using a non-destructive read-write test.
-k When combined with the -c option, any existing bad blocks in the
bad blocks list are preserved, and any new bad blocks found by
running badblocks(8) will be added to the existing bad blocks
list.
-y Assume an answer of `yes' to all questions; allows e2fsck to be
used non-interactively. This option may not be specified at the
same time as the -n or -p options.
참고: 잘못된 차단으로 인해 드라이브를 사용할 수 없으면 교체하십시오.