리눅스에서 하드 디스크의 나쁜 섹터 또는 나쁜 블록 확인하는 방법

먼저 나쁜 섹터/블록을 정의해 보겠습니다. 이는 디스크 드라이브나 플래시 메모리의 일부분으로, 디스크 표면의 고정된 물리적 손상 또는 플래시 메모리 트랜지스터 실패로 인해 더 이상 읽거나 쓸 수 없는 부분입니다.

나쁜 섹터가 계속 축적되면 디스크 드라이브나 플래시 메모리 용량에 부정적이거나 파괴적인 영향을 미칠 수 있으며 잠재적인 하드웨어 오류로 이어질 수 있습니다.

또한 나쁜 블록의 존재는 새 디스크 드라이브를 구입하거나 나쁜 블록을 사용할 수 없는 것으로 표시하기 시작해야 할 것임을 알리는 데 중요합니다.

따라서 이 기사에서는 특정 디스크 검사 유틸리티를 사용하여 Linux 디스크 드라이브나 플래시 메모리에서 나쁜 섹터의 존재 여부를 판별할 수 있는 필수 단계를 살펴보겠습니다.

그럼 다음은 방법입니다.

badblocks 도구를 사용하여 Linux 디스크의 나쁜 섹터 확인

A badblocks program enables users to scan a device for bad sectors or blocks. The device can be a hard disk or an external disk drive, represented by a file such as /dev/sdc.

먼저 fdisk 명령을 관리자 권한으로 사용하여 모든 디스크 드라이브나 플래시 메모리 및 해당 파티션에 대한 정보를 표시합니다.

$ sudo fdisk -l
List Linux Filesystem Partitions

그런 다음 다음과 같이 입력하여 Linux 디스크 드라이브를 검사하여 나쁜 섹터/블록을 확인하십시오.

$ sudo badblocks -v /dev/sda10 > badsectors.txt
Scan Hard Disk Bad Sectors in Linux

위의 명령어에서 badblocks/dev/sda10 장치를 스캔하고(-v 옵션을 사용하여 작업의 자세한 내용을 표시) 작업 결과를 출력 리디렉션을 통해 badsectors.txt 파일에 저장합니다.

디스크 드라이브에서 나쁜 섹터를 발견한 경우, 디스크를 마운트 해제하고 보고된 섹터에 쓰지 않도록 운영 체제에 지시해야 합니다.

e2fsck (ext2/ext3/ext4 파일 시스템용) 또는 fsck 명령어를 badsectors.txt 파일과 장치 파일을 사용하여 아래 명령어와 같이 실행해야 합니다.

-l 옵션은 명령어가 filename(badsectors.txt)으로 지정된 파일에 나열된 블록 번호를 나쁜 블록 목록에 추가하도록 지시합니다.

------------ Specifically for ext2/ext3/ext4 file-systems ------------ 
$ sudo e2fsck -l badsectors.txt /dev/sda10

OR

------------ For other file-systems ------------ 
$ sudo fsck -l badsectors.txt /dev/sda10

Smartmontools를 사용하여 Linux 디스크의 나쁜 섹터를 스캔하는 방법

이 방법은 S.M.A.R.T(스마트) (자가 진단, 분석 및 보고 기술) 시스템이 탑재된 현대 디스크(ATA/SATA 및 SCSI/SAS 하드 드라이브 및 솔리드 스테이트 드라이브)에 대해 더 신뢰할 수 있고 효율적입니다. 이 시스템은 하드웨어 고장이 예상될 경우 해당 상태를 감지, 보고 및 로깅하는 데 도움이 됩니다.

아래 명령어를 실행하여 smartmontools를 설치할 수 있습니다:

------------ On Debian/Ubuntu based systems ------------ 
$ sudo apt-get install smartmontools

------------ On RHEL/CentOS based systems ------------ 
$ sudo yum install smartmontools

설치가 완료되면 통합 디스크의 S.M.A.R.T 시스템을 제어하는 smartctl을 사용할 수 있습니다. 해당 매뉴얼 페이지나 도움말 페이지를 참조할 수 있습니다.

$ man smartctl
$ smartctl -h

이제 smartctrl 명령을 실행하고 다음 명령과 같이 특정 장치를 인수로 지정하십시오. 플래그 -H 또는 --health가 포함되어 있어야 합니다. 이렇게 하면 SMART 전체적인 건강 자가진단 테스트 결과가 표시됩니다.

$ sudo smartctl -H /dev/sda10
Check Linux Hard Disk Health

위 결과는 귀하의 하드 디스크가 건강하며, 곧 하드웨어 고장을 경험하지 않을 것임을 나타냅니다.

디스크 정보 개요를 보려면 -a 또는 --all 옵션을 사용하여 디스크에 관한 모든 SMART 정보를 출력하고, -x 또는 --xall을 사용하여 디스크에 관한 모든 SMART비-SMART 정보를 표시할 수 있습니다.

이 튜토리얼에서는 디스크 드라이브 건강 진단에 관한 매우 중요한 주제를 다루었습니다. 귀하의 생각을 공유하거나 질문을 하려면 아래의 피드백 섹션을 통해 저희에게 연락하십시오. Tecmint와 항상 연결되어 있도록 기억하십시오.

Source:
https://www.tecmint.com/check-linux-hard-disk-bad-sectors-bad-blocks/