Linux

[리눅스] badblocks 명령어 완벽 가이드 사용법(디스크 불량 섹터 검사)

인생아 2024. 10. 21. 09:30
반응형

badblocks는 리눅스에서 디스크의 손상된 블록을 검색하는 데 사용되는 명령어입니다. 하드 드라이브 또는 SSD에 물리적인 오류가 발생할 수 있는데, 이러한 오류는 데이터 손실로 이어질 수 있습니다. badblocks 명령어는 이러한 손상된 블록을 찾아내고, 파일 시스템이 이러한 블록을 사용하지 않도록 방지하는 데 도움을 줍니다. 이 명령어는 주로 시스템 관리자들이 디스크 상태를 점검하거나 장기적인 데이터 무결성을 유지하기 위해 사용합니다.

badblocks 기본 사용법

badblocks 명령어는 다음과 같은 형식으로 사용됩니다:

user@linux:~$ sudo badblocks [옵션] [장치명]

여기서 [장치명]은 검사할 디스크의 이름을 의미하며, 주로 /dev/sda와 같은 형식을 사용합니다.

예시: 디스크의 손상된 블록 찾기

다음 명령어는 /dev/sda 장치의 손상된 블록을 검색하는 예시입니다:

user@linux:~$ sudo badblocks -v /dev/sda

이 명령어는 /dev/sda 디스크의 모든 블록을 검사하고, 손상된 블록이 발견되면 화면에 출력합니다. -v 옵션은 검사 과정을 자세히 출력하는 역할을 합니다. 실행 결과는 아래와 같이 나올 수 있습니다:

Checking for bad blocks in read-only mode
From block 0 to 156280531
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.

위 결과는 손상된 블록이 없는 경우를 나타냅니다. 만약 손상된 블록이 발견되었다면, 해당 블록 번호가 출력됩니다.

결과를 파일로 저장하기

손상된 블록의 정보를 파일로 저장할 수도 있습니다. 이 기능은 파일 시스템 툴(예: e2fscktune2fs)과 함께 사용하여 디스크에서 손상된 블록을 추적하고, 자동으로 해당 블록을 사용하지 않도록 설정할 수 있습니다. 예를 들어, 아래 명령어는 결과를 badblocks.txt 파일에 저장합니다:

user@linux:~$ sudo badblocks -v /dev/sda > badblocks.txt

이 명령어를 실행하면 손상된 블록 목록badblocks.txt 파일에 기록됩니다. 이 파일을 이후 파일 시스템 체크 툴과 함께 사용하면, 시스템이 자동으로 손상된 블록을 배제하고 파일 시스템 무결성을 유지할 수 있습니다.

읽기/쓰기 테스트

디스크의 상태를 좀 더 철저하게 검사하고 싶다면, 읽기/쓰기 테스트를 수행할 수 있습니다. 이는 디스크에 데이터를 기록하고 다시 읽어들이는 방식으로, 더 깊이 있는 검사를 제공합니다. 하지만 이 테스트는 데이터를 덮어쓸 수 있기 때문에 사용 전 반드시 백업을 해야 합니다.

아래 명령어는 읽기/쓰기 테스트를 수행하는 방법입니다:

user@linux:~$ sudo badblocks -wsv /dev/sda

여기서 -w쓰기 모드를 의미하고, -s는 진행 상태를 표시하며, -v는 검사 과정을 자세히 출력합니다. 이 명령어는 디스크 전체에 데이터를 쓰고, 이를 다시 읽어오며 손상된 블록을 탐지합니다. 실행 결과는 아래와 비슷하게 나올 수 있습니다:

Checking for bad blocks in read-write mode
From block 0 to 156280531
Checking for bad blocks (read-write test): done
Pass completed, 0 bad blocks found.

이 과정은 디스크의 크기에 따라 시간이 오래 걸릴 수 있습니다.

실행 예시

다음은 리눅스 터미널에서 badblocks 명령어가 실제로 실행되는 예시입니다:

user@linux:~$ sudo badblocks -v /dev/sda
Checking for bad blocks in read-only mode
From block 0 to 156280531
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.

참고사이트

반응형