OFFS 포맷하기¶
mkfs.offs 툴을 이용하여 블럭 디바이스 장치를 OFFS 파일 시스템으로 포맷합니다.
mkfs.offs 사용법¶
mkfs.offs 명령어 형식은 아래와 같습니다.
mkfs.offs [-v -f -s sectors_per_cluster -S sector_size -e]
<mmcblk path or mmcblk partition path>
<config file path>
<active format section name>
-v옵션은 포맷 진행 과정에 상세한 로그를 출력합니다.-f옵션은 RAW 포맷을 진행합니다. MBR을 덮어쓰며 파티션 테이블을 새로 생성합니다.-s <sectors_per_cluster>옵션은 클러스터당 섹터 개수를 설정합니다. 2의 거듭제곱 값으로 1, 2, 4, 8, 16, 32, 64, 128 값이 허용됩니다.-S <sector_size>옵션은 섹터 크기를 설정합니다. 기본값은 512바이트입니다. 2의 거듭제곱 값으로 512 (2^9), 1024, 2048, 4096, ..., 32768 (2^15) 값이 허용됩니다. 시스템에 따라서 인식 못 할 수 있습니다.-e옵션은 SD카드가 아닌 외장형 HDD나 SDD 저장 장치를 포맷하는 경우에 지정합니다.<mmcblk path or mmcblk partition path>첫번째 필수 인수로 저장장치 경로입니다.-f옵션을 지정한 경우, RAW 포맷을 위해 블럭 장치 경로을 지정합니다. 예를 들어 SD 카드의 경우 "/dev/mmcblk0" 입니다.<config file path>두번째 필수 인수로 포맷 환경 설정 파일 경로입니다.<active format section name>세번째 필수 인수로 포맷 환경 설정 파일 내에서 실제 포맷 구성을 적용 할 섹션 이름입니다.
Note
-s 나 -S 옵션을 지정한 경우, -f 옵션도 함께 지정해야 합니다. -e 옵션으로 외장 하드를 포맷할 경우에도 -f 옵션을 함께 지정해야 합니다.
Note
SD카드 포맷 시 장치 경로를 파티션이 아닌 블럭 장치 경로로 지정하게 되면 RAW 포맷이 진행됩니다. 예를 들어, 파티션 경로인 "/dev/mmcblk0p1" 을 지정하면 해당 파티션을 포맷하지만, "/dev/mmcblk0" 를 지정하면 RAW 포맷을 진행하게 됩니다.
포맷 환경 설정 파일¶
mkfs.offs는 환경 설정 파일 경로와 환경 설정 파일 내에 있는 실제 적용할 섹션 이름을 인수로 받습니다.
mkfs.offs는 이 섹션에서 명시된 폴더 구조와 특성으로 포맷을 진행합니다.
환경 설정 파일은 general 섹션과 여러개의 <사용자 정의 섹션> 으로 구성되어 있습니다.
; 나 # 로 시작하는 줄은 주석 줄입니다.
general 섹션¶
[general]
label=<볼륨 라벨>
keep_root_files=<1 또는 0>
- label 최대 11 글자로 대문자로 이루어진 볼륨 라벨입니다. 11자보다 더 길 경우, 포맷이 취소됩니다.
- keep_root_files
1: 루트 폴더에 있는 파일을 그대로 유지 합니다.0: 루트 폴더에 있는 파일들도 포맷시 지워집니다.
사용자 정의 섹션¶
환경 설정 파일은 하나 이상의 <사용자 정의 섹션> 으로 구성됩니다.
[section_name]
folders=<총 폴더 개수>
mode=<모드>
signature=<시그너쳐>
folder<N>=<이름>
folder<N>_size=<파일 최대 크기>
folder<N>_percent=<할당 비율>
folder<N>_mode=<모드>
- section_name 사용자가 정의하는 임의 섹션 이름입니다. 공백은 없어야 합니다. 대소문자 구분하지 않습니다.
- folders 생성할 폴더 개수입니다.
- mode 용도를 지정합니다.
driving,parking,general중 하나를 지정합니다. 단순 구분 용도이며 동작에 아무런 영향을 끼치지 않습니다. - signature 시그너쳐 이름입니다. 최대 12 글자로 이루어지며 공백은 허용되지 않습니다. 포맷이 적용된 섹션 이름을 구분하기 위함입니다.
이후 키값은 folder<N>- 접두사가 붙습니다. <N>은 1번부터 시작되며 1씩 증가합니다. <N>의 최대 값은 <총 폴더 개수>입니다.
- folder<N> 은 최대 11글자로 이루어진 폴더명입니다. 11자보다 더 길 경우 포맷이 취소됩니다.
- folder<N>-size 는 폴더 내에 파일의 최대 크기입니다. MB 단위입니다. 4의 배수로 설정합니다.
- folder<N>-percent 는 이 폴더의 차지하는 총 크기를 전체 용량 대비 퍼센트로 지정합니다.
- folder<N>-mode 는 포맷 시 이 폴더에 대해 적용되는 모드입니다.
0: 정해진 최대 크기로 예약 파일을 생성합니다. 기본 모드입니다. 녹화 파일 저장 등에 적합합니다. 이 유형으로 최대 4개의 폴더를 가질 수 있습니다.1: 폴더가 존재할 경우, 항상 새로 생성합니다. 예약 파일을 생성하지 않습니다. 빈 폴더입니다.2: 폴더가 존재할 경우, 그 폴더 내의 파일을 지우지 않고 유지합니다. 폴더가 없을 경우, 새로 생성합니다. 예약 파일을 생성하지 않습니다. 빈 폴더입니다. 시스템 운영에 필요한 시스템 설정 파일이나 로그 기록 등을 보관하는 용도에 적합합니다.
환경 설정 파일 예¶
아래는 1개의 사용자 정의 섹션을 갖는 환경 설정 파일 예입니다.
[general]
;DISK label (max 11 characters)
label=MYSD
;keep the files in the root directory
keep_root_files=1
;
; note: reserved file size should be multiple of 4.
;
[32GB_DRV]
;# of reserved folders.
;Max number of reserved folders is 4.
folders=6
;valid mode types: driving, parking, general
mode=driving
;signature (max 12-byte)
signature=32GB_DRV
;folder name. max 11 characters
folder1=DRIVING
;file size in this folder. unit is MB.
folder1_size=180
folder1_percent=50
;mode 0: preserver files, 1:always new, 2: keep if exists;otherwise create
folder1_mode=0
folder2=PARKING
folder2_size=180
folder2_percent=20
folder2_mode=0
folder3=EVENT
folder3_size=24
folder3_percent=10
folder3_mode=0
folder4=MOTION
folder4_size=24
folder4_percent=10
folder4_mode=0
folder5=SNAPSHOT
folder5_size=4
folder5_percent=5
folder5_mode=1
folder6=Config
folder6_size=1
folder6_percent=5
folder6_mode=2
mkfs.offs 사용예¶
아래는 위 환경설정 파일을 사용하여 SD 카드를 포맷하는 예입니다.
$ ./mkfs.offs /dev/mmcblk0p1 ./offs-format.cfg 32GB_DRV
OFFS Version 3.14.4(aarch64) (build 48643)
Free memory 852389888
label: MYSD
keep the root files: Yes
folders#: 6
mode: Driving
signature: 32GB_DRV
folder[0]: "DRIVING" 180MB 50% mode: PreserveFiles
folder[1]: "PARKING" 180MB 20% mode: PreserveFiles
folder[2]: "EVENT" 24MB 10% mode: PreserveFiles
folder[3]: "MOTION" 24MB 10% mode: PreserveFiles
folder[4]: "SNAPSHOT" 0MB 0% mode: AlwaysCreateNew
folder[5]: "Config" 0MB 0% mode: KeepIfExistsOtherwiseCreate
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: KL730
WR align 16384 chunk 131072
SIGNATURE: KL730
formatting...
disk size 32040288256 bytes (30556.00 MB, 29.84 GB)
root size 0 bytes (0.00 MB, 0.00 GB)
DRIVING 50% 180 MB #85
PARKING 20% 180 MB #34
EVENT 10% 24 MB #128
MOTION 10% 24 MB #128
SNAPSHOT 0% 0 MB #0
Config 0% 0 MB #0
(free) 2992 MB
SUCCESS (22.050688 sec).
아래는 외장형 하드디스크(2TB)를 포맷하는 예입니다.
$ sudo ./mkfs.offs -f -e /dev/sdk ./offs-format-gw-4ch.cfg driving
OFFS Version 3.13.20(x86_64) (build 42906)
Free memory 7048966144
warn: "/dev/sdk" path is not in mmcblk device path like /dev/mmcblk0. try to raw format the whole block device.
label: 4CH-CAR-DVR
keep the root files: Yes
folders#: 5
mode: Driving
signature: GW-4CH-DEV
folder[0]: "Drive" 356MB 35% mode: PreserveFiles
folder[1]: "Event" 124MB 20% mode: PreserveFiles
folder[2]: "Time Lapse" 168MB 35% mode: PreserveFiles
folder[3]: "DTG" 0MB 0% mode: AlwaysCreateNew
folder[4]: "Config" 0MB 0% mode: KeepIfExistsOtherwiseCreate
WR chunk 131072 buf 1024K
MBR fs 2016
MBR fs 8160
PBR cl 65536, spc 128, bps 512
FAT 0x800000 0x8000000 8192 245760
DAT 0xf800000 1 1
WR align 65536 chunk 131072
formatting...
disk size 2000394739200 bytes (1907725.12 MB, 1863.01 GB)
root size 0 bytes (0.00 MB, 0.00 GB)
Drive 35% 356 MB #1876
Event 20% 124 MB #3077
Time Lapse 35% 168 MB #3975
DTG 0% 0 MB #0
Config 0% 0 MB #0
(free) 190521 MB
SUCCESS (2.059001 sec).