Watch at Ease세상을 읽고, 일상의 답을 찾다.

Technology · 실용 가이드

Linux “Input/output error”? fsck 전에 실패 계층을 증명하세요

쓰기를 멈추고 정확한 path를 mount와 backend에 매핑하며 첫 kernel/service error를 보존한 뒤 증명된 계층만 복구합니다.

원본 기술 일러스트: Linux 실패 path를 mount, filesystem, transport와 storage 계층에 매핑합니다.
원본 기술 일러스트: EIO는 작업만 나타내므로 복구 전에 path를 매핑합니다. Watch at Ease

“Input/output error”는 EIO이지 원인 진단이 아닙니다. local device, filesystem metadata, network transport, FUSE/9p session, userspace filesystem 구현에서 모두 발생할 수 있습니다.

해당 path의 쓰기를 멈추고 작업과 시각을 기록하며 mount/backend와 첫 하위 오류를 보존하고 읽을 수 있는 데이터를 보호한 뒤 한 branch만 복구합니다.

1. incident를 동결하고 readable copy를 보호합니다

전체 command, path, 시각, status, 첫 stderr를 기록하고 writer와 자동 cleanup을 멈춥니다.

읽을 수 있는 데이터는 독립 storage로 보존하고 skip과 hash를 기록합니다.

2. path를 실제 mount와 backend에 매핑합니다

namespace, filesystem type, source, option을 기록하고 block, RAID, remote, FUSE, container, WSL 9p를 구분합니다.

path에서 mount, mapper/array, physical/remote endpoint까지 각 계층을 증명합니다.

3. 첫 하위 오류를 보존합니다

reboot 전에 kernel/service log를 시각으로 읽고 첫 device, block, inode, server 또는 session 오류를 저장합니다.

remote/userspace filesystem은 양쪽 log와 안전한 별도 mount 실험으로 session 경계를 확인합니다.

4. 증명된 owner만 복구합니다

local device는 cable, power, controller, health를 먼저 확인하고 array/remote는 해당 절차를 사용합니다.

실제 filesystem에 맞는 checker를 unmounted 상태에서 사용하며 다른 형식에 e2fsck를 실행하지 않습니다.

5. 원래 path와 data contract를 검증합니다

같은 namespace/service route로 원래 작업을 반복하고 known file, hash, source, type, error counter를 확인합니다.

first error, owner, preservation, repair, acceptance를 저장하고 새 EIO가 나오면 보존 단계로 돌아갑니다.

원본 기술 일러스트: Linux EIO의 보존, 분류, 복구와 byte 검증 단계입니다.
원본 기술 일러스트: 첫 오류와 읽을 수 있는 데이터를 보존한 뒤 복구합니다. Watch at Ease