디스크 검사를 실행하는 방법?


84

디스크에 불량 섹터가있을 수 있습니다. ext3 파일 시스템을 사용했습니다.

Windows의 오류 확인 도구와 가장 유사한 도구는 무엇입니까?


@PabloBianchi : 그 질문은 정확히 같은 범위입니다. 그들을 병합하기 위해 모드에 플래그를 지정하고 있습니다.
David Foerster

답변:


101

디스크

불량 섹터를 확인하려면 SMART 데이터를 확인하십시오. 디스크 유틸리티 ( Palimpsest )를 실행하여 가장 잘 액세스 할 수 있습니다 . 불량 블록이 보이지 않더라도 자체 테스트를 시작하여 확인하십시오.

프로그램은 gnome-disk-utility패키지 로 번들로 제공 됩니다. 운영gksudo gnome-disks

Palimpsest의 스마트

또는 Ubuntu 16.04 버전 (3.18)에서 :

디스크의 스마트

배드 블록

당신은 또한 사용할 수 있습니다 badblocks

sudo badblocks -sv /dev/sda

그냥 확인하거나 먼저 확인하고 수정하여 임시 파일에 결과를 씁니다.

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

전체 디스크를 검사하고 / dev / sda 에서 발견 된 모든 불량 블록을 인쇄합니다 .

에서 badblocks수동 :

중요 사항 : 불량 블록의 출력이 e2fsck 또는 mke2fs 프로그램에 제공 될 경우 생성되는 블록 번호는 파일 시스템에서 사용중인 블록 크기에 따라 크게 달라 지므로 블록 크기를 올바르게 지정해야합니다. . 이러한 이유로 사용자는 불량 블록을 직접 실행하지 말고 e2fsck 및 mke2fs 프로그램의 -c 옵션을 사용하는 것이 좋습니다.

fsck

fsck자체가 불량 섹터를 찾는 데 도움이되지는 않지만 여전히 불량 섹터가 많으면 데이터가 더 손상 될 수 있습니다. 디스크가 정상일 때만 사용하십시오.


1
실제로 불량 블록의 매뉴얼은 직접 사용하는 것을 권장하지 않으며 "-c"(읽기 전용 확인) 또는 "-cc"(읽기 쓰기 확인) 옵션을 사용하여 e2fsck로 사용자를 안내합니다.
mrówa

2
참고로 13.04에서는 우분투 메뉴에서 "디스크"를 실행하여 palimpsest를 실행하지만 ... 자기 테스트를 시작할 수있는 옵션이 표시되지 않습니다 (아마도 하나의 드라이브가 있기 때문에 실행중인 드라이브 일 수 있습니다) Ubuntu ...)
rogerdpack

2
@ mrówa 매뉴얼은 "불량 블록의 출력이 e2fsck 또는 mke2fs 프로그램에 공급 될 경우"
Jon

1
모든 디스크를 나열하는 정보를 넣어 사용 sudo는 fdisk를 -l
Kangarooo

2
이것은 현재 gnome-disks라고 불립니다
endolith

74

이 답변 전체에서 스토리지 드라이브는 경로에 블록 장치로 나타납니다 /dev/sdc. 현재 설정에서 스토리지 드라이브의 경로를 찾으려면 다음을 사용하십시오.

  • GUI를 사용할 수있는 경우 Gnome Disks그놈 디스크 설치 (이전의 Gnome Disk Utility palimpsest)
  • 의 출력에서 터미널 모양에 lsblkls -l /dev/disk/by-id크기, 파티션, 제조업체와 모델 이름으로 올바른 장치를 찾아보십시오.

기본 점검

  • 반응이없는 미디어 만 감지
  • 거의 순식간에 (매질이 회전되거나 파손되지 않는 한)
  • 안전한
  • 읽기 전용 미디어 (예 : CD, DVD, BluRay)에서 작동

때때로 저장 매체는 단순히 작동을 거부합니다. 커널과 디스크 관리자에게는 여전히 블록 장치로 나타나지만 파티션 테이블을 보유한 첫 번째 섹터는 읽을 수 없습니다. 다음을 통해 쉽게 확인할 수 있습니다.

sudo dd if=/dev/sdc of=/dev/null count=1

