나는 달리고 있다
$ uname -a
Linux myhostname 4.14.15-041415-generic #201801231530 SMP Tue Jan 23 20:33:21 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Nitrux
Description: Nitrux 1.1.4
Release: 1.1.4
Codename: nxos
ext4
시스템 및 스왑 파티션이 있는 하드 드라이브가 있습니다. 하드 드라이브가 스마트 short
테스트나 스마트 테스트를 완료할 수 없습니다 long
.
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 90% 32232 11202419
# 2 Extended offline Completed: read failure 90% 32229 11202419
디스크를 교체해야 할 수도 있습니다.
그동안 해당 블록을 피하도록 파일 시스템에 간단히 지시하는 것이 가능합니까 LBA
? 이렇게 하면 더 이상 읽기/쓰기 오류가 발생하지 않습니다. 실제로 이것은 고립된 오류인 것으로 보이며 하드 드라이브(물론 해당 영역 제외)는 여전히 작동합니다.
SMART 매개변수는 재할당할 섹터도 있지만 0
재할당된 섹터도 있기 때문에 이상합니다. 이 드라이브는 약 10년 정도 된 것입니다.
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 19
3 Spin_Up_Time 0x0027 140 139 021 Pre-fail Always - 3966
4 Start_Stop_Count 0x0032 098 098 000 Old_age Always - 2058
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 100 253 000 Old_age Always - 0
9 Power_On_Hours 0x0032 056 056 000 Old_age Always - 32232
10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 098 098 000 Old_age Always - 2001
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 206
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 1851
194 Temperature_Celsius 0x0022 103 086 000 Old_age Always - 40
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 78
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 70
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 89
내부에링크 페이지선택한 답변이 없습니다. 시스템을 계속 작동시켜야 하는데 이를 피하고 싶습니다 dd
(그리고 이 경우 사용 방법에 대한 명확한 예가 없습니다). fsck.ext2 -c
마운트된 파일 시스템에서 실행할 수 있나요 ?
답변1
e2fsck
매뉴얼 페이지 에서 ( names 및 에도 e2fsck
링크됨 ):fsck.ext2
fsck.ext3
fsck.ext4
마운트된 파일 시스템에서 e2fsck를 실행하는 것은 일반적으로 안전하지 않습니다. 유일한 예외는
-n
이 옵션이 지정되거나-c
옵션 이 다음-l
과 같은 경우입니다.-L
아니요지정됨. 그러나 그렇게 하는 것이 안전하더라도e2fsck
파일 시스템이 마운트되면 인쇄된 결과가 유효하지 않습니다. 마운트된 파일 시스템을 검사해야 하는지 묻는 경우e2fsck
유일한 정답은 "아니오"입니다. 자신이 무엇을 하고 있는지 잘 아는 전문가만이 이 질문에 다른 방식으로 답하는 것을 고려해야 합니다.
따라서 대답은 "아니요. fsck
파일 시스템을 변경하는 어떤 모드에서도 마운트된 ext2/3/4 파일 시스템을 실행할 수 없습니다"입니다.
시작 시 읽기 전용 모드로 마운트되어 있거나 시스템이 여전히 initramfs에서 실행 중인 동안 루트 파일 시스템을 검사할 수 있습니다. 그러나 이 경우 시스템에서 fsck
변경이 필요하다고 표시되면 즉시 시스템을 다시 시작해야 합니다.
디스크 블록이 완전히 실패하는 경우, 재시도를 반복하더라도 디스크는 데이터가 올바르게 읽혔는지 확신할 수 없으며 운영 체제에서 내용을 덮어쓸 때까지 디스크는 자동으로 블록을 재할당할 수 없습니다. 올바른 데이터를 가지고 있으면 Yu는 자동으로 데이터를 삭제합니다(데이터 블록을 0으로 대체하여). 그건더 나쁜손상된 데이터는 추가 처리에 사용될 수 있으며 결국 발견될 때까지 다른 결과가 자동으로 손상될 수 있으므로 이를 단순히 읽기 오류를 생성하는 파일과 비교하십시오.
읽기 오류를 생성하는 파일은 중요한 시스템 파일이 아니고 파일이 누락된 경우 시스템이 충돌하거나 복구 도구를 실행할 수 없는 경우를 제외하고 일반적으로 백업에서 쉽게 복원할 수 있습니다.
SMART가 재할당을 보류 중이지만 실제로 재할당되지 않은 섹터를 표시한다는 사실은 단순히 실패한 섹터가 일반적으로 읽기만 하고 실제로 쓰지 않는 시스템 파일에 의해 점유된다는 의미일 수 있습니다. 이러한 파일이 어떤 패키지에 속해 있는지 알아낼 수 있으면 패키지 관리 시스템에 패키지를 다시 설치하도록 지시할 수 있으며, Nitrux는 .deb
패키지를 사용하는 것으로 나타나며 apt-get reinstall <package name>
실행한 명령도 마찬가지입니다. 이렇게 하면 파일을 덮어쓰게 되어 디스크를 다시 할당할 수 있습니다.
불행히도 일부 디스크 제조업체는 불완전한 SMART 구현으로 디스크를 만들기 때문에 모든 것이 괜찮다고 말하지만 OS가 읽기/쓰기 오류를 보고하면 SMART가 모든 것을 말하더라도 문제가 있는 경우에만 SMART를 신뢰할 수 있습니다. - HDD는 마모 부품이기 때문에 대부분의 경우 디스크가 고장납니다.
저는 20년 넘게 서버 관리 분야에서 다양한 역할을 맡아왔습니다. 10년 이상 된 디스크가 여전히 사용되는 것을 본 우리 팀의 반응은 항상 그랬고 지금도 그렇습니다.
"맙소사! 어떤 이유로든 디스크 회전이 멈춘다면 다시 시작된다는 보장은 전혀 없습니다. 합리적인 가격과 응답 시간으로 이런 오래된 하드웨어의 예비 부품을 구할 수 있을까요? 최소한 필요한 것은 무엇입니까? 해야 할 일 매우 현실적인 계획을 세우세요언제(아니요만약에) 그 일이 실패했다면 가능한 한 빨리 그 오래된 것을 교체하거나 가상화하는 것이 좋습니다. "
우리가 다루는 서버는 평생 동안 거의 매년 하루 24시간 동안 실행되는 것이 사실입니다. 그러나 귀하의 시스템에는 그렇지 않을 수도 있습니다.
그러나 10년 된 디스크가 설계된 세그먼트에 대해 "일반적인" 방식으로 사용된다면 확실히 상승세를 타고 있는 것입니다.욕조 곡선: 설계 수명이 초과되어 낡았습니다.