Linux Storage Troubleshooting: blkid & dmesg¶
진단 경계와 중단 조건¶
- 먼저 장치 serial/WWN, 용량, 연결 시각과 mount/LVM/RAID 사용 여부를 식별합니다.
/dev/sdX이름은 재부팅·재연결 후 바뀔 수 있습니다. - 관찰 명령과 변경 명령을 분리합니다. 마운트된 쓰기 가능 파일시스템에
fsck, format, partition 변경을 실행하지 않습니다. - 로그 한 줄을 원인으로 확정하지 말고
lsblk,findmnt,udevadm, SMART/NVMe log와 kernel journal의 동일 시간대를 교차 확인합니다. - 완료 기준은 장치 인식·파일시스템·mount·읽기/쓰기 중 문제 계층을 좁히고 데이터 보호 또는 복구 계획을 기록한 상태입니다.
1. blkid 명령어 문제 해결¶
blkid는 블록 장치의 UUID와 파일 시스템 타입을 확인하는 핵심 도구이지만, 가끔 정보가 출력되지 않는 경우가 있습니다.
주요 원인 및 해결 방안¶
A. 권한 또는 조회 범위¶
- 현상: 아무런 출력이 없거나 일부 장치만 보임.
- 원인: 권한, container/device namespace 또는 명시한 장치 범위 때문에 일부 정보가 보이지 않을 수 있습니다.
- 해결: 먼저 오류와 현재 권한을 확인하고, 승인된 진단 환경에서만
sudo로 비교합니다.
B. udev 및 장치 파일 생성 지연¶
- 원인: 커널은 장치를 인식했으나,
udev데몬이/dev디렉토리에 장치 파일(예:/dev/sdb1)을 생성하는 데 시간이 걸리거나 실패한 경우. - 분석: 장치 연결 직후 바로 명령어를 입력하면 발생할 수 있습니다. 잠시 대기하거나
dmesg로 udev 관련 에러를 확인합니다.
C. 파일 시스템 손상 또는 Raw Disk¶
- 원인:
- 파티셔닝만 되고 포맷(파일 시스템 생성)이 안 된 경우 (UUID 없음).
- 파일 시스템 헤더/슈퍼블록 손상으로 메타데이터를 읽을 수 없는 경우.
- 해결:
lsblk -f와 읽기 전용 probe로 상태를 확인합니다. 백업·이미징과 mount 해제를 끝낸 뒤 해당 파일시스템용 검사 도구를 사용하며, 포맷은 데이터 폐기 승인이 있는 신규 장치에만 수행합니다.
D. 캐시 불일치¶
- 원인:
blkid는 성능을 위해/etc/blkid.tab에 캐싱된 정보를 사용하기도 합니다. 실제 장치 상태와 캐시가 다르면 출력이 누락될 수 있습니다. - 해결:
sudo blkid -p /dev/sdX(캐시 무시하고 장치에서 직접 탐색)- 캐시 갱신 (일반적으로 재부팅이나
update-initramfs과정 등에서 갱신됨)
2. dmesg를 통한 심층 분석¶
장치가 blkid나 lsblk에 보이지 않으면 hardware, transport, namespace, driver 또는 kernel 인식 단계부터 조사합니다. dmesg/journal은 중요한 증거 중 하나입니다.
분석 4단계 프로세스¶
1단계: 실시간 모니터링 (-w)¶
장치를 연결하기 전**에 터미널을 열고 모니터링을 시작합니다. * **정상: "New USB device found", "Attached SCSI disk" 메시지 발생. * 관찰 없음: 물리 연결·전원·케이블 외에도 권한, 다른 namespace, 로그 rate limit 또는 이미 연결된 장치인지 확인합니다.
2단계: 에러 키워드 필터링¶
방대한 로그에서 핵심 에러를 찾습니다.
* I/O Error: 디스크 배드 섹터, 컨트롤러 고장 가능성. * Time-out: 장치 응답 없음 (과부하 또는 드라이운 호환성). * Power: 전원 부족 문제 (특히 외장 하드).3단계: 드라이버/펌웨어 확인¶
장치는 감지되었으나 동작하지 않을 때 확인합니다.
* 키워드: firmware not found, module verification failed
* 의미: 하드웨어를 제어할 SW(커널 모듈)가 없거나 로드에 실패함.
* 해결: 해당 펌웨어 패키지 설치 (linux-firmware 등) 또는 제조사 드라이버 설치.
4단계: 장치 명명(Naming) 확인¶
커널이 최종적으로 할당한 이름을 찾습니다.
* 로그 끝부분에 [sda] Attached SCSI disk 와 같은 메시지를 확인하여, /dev/sda로 할당되었는지 확인합니다.
* 이 이름으로 lsblk나 fdisk에서 교차 검증을 수행합니다.