하드디스크(Disk) Bad Sector 원인 및 확인 방법
- IT/리눅스(Linux)
- 2023. 8. 13.
하드디스크 배드섹터란?
bad sector는 디스크에 불량 섹터가 발생한 것으로 물리적 또는 논리적으로 섹터에 손상을 입어 제대로 판독할 수 없는 상태를 말합니다. 디스크에 퍼지는 암세포 같은 존재입니다.
Bad Sector 영향도
파일 복사, 이동 같은 파일 작업의 속도가 느려집니다. 오류가 발생해 멈출 수 있습니다.
하드 디스크에 괴음이 들립니다. 또는 비프음 등이 들릴 수 있습니다. 디스크 점검 툴에서 발생할 수 있습니다.
Bad Sector 원인
논리적 : 바이러스 등의 이유로 임의로 발생한 이슈
물리적 : 외부 충격 및 불량, 여러 하드웨어 적인 문제
Bad Sector 확인 방법
badblocks 패키지
badblocks 패키지를 통해서 배드섹터와 디스크 상태 등의 정보를 확인하실 수 있습니다.
fdisk -l 명령어로 파티션 정보를 먼저 확인합니다.
위 예시 이미지에서는 /dev/sdb, /dev/sda 디스크가 보입니다.
나온 디스크를 확인하고 badblocks 명령어로 디스크 배드섹터를 체크해 주시면 됩니다.
badblocks -v /dev/sd*
-v 옵션을 사용하게 되면 장치의 세부적인 정보를 불러올 수 있습니다. 명령어 뒤에 [ > record.txt ] 이런식으로 '>' 붙여주게 되면 해당 파일로 따로 저장할 수 있습니다. 섹터를 검사하기 때문에 시간이 조금 걸릴 수 있습니다.
S.M.A.T 툴 이용하기
yum -y install smartmontools
smartctl -a /dev/sda
yum 명령어를 통해서 smartmontools 패키지를 다운로드 할 수 있습니다.
smartctl -a /dev/sda로 /sda 디스크의 모든 상태 정보를 불러올 수 있습니다.
smartctl 옵션
-s : 디스크를 스캔하는 과정을 보여 주며 이미 확인된 섹터를 보여줍니다.
-V : 사용된 쓰기 모드를 나타냅니다.
-n : 비 파괴 모드로 전환됩니다. 이는 손상된 섹터가 복구되고 하드 디스크의 정보가 손상되거나 삭제되지 않음을 의미합니다.
-f : 불량 섹터를 복구합니다.
디스크가 정상이라면 overall-health self-assessment test result에 PASSED 라고 나오게 됩니다.
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 082 064 044 Pre-fail Always - 158838697
3 Spin_Up_Time 0x0003 096 096 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 9
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 083 060 045 Pre-fail Always - 209811846
9 Power_On_Hours 0x0032 095 095 000 Old_age Always - 5117
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 9
18 Unknown_Attribute 0x000b 100 100 050 Pre-fail Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 100 000 Old_age Always - 0
190 Airflow_Temperature_Cel 0x0022 063 050 000 Old_age Always - 37 (Min/Max 34/40)
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 6
193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 220
194 Temperature_Celsius 0x0022 037 050 000 Old_age Always - 37 (0 23 0 0 0)
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 5085 (207 232 0)
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 24352108728
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 786348429015
smartctl 주요 정보
Raw_Read_Error_Rate: 이 속성은 드라이브가 섹터에서 데이터를 올바르게 읽지 못한 횟수를 나타냅니다. 이 속성 값이 높으면 드라이브가 디스크 표면에서 데이터를 읽는 데 문제가 있음을 의미합니다.
Seek_Error_Rate: 이 속성은 드라이브가 읽기/쓰기 헤드를 올바르게 배치하지 못한 횟수를 나타냅니다. 이 속성 값이 높으면 드라이브에서 읽기/쓰기 헤드를 이동하는 데 문제가 있음을 의미합니다.
Reallocated_Sector_Ct: 이 속성은 오류로 인해 재할당된 섹터 수를 나타냅니다. 이 속성 값이 높으면 드라이브에 불량 섹터가 많다는 의미입니다.
Current_Pending_Sector: 이 속성은 현재 재할당 보류 중인 섹터 수를 나타냅니다. 이 속성 값이 높으면 드라이브가 불량 섹터 수를 따라잡는 데 문제가 있음을 의미합니다.
Bad sector나 Disk Fault 등 하드 디스크 상태에 문제가 발생한 경우에는 중요 데이터를 백업하고 최대한 빠르게 교체를 하는 것이 좋습니다.
오늘은 디스크의 배드섹터를 확인하는 방법에 대해서 알아보았습니다. 다른 리눅스에 대한 정보나 유용한 정보들도 많이 있으니 다른 글들도 참고하시면 좋을 것 같습니다.
[IT/리눅스(Linux)] - 리눅스 하드디스크(HDD) 정보 확인 명령어
[Ai 그림] - AI 그림 그려주는 사이트 추천 TOP28 (무료 AI 그림 2023년 8월)