답변:
불량 섹터를 확인하려면 SMART 데이터를 확인하십시오. 디스크 유틸리티 ( Palimpsest )를 실행하여 가장 잘 액세스 할 수 있습니다 . 불량 블록이 보이지 않더라도 자체 테스트를 시작하여 확인하십시오.
프로그램은 gnome-disk-utility
패키지 로 번들로 제공 됩니다. 운영gksudo gnome-disks
또는 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
자체가 불량 섹터를 찾는 데 도움이되지는 않지만 여전히 불량 섹터가 많으면 데이터가 더 손상 될 수 있습니다. 디스크가 정상일 때만 사용하십시오.
이 답변 전체에서 스토리지 드라이브는 경로에 블록 장치로 나타납니다 /dev/sdc
. 현재 설정에서 스토리지 드라이브의 경로를 찾으려면 다음을 사용하십시오.
palimpsest
)lsblk
와 ls -l /dev/disk/by-id
크기, 파티션, 제조업체와 모델 이름으로 올바른 장치를 찾아보십시오.때때로 저장 매체는 단순히 작동을 거부합니다. 커널과 디스크 관리자에게는 여전히 블록 장치로 나타나지만 파티션 테이블을 보유한 첫 번째 섹터는 읽을 수 없습니다. 다음을 통해 쉽게 확인할 수 있습니다.
sudo dd if=/dev/sdc of=/dev/null count=1
이 명령으로 인해 "입력 / 출력 오류"에 대한 메시지가 표시되면 드라이브가 손상되었거나 예상대로 Linux 커널과 상호 작용하지 못하는 것입니다. 전자의 경우 약간의 운이 좋으면 적절한 장비를 갖춘 데이터 복구 전문가가 컨텐츠를 구할 수 있습니다. 후자의 경우 다른 운영 체제를 사용해 볼 가치가 있습니다. (특별한 드라이버없이 Windows에서 작동하지만 Linux 또는 OS X에서는 작동하지 않는 USB 드라이브를 발견했습니다.)
이를 지원하는 장치는 SMART를 통해 건강에 대해 쿼리 하거나 다른 철저한 무결성 자체 테스트를 수행하도록 지시받을 수 있습니다. 이것은 일반적으로 가장 좋은 옵션이지만 일반적으로 (고대가 아닌) 하드 디스크 및 솔리드 스테이트 드라이브에서만 사용할 수 있습니다. 대부분의 이동식 플래시 미디어는이를 지원하지 않습니다.
추가 자료 및 지침 :
쓰지 않고 전체 장치의 읽기 무결성을 테스트하기 위해 다음 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
현재 테스트 된 블록 범위의 원래 내용을 복원 할 수 없으며 정크 데이터로 덮어 쓰여 파일 시스템이 손상 될 수 있습니다.
비파괴적인 읽기 / 쓰기 검사를 사용하려면 -n
위 badblocks
명령에 옵션을 추가하십시오 .
위와 같지만 쓰기 테스트를 수행 한 후 이전 드라이브 내용을 복원하지 않으면 조금 더 빠릅니다. 어쨌든 데이터가 지워 지므로 (추가적) 부정적인 결과없이 강력한 종료가 유지됩니다.
파괴적인 읽기 / 쓰기 검사를 사용하려면 -w
위 badblocks
명령에 옵션을 추가하십시오 .
fsck-Linux 파일 시스템을 확인하고 복구하십시오. 사용하여 호출
fsck /dev/sda1
여기서 / dev / sda1은 확인하려는 드라이브입니다. 자세한 내용은 'man fsck'를 참조하십시오.
장치에 불량 블록이 있는지 확인하는 'badblocks'명령도 있습니다.
검사시 드라이브를 마운트 해제해야하므로 루트 파티션을 확인하려면 파티션 루트에 'forcefsck'파일을 생성하고 재부팅해야합니다. 다음 부팅시 장치가 점검됩니다.
sudo touch /forcefsck
sudo reboot
또는 Live CD로 부팅하여 검사를 실행할 수 있습니다.
sudo dumpe2fs -b /dev/sda9
. 그러나 디스크가 파일 시스템이 아닌 결함이있는 섹터를 처리하는 것이 더 좋다고 생각합니다 (SMART, badblocks 등, 내 게시물 참조).
명령을 실행하는 불량 블록을 확인할 수 있습니다
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
비파괴적인 읽기-쓰기 테스트 용. 그러면 bad-blocks-result
섹터가 손상된 상태 에서 파일이 생성됩니다 .
-n 비파괴적인 읽기 / 쓰기 모드를 사용합니다. 기본적으로 비파괴 읽기 전용 테스트 만 수행됩니다.
-s 현재 불량 블록 통과의 대략적인 완료율을 디스크에 기록하여 스캔 진행률을 표시합니다.
-v 상세 모드.
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
파일 시스템에 불량 섹터가있는 위치를 알려주고 가능하면 데이터를 멀리 떨어 뜨릴 수 있습니다.자세한 내용은 여기를 참조하십시오 .
fsck
명령은 실패 btrfs
파일 시스템.
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 ( 홈페이지 ) 및 그놈 디스크 는 그래픽 프런트 엔드입니다.
smartctl
"알 수없는 USB 브리지", "-d 옵션을 사용하여 장치 유형을 지정하십시오"라는 메시지가 표시 될 때 처음에 문제가 발생했습니다 . smartmontools.org/wiki/Supported_USB-Devices 에서 필요한 데이터를 찾았습니다 .
F3 (Fight Flash Fraud) 은 가짜 플래시 드라이브 (실제 용량이 광고 용량의 일부인 플래시 드라이브)를 추가로 감지해야하는 또 다른 옵션입니다.
F3 설치
sudo apt install f3
드라이브 삽입
테스트 데이터를 드라이브의 여유 공간에 씁니다 (드라이브가 마운트 된 위치를 확인하십시오 lsblk
)
f3write /media/$USER/D871-DD7C/
테스트 데이터를 읽으십시오
f3read /media/$USER/D871-DD7C/
참고:
Badblocks는 잘 작동하지만 가짜 플래시 드라이브를 감지하도록 설계 되지 않았으며 오류를보고하지 않을 수 있습니다 .
badblocks
와 -w
이나로 fsck
는 사용되지 않도록 손상된 나쁜 마크 부문 /. f3은과 같은 것을 반환 할 수 Corrupted: 16.01 MB (32784 sectors)
있지만 불량 섹터로 표시합니까? 아니면 여전히 불량 블록이 필요합니까? 나는 노력 하고dumpe2fs -b
있는데 ID가 표시되지 않은 것 같습니다.
진행률 표시기를 표시하면서 전체 디스크를 테스트 읽을 수 있습니다.
time sudo pv /dev/sdc >/dev/null
특정 디스크 문제는보고 된 I / O 오류로 나타납니다. 이것은 dd
진행률 표시기 보다 약간 좋으며 명령 줄 인터페이스는 약간 더 표준적이고 덜 타이포하기 쉽습니다 . 그주의 pv
의 기본적 및 향상 버전 cat
. 기본적으로 설치되지는 않지만로 설치할 수 있습니다 sudo apt-get install pv
.
비슷한 접근 방식은 디스크 I / O 오류를 구체적으로 인식하고 "데이터를 구하기 위해 노력하는"기능이있는 사용 가능한 여러 도구 중 하나를 사용하여 디스크를 읽는 것입니다. ddrescue
패키지 관리자에서 검색 하십시오.
dd count=1
또한 저장 매체가 완전히 파손되지 않은 경우 (또는 지원되지 않는 경우) 매우 빠릅니다.
ddrescueview
데이터를 잃을 수 없는 파티션이있는 경우 다음 단계를 수행하십시오.
$fdisk -l commnd
검사 할 파티션을 / dev / sdPTC (검사 할 파티션)라고하고 / scan / resultPath / 폴더에 마운트 된 결과를 저장할 다른 파티션이 있다고 가정합니다.
2.이 명령을 실행할 수 있습니다
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
주어진 장치의 불량 블록을 결정하고 badsectors.txt라는 파일에 저장합니다.
fsck
명령을 사용하여 badsectors.txt 파일에 언급 된 불량 섹터를 사용하지 않도록 Ubuntu에 지시 할 수 있습니다 .$sudo fsck -l /scan_result/badsectors.txt /dev/sda
이렇게하면 교체 할 새 하드 디스크를 얻을 때까지 하드 디스크의 수명이 약간 늘어납니다.
불량 물리 섹터를 확인하려는 전체 파티션이 있고 해당 파티션의 모든 데이터를 잃어 버릴 수 있거나 비어있는 경우 다음 단계를 수행하십시오.
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
해당 파티션에 중요한 데이터가 없는지 확인하고 다시 확인하십시오.
사용 gnome-disks
"-"기호 / 삭제를 사용하여 손으로 파티션을 제거
사용하여 gnome-disks
새 파티션을 만들 및 오류 주어진 공간을 확인합니다 "느린"옵션을 선택
bionic beaver
디스크 검사를 다르게 처리 합니까 ?