A 플래시 드라이브에는 루트 파일 시스템(파일 시스템 - 폴더 구조와 내용이 포함된 이미지)이 있습니다. 플래시 드라이브는 기본 파일 시스템으로 UBI를 사용합니다. 즉, ext4를 사용한다고 말한 것처럼 데이터 블록이 파일에 매핑되는 방식입니다.
rootfs on / type rootfs (rw)
ubi0:root on / type ubifs (rw,sync)
첫 번째 인수로 물리적 드라이브가 있는 경우(예: rootfs
하나를 갖는 대신 /dev/sda
) 백업에 dd를 사용하는 방법을 알고 있지만 여기서는 현재 사례에서 드라이브의 주소를 지정하는 방법(경로가 무엇인지)을 모릅니다 rootfs
.
footfs
어떤 파일이 어떤 파일에 ubi0:root
해당하는지 어떻게 알 수 있나요 ?
답변1
UBIFS 파티션을 백업/복원하려면 dd를 사용하여 UBI 마운트에서 UBI 이미지를 생성한 다음 mtd-util에서 ubiupdatevol 프로그램을 사용하여 복원합니다.
예 -
이미지를 만드세요:
dd if=/dev/ubi0_0 of=/save_loc/rfs1.ubi
대상 파티션을 마운트 해제합니다.
umount /.rfs2
이미지를 대상 파티션으로 복원합니다.
ubiupdatevol /dev/ubi1_0 /save_loc/rfs1.ubi
새로 고친 파티션을 다시 마운트합니다.
mount -t ubifs -o compr=zlib,ro ubi1:rootfs /.rfs2
편집: ubi#이 찾고 있는 이름을 명확히 하려면 mtd-util 'ubinfo'를 실행하십시오.
ubi0
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 960 (121896960 bytes, 116.2 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 80
Current maximum erase counter value: 288
Minimum input/output unit size: 2048 bytes
Character device major/minor: 250:0
Present volumes: 0
Volume ID: 0 (on ubi0)
Type: dynamic
Alignment: 1
Size: 874 LEBs (110977024 bytes, 105.8 MiB)
State: OK
Name: rootfs
Character device major/minor: 250:1
답변2
rootfs
마운트되는 것은 /
일반적으로 "실제" 루트 파일 시스템을 마운트하는 데 필요한 도구만 포함하고 완료되면 지워지는 메모리 내 파일 시스템입니다. rootfs의 초기 내용은 다음과 같습니다.파일 시스템 초기화이미지는 커널 바이너리 내부 또는 옆에 저장되고 부트로더에 의해 로드됩니다.
플래시의 루트 파일 시스템은 ubi0:root
3계층 시스템입니다.
(이 답변의 나머지 부분을 주의해서 다루시기 바랍니다. 저는 실제로 UBI를 사용해 본 적이 없습니다.)
볼륨 ubi0:root
은 다음에 의해 생성됩니다.ubi
모듈 매개변수또는ubiattach
유용. UBI 계층과 그 위의 파일 시스템 사이의 인터페이스가 "이 위치에 이 바이트를 쓰는 것"보다 더 복잡하기 때문에 이것은 블록 장치가 아닙니다. 당신은 할 수읽기 전용 블록 장치 만들기UBI 위에서 명령을 사용 ubiblock
하고 백업하십시오.
ubiblock --create /dev/ubi0_0
cat /dev/ubi0_0 >backup
ubiblock --remove /dev/ubi0_0