이 명령으로 인해 "입력 / 출력 오류"에 대한 메시지가 표시되면 드라이브가 손상되었거나 예상대로 Linux 커널과 상호 작용하지 못하는 것입니다. 전자의 경우 약간의 운이 좋으면 적절한 장비를 갖춘 데이터 복구 전문가가 컨텐츠를 구할 수 있습니다. 후자의 경우 다른 운영 체제를 사용해 볼 가치가 있습니다. (특별한 드라이버없이 Windows에서 작동하지만 Linux 또는 OS X에서는 작동하지 않는 USB 드라이브를 발견했습니다.)

스마트 자체 테스트

  • 철저한 조정 가능
  • 순간적으로 느리게 또는 느리게 (테스트의 철저함에 따라 다름)
  • 안전한
  • 가까운 장래의 실패 가능성에 대해 경고

이를 지원하는 장치는 SMART를 통해 건강에 대해 쿼리 하거나 다른 철저한 무결성 자체 테스트를 수행하도록 지시받을 수 있습니다. 이것은 일반적으로 가장 좋은 옵션이지만 일반적으로 (고대가 아닌) 하드 디스크 및 솔리드 스테이트 드라이브에서만 사용할 수 있습니다. 대부분의 이동식 플래시 미디어는이를 지원하지 않습니다.

추가 자료 및 지침 :

읽기 전용 확인

  • 일부 플래시 미디어 오류 만 감지
  • 하드 디스크에 매우 안정적
  • 느린
  • 안전한
  • 읽기 전용 미디어 (예 : CD, DVD, BluRay)에서 작동

쓰지 않고 전체 장치의 읽기 무결성을 테스트하기 위해 다음 badblocks(8)과 같이 사용할 수 있습니다 .

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

이 작업은 특히 스토리지 드라이브가 실제로 손상된 경우 많은 시간이 걸릴 수 있습니다. 에러 카운트가 0보다 높아지면 블록이 잘못되었음을 알 수 있습니다. 불량 블록의 정확한 양 (및 위치)에 관심이 없다면 언제라도 (정전 중일 때와 마찬가지로) 안전하게 작업을 중단 할 수 있습니다. 옵션으로 오류시 자동으로 중단 할 수 있습니다 -e 1.

고급 사용법에 대한 참고 사항 :에 대한 출력을 재사용 하려면 포함 된 파일 시스템 e2fsck의 블록 크기 ( -b)를 설정해야 합니다. 또한 -c처리량을 향상시키기 위해 한 번에 테스트되는 데이터 양 ( 블록 단위)을 조정할 수 있습니다 . 16 MiB는 대부분의 장치에 적합합니다.

비파괴적인 읽기-쓰기 점검

  • 매우 철저한
  • 가장 느린
  • 매우 안전 (정전 또는 간헐적 인 커널 패닉 방지)

때로는 (특히 플래시 미디어의 경우) 쓰기를 시도 할 때만 오류가 발생합니다. (이것은 실제보다 더 큰 크기로 광고하는 미디어를 안정적으로 검색 (플래시) 하지 않습니다 . 대신 플래시 플래시 사기를 사용하십시오.)

  • 마운트 된 파일 시스템 이있는 드라이브에서는 절대로 사용하지 마십시오 ! badblocks당신이 그것을 강요하지 않는 한, 어쨌든 그 작업을 거부합니다.

  • 이 작업을 강제로 중단하지 마십시오 ! Ctrl+ C(SIGINT / SIGTERM) 및 정상적인 조기 종료 대기는 괜찮지 만 killall -9 badblocks(SIGKILL)은 그렇지 않습니다. 강제 종료시 badblocks현재 테스트 된 블록 범위의 원래 내용을 복원 할 수 없으며 정크 데이터로 덮어 쓰여 파일 시스템이 손상 될 수 있습니다.

비파괴적인 읽기 / 쓰기 검사를 사용하려면 -nbadblocks명령에 옵션을 추가하십시오 .

파괴적인 읽기-쓰기 점검

  • 매우 철저한
  • 느리게
  • 드라이브의 모든 데이터를 지 웁니다

위와 같지만 쓰기 테스트를 수행 한 후 이전 드라이브 내용을 복원하지 않으면 조금 더 빠릅니다. 어쨌든 데이터가 지워 지므로 (추가적) 부정적인 결과없이 강력한 종료가 유지됩니다.

