OFFS 검사하기¶
fsck.offs 툴을 사용하여 OFFS 파일 시스템을 검사합니다.
fsck.offs 사용법¶
fsck.offs 명령어 형식은 아래와 같습니다.
fsck.offs [-anxdze] [-i <1|2>] <disk path>
-a옵션은 자동으로 문제가 발견되면 고칩니다. 3.9.x 이전 버전은 문제 보고만 합니다.-n옵션은 자동으로 고치지 않습니다.-x옵션은 검사 전 unmounting 하지 않습니다. 이것은 다른 응용프로그램에서 OFFS를 사용하고 있는 경우, 유용합니다.-n옵션과 함께 사용되어, 검사 결과 값을 얻습니다.-d옵션은 상세 로그를 출력합니다.-i옵션은 손상된 AVI 파일 복구시에 필요합니다. 녹화 당시 사용자 데이터 저장 방식을 지정합니다.1값은 사용자 데이터가 영상 트랙 헤더 STRD chunk에 저장되는 방식입니다.2값은 STRD chunk에는 사용자 데이터의 위치와 크기 정보만 저장되고 실제 사용자 데이터는 Media 데이터 chunk에 저장되는 방식입니다.
-z옵션은 녹화된 모든 AVI 파일들을 검사합니다.-n옵션이 없으면 손상된 AVI 파일을 복구합니다.-e옵션은 HDD나 SDD 같은 외장 하드 디스크 저장 장치를 검사하는데 필요합니다.<disk path>는 필수 인자 값으로 검사할 저장 장치 경로입니다.lsblk나mount등의 명령으로 저장 장치 경로를 확인할 수 있습니다.
fsck.offs 명령 실행 결과 코드는 아래와 같습니다.
이름 |
값 |
설명 |
|---|---|---|
| Ok | 0 | 문제가 발견되지 않았습니다. |
| NeedFormat | 1 | 포맷이 필요합니다. |
| NoFAT32 | 2 | FAT32 파티션이 발견되지 않았습니다. |
| NoDev | 3 | 저장 장치가 발견되지 않았습니다. |
| Retry | 4 | 내부 오류로 재시도바랍니다. |
| BadMBR | 5 | MBR이 없거나 손상되었습니다. |
| NoVolumeSize | 6 | 볼륨 크기가 없습니다. |
| BadPBR | 7 | PBR이 없거나 손상되었습니다. |
| NotOFFS | 8 | OFFS 포맷이 아닙니다. |
| BadOFFS | 9 | 손상된 OFFS 포맷입니다. |
| BadOptions | 10 | 알 수 없는 명령어 옵션입니다. |
| MBRReadError | 11 | MBR 읽기 오류입니다. SD 카드 연결 상태를 확인하세요. |
| NoRecoverySpace | 12 | 데이터를 복원하는 데 필요한 공간이 부족합니다. 완전한 포맷이 필요합니다. |
| BadMBRSignature | 13 | 손상된 MBR signature (55 AA) 입니다. |
| ReadOnlyDev | 14 | 읽기 전용 저장 장치입니다. |
| DevIoctlError | 15 | 장치 ioctl() 오류입니다. |
| UnknownVolumeLabel | 16 | 모르는 볼륨 라벨입니다. |
| UnknownSignature | 17 | 모르는 Signature 입니다. |
쉘에서 fsck.offs 명령 실행 결과 코드는 $? 값으로 알 수 있습니다.
$ echo $?
0
fsck.offs 검사 결과 리포트¶
fsck.offs 검사가 끝나면 아래 3개 파일이 /tmp 폴더에 생성됩니다.
/tmp/offs.signature포맷에 사용한 환경 파일 내 사용자 섹션의 Signature 문자열입니다. 줄바꿈없는 최대 12글자 문자열입니다./tmp/offs.rootfiles루트 디렉토리에 존재하는 파일 목록입니다. 파일이 없으면 비어 있습니다./tmp/offs.info포맷에 적용된 폴더 구성 내용입니다.
아래는 각 파일의 내용 예시입니다.
/tmp/offs.signature 내용 예입니다.
32GB_DRV
/tmp/offs.rootfiles 내용 예입니다. 2개 파일이 존재합니다.
README.txt
Settings.ini
/tmp/offs.info 내용 예입니다. result 키 값이 검사 결과 코드입니다.
version=3.14
result=0
mode=driving
folders=6
folder1=DRIVING
folder1_size=180
folder1_percent=50
folder1_mode=0
folder1_files=85
folder2=PARKING
folder2_size=180
folder2_percent=20
folder2_mode=0
folder2_files=34
folder3=EVENT
folder3_size=24
folder3_percent=10
folder3_mode=0
folder3_files=128
folder4=MOTION
folder4_size=24
folder4_percent=10
folder4_mode=0
folder4_files=128
folder5=SNAPSHOT
folder5_size=0
folder5_percent=0
folder5_mode=1
folder5_files=0
folder6=Config
folder6_size=0
folder6_percent=0
folder6_mode=2
folder6_files=0
fsck.offs 사용예¶
아래는 자동으로 unmount하고 자동으로 복구하는 사용예입니다.
$ fsck.offs /dev/mmcblk0p1
version: 3.14.4(arm64) (build 48643)
dev path: /dev/mmcblk0p1
disable auto repair
WR chunk 131072 buf 1024K
/dev/mmcblk0 readonly? 0
MBR fs 8160
PBR cl 16384, spc 32, bps 512
OFFS(ver. 3.14, type 1) detected
FAT 0x404000 0xb7c000 32 15296
DAT 0x12f4000 1 1
VOLUME: MYSD
WR align 16384 chunk 131072
SIGNATURE: 32GB_DRV
Configuration#6:
DRIVING 50% 180 MB #85 -0 69 32 #43
PARKING 20% 180 MB #34 -0 979525 75 #18
EVENT 10% 24 MB #128 -0 1371461 93 #65
MOTION 10% 24 MB #128 -0 1568581 158 #65
SNAPSHOT 0% 0 MB #0 -0 1765701 0 #0
Config 0% 0 MB #0 -0 1765957 0 #0
DRIVING repairable
PARKING repairable
EVENT repairable
MOTION repairable
signature path: /tmp/offs.signature
rootfiles path: /tmp/offs.rootfiles
offs info path: /tmp/offs.info
signature: 32GB_DRV
OFFS check passed successfully (1090548 usec).
$ echo $?
아래는 unmount하지 않고 자동 복구 하지 않는 사용예입니다. Oasis 응용 프로그램이 OFFS를 사용 중인 상태에서 SD카드의 OFFS 파일시스템을 검사하는 예입니다.
$ fsck.offs -nx /dev/mmcblk0p1
$ echo $?
아래는 외장 하드디스크를 unmount하지 않고 자동 복구 하지 않는 사용예입니다.
$ fsck.offs -enx /dev/sdk
$ echo $?
아래는 AVI 녹화 파일의 사용자 데이터 보관 방식이 1인 경우 손상된 AVI 파일을 복구하는 사용예입니다.
$ fsck.offs -i 1 /dev/mmcblk0p1
$ echo $?
아래는 Oasis 응용 프로그램이 녹화 중인 상태에서, 녹화된 AVI 파일 중 손상된 AVI이 있는지 확인하는 사용예입니다.
$ fsck.offs -nxz /dev/mmcblk0p1
$ echo $?
덤프 이미지 검사하기¶
SD카드 덤프 이미지나 가상의 블럭 장치(루프백 장치) 파일을 검사하는 방법입니다.
SD카드를 사용한 장치가 arm64 기반이고, 덤프 이미지를 검사는 x86_64의 데스트톱 이라면, x86_64용 fsck.offs가 필요합니다.
-
losetup -f명령으로 비어있는 루프백 장치를 찾습니다.$ losetup -f /dev/loop11 -
루프백 장치에 덤프 이미지를 연결합니다.
$ sudo losetup /dev/loop11 <디스크 덤프 이미지 파일 경로> -
선택적으로 덤프 이미지의 파일시스템을 체크할 수 있습니다.
$ sudo losetup -s /dev/loop11 -
루프백 장치에 연결된 덤프 이미지를 검사합니다.
$ sudo fsck.offs -d /dev/loop11 -
선택적으로 루프백 장치를 mounting 하여 내용을 확인합니다.
$ sudo offs.fuse -d /dev/loop11 <마운팅할 디렉토리 경로>unmounting 합니다.
$ sudo umount <마운팅한 디렉토리 경로> -
검사를 마치면 사용 중인 루프백 장치를 해제합니다.
$ sudo losetup -d /dev/loop11