콘텐츠로 이동

Linux Storage Troubleshooting: blkid & dmesg

1. blkid 명령어 문제 해결

blkid는 블록 장치의 UUID와 파일 시스템 타입을 확인하는 핵심 도구이지만, 가끔 정보가 출력되지 않는 경우가 있습니다.

주요 원인 및 해결 방안

A. 권한 부족 (Permission Denied) - 가장 흔한 원인

  • 현상: 아무런 출력이 없거나 일부 장치만 보임.
  • 원인: 일반 사용자는 시스템 하드웨어 정보에 대한 완전한 접근 권한이 없습니다.
  • 해결: 반드시 sudo를 사용합니다.
    sudo blkid
    

B. udev 및 장치 파일 생성 지연

  • 원인: 커널은 장치를 인식했으나, udev 데몬이 /dev 디렉토리에 장치 파일(예: /dev/sdb1)을 생성하는 데 시간이 걸리거나 실패한 경우.
  • 분석: 장치 연결 직후 바로 명령어를 입력하면 발생할 수 있습니다. 잠시 대기하거나 dmesg로 udev 관련 에러를 확인합니다.

C. 파일 시스템 손상 또는 Raw Disk

  • 원인:
    1. 파티셔닝만 되고 포맷(파일 시스템 생성)이 안 된 경우 (UUID 없음).
    2. 파일 시스템 헤더/슈퍼블록 손상으로 메타데이터를 읽을 수 없는 경우.
  • 해결: lsblk -f로 파일 시스템 컬럼이 비어있는지 확인하고, 필요시 fsck로 복구하거나 포맷을 진행합니다.

D. 캐시 불일치

  • 원인: blkid는 성능을 위해 /etc/blkid.tab에 캐싱된 정보를 사용하기도 합니다. 실제 장치 상태와 캐시가 다르면 출력이 누락될 수 있습니다.
  • 해결:
    • sudo blkid -p /dev/sdX (캐시 무시하고 장치에서 직접 탐색)
    • 캐시 갱신 (일반적으로 재부팅이나 update-initramfs 과정 등에서 갱신됨)

2. dmesg를 통한 심층 분석

장치가 blkidlsblk에도 뜨지 않는다면 하드웨어/커널 레벨의 문제입니다. dmesg (Kernel Ring Buffer) 분석이 필수입니다.

분석 4단계 프로세스

1단계: 실시간 모니터링 (-w)

장치를 연결하기 전**에 터미널을 열고 모니터링을 시작합니다.

dmesg -w
# 또는
tail -f /var/log/kern.log
* **정상: "New USB device found", "Attached SCSI disk" 메시지 발생. * 비정상: 아무 메시지가 없다면 **물리적 연결, 전원, 케이블, 포트 불량**입니다.

2단계: 에러 키워드 필터링

방대한 로그에서 핵심 에러를 찾습니다.

dmesg | grep -Ei "error|fail|warn"
* I/O Error: 디스크 배드 섹터, 컨트롤러 고장 가능성. * Time-out: 장치 응답 없음 (과부하 또는 드라이운 호환성). * Power: 전원 부족 문제 (특히 외장 하드).

3단계: 드라이버/펌웨어 확인

장치는 감지되었으나 동작하지 않을 때 확인합니다. * 키워드: firmware not found, module verification failed * 의미: 하드웨어를 제어할 SW(커널 모듈)가 없거나 로드에 실패함. * 해결: 해당 펌웨어 패키지 설치 (linux-firmware 등) 또는 제조사 드라이버 설치.

4단계: 장치 명명(Naming) 확인

커널이 최종적으로 할당한 이름을 찾습니다. * 로그 끝부분에 [sda] Attached SCSI disk 와 같은 메시지를 확인하여, /dev/sda로 할당되었는지 확인합니다. * 이 이름으로 lsblkfdisk에서 교차 검증을 수행합니다.