파괴적인 읽기 / 쓰기 검사를 사용하려면 -wbadblocks명령에 옵션을 추가하십시오 .


43

fsck-Linux 파일 시스템을 확인하고 복구하십시오. 사용하여 호출

fsck /dev/sda1

여기서 / dev / sda1은 확인하려는 드라이브입니다. 자세한 내용은 'man fsck'를 참조하십시오.

장치에 불량 블록이 있는지 확인하는 'badblocks'명령도 있습니다.

검사시 드라이브를 마운트 해제해야하므로 루트 파티션을 확인하려면 파티션 루트에 'forcefsck'파일을 생성하고 재부팅해야합니다. 다음 부팅시 장치가 점검됩니다.

sudo touch /forcefsck
sudo reboot

또는 Live CD로 부팅하여 검사를 실행할 수 있습니다.


감사합니다. 머신이 모니터없이 실행 중입니다. 재부팅 후 점검 출력에 액세스 할 수있는 방법이 있습니까?
기 illa 코트

파일을 작성하고 재부팅했지만 boot.log에는 새로운 것이 없습니다.
기 illa 코트

fsck는 매우 빠른 검사를 수행합니다. -c 옵션을 사용하여 불량 블록을 검사했습니다.
기 illa 코트

fsck -c는 다음과 같이 말했습니다 : / dev / sda9 : 불량 블록 아이 노드 업데이트. 불량 노드 수와 이들이 나타내는 파일 시스템의 비율에 대한 정보가 없습니다.
기 illa 코트

sudo dumpe2fs -b /dev/sda9. 그러나 디스크가 파일 시스템이 아닌 결함이있는 섹터를 처리하는 것이 더 좋다고 생각합니다 (SMART, badblocks 등, 내 게시물 참조).
정렬

20

불량 블록

명령을 실행하는 불량 블록을 확인할 수 있습니다

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result비파괴적인 읽기-쓰기 테스트 용. 그러면 bad-blocks-result섹터가 손상된 상태 에서 파일이 생성됩니다 .
    • -n 비파괴적인 읽기 / 쓰기 모드를 사용합니다. 기본적으로 비파괴 읽기 전용 테스트 만 수행됩니다.

    • -s 현재 불량 블록 통과의 대략적인 완료율을 디스크에 기록하여 스캔 진행률을 표시합니다.

    • -v 상세 모드.

  2. 그런 다음 sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]파일 시스템에 불량 섹터가있는 위치를 알려주고 가능하면 데이터를 멀리 떨어 뜨릴 수 있습니다.

자세한 내용은 여기를 참조하십시오 .


1
나중에 불량
블록

badblocks를 사용하여 Windows 파티션을 확인할 수 있습니까? 아니면 어떻게 든 손상 될 수 있습니까?
개인

1
@ 비공개 새로운 질문이있는 경우 상단의 "질문하기"링크를 사용하십시오.
John

fsck명령은 실패 btrfs파일 시스템.
Luís de Sousa

20

smartctl

IMO smartctl은 더 나은 도구입니다. 먼저 설치해야 할 것 같습니다

sudo apt-get install smartmontools 

그때

sudo smartctl -a /dev/sda | less

드라이브 상태 데이터, 속성 및 사용 가능한 테스트 결과를 인쇄합니다. 덜 끝내려면을 입력하십시오 q. 대안 적으로

sudo smartctl -H /dev/sda

건강 데이터 만 인쇄합니다.

백그라운드에서 새로운 짧은 (몇 분) 또는 긴 (최대 몇 시간)자가 테스트를 시작하려면 :

sudo smartctl -t [short|long]

원할 경우 GSsmartControl ( 홈페이지 ) 및 그놈 디스크 는 그래픽 프런트 엔드입니다.

또한보십시오


5
장치가 SMART를 지원하는 경우 훌륭한 솔루션입니다. 많은 (저렴한) 이동식 플래시 드라이브와 아주 오래된 하드 드라이브는 그렇지 않습니다.
David Foerster

smartctl"알 수없는 USB 브리지", "-d 옵션을 사용하여 장치 유형을 지정하십시오"라는 메시지가 표시 될 때 처음에 문제가 발생했습니다 . smartmontools.org/wiki/Supported_USB-Devices 에서 필요한 데이터를 찾았습니다 .
nobar

