설치 전에 디스크를 적극적으로 fsck


12

구형 프로세서에서 소프트웨어를 테스트하는 데 사용하는 구형 HP Athlon 시스템이 있습니다. 우리는 빈번한 브라운 아웃을 가지고 있으며 마지막 디스크 이후에는 디스크가 엉망이었습니다. fsck모든 문제를 해결하고 파견 할 수 없었습니다 . OS를 새로 설치했지만 여전히 fsck불만이 있습니다.

하드 드라이브 나 컴퓨터를 정죄하기 전에 마지막으로 Linux를 다시로드하려고합니다. 파일 시스템을 만든 후 설치가 발생하기 전에 fsck의심스러운 블록을 불량으로 표시하기 위해 적극적인 수행을 원합니다 .

디스크는 크고 (약 500GB) 데비안 8 배포판은 비교적 작습니다 (8-12GB이면 충분합니다). 또한 GUI 설치가 마음에 들지만 결혼하지 않았습니다.

두 가지 질문이 있습니다.

  1. 데비안 8 fsck은 기본 시스템을 설치하기 전에 수행 할 선택을 제공합니까 ? 그렇다면 어디에 있습니까? 그렇지 않은 경우 프로세스는 무엇입니까?

  2. 합니까는 fsck불량으로 표시하는 방법을 적극적으로 블록을 제어하는 설정이? 그렇다면 무엇입니까? 그렇지 않다면 무엇을 사용할 수 있습니까?


편집 : 기계는 HP5850입니다. BIOS로 들어가서 Storage and Drive Protection System (DPS) 자체 테스트로 이동 한 후 DPS는 드라이브 교체를 권장합니다. DPS는 통계를 제공하지 않았기 때문에 피해의 정도는 확실하지 않습니다.

12 달러에 [이전] 새 SATA II 드라이브를 구입할 수 있다는 점을 고려하여 교체하려고합니다. 시간이나 에너지를 낭비하는 것은 의미가 없습니다.


관련 참조는 다음과 같습니다. 두 가지 질문 모두 다루어지지 않은 것 같습니다.


SpinRite가 아닌가?
Peter Mortensen

불량 블록이있는 경우 전체 드라이브가 물리적으로 고장 나서 사용해서는 안됩니다.
chrylis

2
"공격적으로 디스크 fsck"는 너무 더러워 보인다 ...
A. Mirabeau

답변:


19
  1. "데비안 8은 기본 시스템을 설치하기 전에 fsck를 수행 할 수있는 옵션을 제공합니까?

    대안으로, 먼저 GPartEd CD를 다운로드 하여 굽습니다 (또는 썸 드라이브에 쓰기). 설치, 부팅을 실행하기 전에 당신이 좋아하고 실행에 디스크를 분할 하거나 실행 길이.GPartEdfsckbadblocks

    데비안 설치 프로그램을 실행할 때는 파티션을 어떻게 사용하는지 알려주십시오. 설치 관리자는 자체 파티션을 만들 필요가 없습니다. 기존 파티션을 사용하는 것이 좋습니다.

  2. "fsck는 얼마나 공격적으로 블록이 불량으로 표시되는지를 제어하는 ​​설정을 가지고 있습니까? 그렇다면 어떻게됩니까? 그렇지 않으면 무엇을 사용할 수 있습니까?"

    -c에 옵션 e2fsck원인은 그것을 실행하는 badblocks불량 블록 스캔 프로그램을. 불량 블록을 직접 실행할 수도 있습니다. 기본적 badblocks으로 읽기 전용 테스트를 수행합니다. 보다 적극적 -n으로 비파괴적인 읽기-쓰기 테스트를 지정할 수 있습니다 . -p패스 횟수를 늘리 도록 옵션을 설정할 수도 있습니다 .

    badblocks파티션하기 전에 실행하고 싶을 수도 있습니다 . 이렇게하면 더 빠른 -w쓰기 전용 테스트를 지정할 수 있습니다 .


