dd를 사용하여 ubi 파일 시스템을 백업하시겠습니까?

dd를 사용하여 ubi 파일 시스템을 백업하시겠습니까?

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:root3계층 시스템입니다.

  • 상단에는유비프스파일 시스템.
  • 중간에,보편적 기본 소득볼륨은 원시 플래시 위에 웨어 레벨링을 제공합니다.
  • 맨 아래에는 원시 플래시 인터페이스(MTD)가 있습니다.

(이 답변의 나머지 부분을 주의해서 다루시기 바랍니다. 저는 실제로 UBI를 사용해 본 적이 없습니다.)

볼륨 ubi0:root은 다음에 의해 생성됩니다.ubi모듈 매개변수또는ubiattach유용. UBI 계층과 그 위의 파일 시스템 사이의 인터페이스가 "이 위치에 이 바이트를 쓰는 것"보다 더 복잡하기 때문에 이것은 블록 장치가 아닙니다. 당신은 할 수읽기 전용 블록 장치 만들기UBI 위에서 명령을 사용 ubiblock하고 백업하십시오.

ubiblock --create /dev/ubi0_0
cat /dev/ubi0_0 >backup
ubiblock --remove /dev/ubi0_0

관련 정보