10

F3 (Fight Flash Fraud) 은 가짜 플래시 드라이브 (실제 용량이 광고 용량의 일부인 플래시 드라이브)를 추가로 감지해야하는 또 다른 옵션입니다.

  1. F3 설치

    sudo apt install f3
    
  2. 드라이브 삽입

  3. 테스트 데이터를 드라이브의 여유 공간에 씁니다 (드라이브가 마운트 된 위치를 확인하십시오 lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. 테스트 데이터를 읽으십시오

    f3read /media/$USER/D871-DD7C/
    

참고:

Badblocks는 잘 작동하지만 가짜 플래시 드라이브를 감지하도록 설계 되지 않았으며 오류를보고하지 않을 수 있습니다 .


badblocks-w이나로 fsck는 사용되지 않도록 손상된 나쁜 마크 부문 /. f3은과 같은 것을 반환 할 수 Corrupted: 16.01 MB (32784 sectors)있지만 불량 섹터로 표시합니까? 아니면 여전히 불량 블록이 필요합니까? 나는 노력 하고dumpe2fs -b 있는데 ID가 표시되지 않은 것 같습니다.
Pablo A

4

진행률 표시기를 표시하면서 전체 디스크를 테스트 읽을 수 있습니다.

time sudo pv /dev/sdc >/dev/null

특정 디스크 문제는보고 된 I / O 오류로 나타납니다. 이것은 dd진행률 표시기 보다 약간 좋으며 명령 줄 인터페이스는 약간 더 표준적이고 덜 타이포하기 쉽습니다 . 그주의 pv의 기본적 및 향상 버전 cat. 기본적으로 설치되지는 않지만로 설치할 수 있습니다 sudo apt-get install pv.

비슷한 접근 방식은 디스크 I / O 오류를 구체적으로 인식하고 "데이터를 구하기 위해 노력하는"기능이있는 사용 가능한 여러 도구 중 하나를 사용하여 디스크를 읽는 것입니다. ddrescue패키지 관리자에서 검색 하십시오.


쓰기 액세스 중에 만 나타나는 문제는 감지하지 못하며 문제가 해결되거나 해결되어야하는 저장 매체의 영향을받는 영역은보고하지 않습니다. dd count=1또한 저장 매체가 완전히 파손되지 않은 경우 (또는 지원되지 않는 경우) 매우 빠릅니다.
David Foerster 9

참조 :ddrescueview
nobar

GNU Coreutils 8.24+부터는 dd진행 표시기status=progress있습니다.
파블로 A

1

데이터를 잃을 수 없는 파티션이있는 경우 다음 단계를 수행하십시오.

  1. 다음을 사용하여 불량 섹터를 확인하려는 파티션을 결정하십시오.

$fdisk -l commnd

검사 할 파티션을 / dev / sdPTC (검사 할 파티션)라고하고 / scan / resultPath / 폴더에 마운트 된 결과를 저장할 다른 파티션이 있다고 가정합니다.

2.이 명령을 실행할 수 있습니다

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

주어진 장치의 불량 블록을 결정하고 badsectors.txt라는 파일에 저장합니다.

  1. 이제 fsck명령을 사용하여 badsectors.txt 파일에 언급 된 불량 섹터를 사용하지 않도록 Ubuntu에 지시 할 수 있습니다 .

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

이렇게하면 교체 할 새 하드 디스크를 얻을 때까지 하드 디스크의 수명이 약간 늘어납니다.


불량 물리 섹터를 확인하려는 전체 파티션이 있고 해당 파티션의 모든 데이터를 잃어 버릴 수 있거나 비어있는 경우 다음 단계를 수행하십시오.

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. 해당 파티션에 중요한 데이터가 없는지 확인하고 다시 확인하십시오.

  4. 사용 gnome-disks"-"기호 / 삭제를 사용하여 손으로 파티션을 제거

  5. 사용하여 gnome-disks새 파티션을 만들 및 오류 주어진 공간을 확인합니다 "느린"옵션을 선택

여기에 이미지 설명을 입력하십시오


우분투 버전이 중요합니까? bionic beaver디스크 검사를 다르게 처리 합니까 ?
Gabriel Fair

해당 버전에서이 프로세스를 시도하지 않았습니다.
Mauricio Gracia Gutierrez
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.