1
John, +1, 궁금한 badblocks점은 하드웨어 수준 또는 FS 수준에 표시하는 방법이 있습니까?
heemayl

3
@heemayl 내 이해는 현대 하드 디스크에서 하드 디스크의 펌웨어가 자체 불량 블록 관리를 모두 시도한다는 것입니다. 실행의 목적 badblocks은 단지 하드 디스크가 모든 섹터를 읽거나 쓰도록 강제하는 것입니다. 하드 디스크는 불량 섹터를 감지하고 리매핑하는 작업을 자체적으로 수행하며, 모든 것이 제대로 작동하면 badblocks프로그램은 하드 디스크가이 작업을 수행하고 있다는 알림을받지 않습니다.
John1024

흠. 이해할 수 있습니다. 본질적으로 fsck는 FS에서 블록을 표시 할 수 있지만 불량 블록은 디스크 펌웨어가 표시를 수행하는 데 도움이됩니다.
heemayl

3
@heemayl 옛날 badblocks에는 불량 섹터 목록을 뱉어 냈고 파일 시스템은이를 기록했습니다. 현대 badblocks 에는 FS가 여전히 그렇게하려고하지만 현대 HD의 경우 일반적으로 목록이 비어 있습니다.
John1024

1
@heemayl이며 목록 비어 있지 않은 경우 일반적으로 디스크가 심하게 손상되어 교체하는 것이 가장 좋습니다.
Mark

7

자주 fsck 오류가 발생하면 드라이브가 혈액을 기침 할 수도 있습니다. 모든 불량 블록을 불량으로 표시하더라도 더 많은 블록이 불량이되기까지는 그리 오래 걸리지 않습니다. 실제로 tty2로 전환하려면 Ctrl + Alt + F2를 사용하여 fsck를 수행하기 위해 다른 tty로 변경할 수 있다고 생각하지만, 무슨 말을하는지 새 하드 드라이브가 얼마나 필요한지 강조 할 수는 없습니다. 정확합니다.


"가장 자주 fsck 오류가 발생하는 경우 ..." -확실하지 않은 것은 fsck문제를 다시 설치 한 후 문제가 발생했거나 빙산의 일각에 있다는 것입니다. 시스템 부팅시 몇 가지 파일 시스템 오류 (4 또는 6)가 발생하고 읽기 전용으로 다시 마운트하여 복구 한 다음 부팅합니다.

@ jww 당신은 파일 시스템 오류의 정확한 예를 게시 할 수 있습니까?
John Leuenhagen

다른 tty로 전환해야하는 이유 그렇게하면 어떤 이점이 있습니까?
fpmurphy

@ fpmurphy1 터미널 창을 열 수없는 것처럼 들렸으므로 다른 tty로 전환하는 것이 쉘에 들어가는 다음 가장 좋은 방법입니다.
John Leuenhagen

@jww : 매번 동일한 블록이보고됩니까, 아니면 부팅 할 때마다 새 집합이보고됩니까?
TMN

5
  1. 아니요, 그만한 가치가 없다고 생각합니다. Fsck (대부분의 파일 시스템에서 구현)는 드라이브를 검사하지 않습니다. 파일 시스템 메타 데이터의 유효성을 검사하고 마운트 할 때 뷰의 일관성을 유지합니다. 정의에 따라 빈 공간 만 있기 때문에 설치하기 전에 수행하는 것이 이치에 맞지 않습니다.

  2. 대신 불량 블록 을 사용하십시오 . 데이터가 썩지 않도록하려면 스크러빙을 지원하는 파일 시스템을 사용하십시오. Lvm 자체 도 그렇게 할 수 있습니다 .


3

최신 디스크의 안정성을 확인하려면 내장 테스트 사용을 고려하십시오. smartctl 유틸리티를 사용하여 트리거 할 수 있습니다. 예 :

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

올바르게 쓰여지지 않은 섹터를 발견하기 위해 최근에 모든 것이 기록되었는지 미리 확인하려면 / dev / urandom의 dd와 같은 전체 매체를 덮어 쓰거나 무작위 중 하나로 파쇄 할 수 있습니다 옵션.


3
• 그래도 주 dd에서는 /dev/random500 기가 바이트 드라이브에 완료하는 데 여러 날이 소요됩니다.
Dmitry Grigoryev

1
fixed typo, thx :) 실수로 쉘에 붙여 넣을 경우 명령 줄을 사용하여 피할 수 없기 때문에 정확한 dd 구문을 작성하고 싶지 않았으므로 실제로 복구 할 수없는 데이터 손실이 발생할 수 있습니다.
rackandboneman

불행하게도, 데비안 제공하기 위해 표시되지 않습니다 smartctl: E: Unable to locate package smartctl. Red Hat / Fedora 유틸리티입니까?

데비안 / 우분투 패키지는 smartmontools입니다. BTW, apt-cache 검색을 사용하여 어떤 패키지가 있는지 검색하십시오.
rackandboneman

2

Windows에서만 실행할 수있는 제조업체의 저수준 형식 소프트웨어 (있는 경우) (또는 운이 좋으면 웹 사이트에서 이미지를 다운로드 할 수있는 부팅 가능한 CD / DVD / USB)를받는 것이 좋습니다. . 훨씬 더 큰 예비 섹터 풀과 교환하여 드라이브의보고 된 용량을 줄이기 위해 조작을 충분히 제어 할 수있는 경우 @rackandboneman이 제안한대로 드라이브를 테스트 할 때 이러한 예비 부품이 대체 될 것으로 예상하여 그렇게해야합니다. . 여분의 풀을 모두 사용하고 투명하게 다시 매핑 할 수없는 미래의 불량 섹터를 사용하는 것보다 모든 불량 섹터를 스왑 용으로 교체하고 향후 결함을 위해 남겨 두는 400GB 또는 450GB 드라이브를 사용하는 것이 훨씬 좋습니다.


DOS 용 SeaTools 를 실행할 수있었습니다 . SeaTools는 SMART 트리거 되지 않았다고 보고했습니다 . 긴 테스트짧은 테스트는 즉시 실패했습니다. 디스크 크기를 32GB로 줄였습니다. 그런 다음 긴 테스트를 다시 실행했습니다. SeaTools는 1190000 표시에서 4 개의 불량 LBA를 발견하여 수리했습니다. 새로운 OS 설치는 완벽하게 진행되었습니다. 이후 재부팅에도 문제가 없었습니다. 교체 SATA II 드라이브를 구입 했으므로 기존 드라이브가 오작동하는 경우이를 핫 스페어로 유지합니다.

@jww는 다른 답변을 이미 수락했습니다.
Monty Harder

예, Q & A 함정 ... 정확한 답변을 얻으려면 구체적인 질문을해야합니다. "실패한 하드 드라이브에 Linux를 어떻게 설치합니까?"라는 질문이 나오면 질문이 닫 혔을 것입니다.

0

더 멋진 도구를 사용할 수없는 경우 몇 가지 기본 사항 (예 : USB 디스크이고 SMART가 작동하지 않음) :

dd if=/dev/sdX of=/dev/null bs=1M

모든 디스크를 읽습니다. 당신은에서 볼 수 dmesg읽을 수없는 섹터가있는 경우 로그. 재시도 후 읽을 수 있는지는 알려주지 않습니다. 좋지는 badblocks않지만 유비쿼터스로 언급합니다.

불량 섹터가 있고 디스크에 아무것도 원하지 않는 경우 :

dd if=/dev/zero of=/dev/sdX bs=1M

모든 블록이 다시 작성됩니다. 읽을 수없는 섹터가 있으면 재 할당 된 풀의 섹터와 교환되어 다시 사용할 수있게됩니다.

재 할당이 발생하는 디스크가 있으면 디스크가 나옵니다. 중요한 용도로는 사용하지 않지만 때로는 신경 쓰지 않는 데이터가 있고 괜찮을 수도 있습니다.

SSD 인 경우 상황이 다르며 적용되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.