가상 파일 시스템을 수동으로 마운트하고 MTD 파티션을 복사하는 방법

가상 파일 시스템을 수동으로 마운트하고 MTD 파티션을 복사하는 방법

Linux 버전 2.6.26.5, 임베디드 장치의 ARM Linux 커널, NAND 기반 장치. 나는 Busybox 복구 쉘(ash)에 있고 명령 세트가 제한되어 있습니다. 가상 파일 시스템을 수동으로 마운트하고 MTD 플래시 파티션을 /tmp에 복사하는 방법은 무엇입니까? 를 사용하려면 플래시 파티션을 백업해야 합니다 nanddump.

# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00004000 00004000 "NAND BootAgent"
mtd1: 000fc000 00004000 "Linux Kernel"
mtd2: 00d00000 00004000 "Root"
mtd3: 00100000 00004000 "Config"
mtd4: 00100000 00004000 "Debug"
mtd5: 00000000 00004000 "Data"

nanddump -f /tmp/mtd0.bin /dev/mtd0

이를 위해서는 어떤 가상 파일 시스템을 설치해야 합니까? 이 같은

# mount -t proc proc /proc
# mount -t sysfs sysfs /sys
# mount -t tmpfs tmpfs /tmp
# mount -t tmpfs none /dev
# mknod -m 666 /dev/zero c 1 5
# mknod -m 666 /dev/null c 1 3
# mkdir /dev/pts
# mount -t devpts none /dev/pts

아니면 이런 명령을 사용해야 합니까?

mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs -o size=20M,mode=0755 tmpfs /dev
mdev -s

cd /dev
nanddump -f /tmp/mtd0.bin /dev/mtd0

답변1

일반적으로 각 MTD 파티션마다 하나씩 /dev/mtdblockN 장치도 있습니다. nandump, dd, mount 등과 함께 사용할 수 있는 블록 장치입니다.

예를 들어, 어딘가(mkdir -p /media/mnt)에 마운트 지점 디렉터리를 생성해야 합니다. NAND 파티션이 사용하는 파일 시스템에 따라 다릅니다. 예를 들어 두 개의 UBIFS NAND 파티션이 있고 다음 명령을 사용합니다.

/usr/bin/ubiattach /dev/ubi_ctrl -m <MTD_partition> -O <block_size>
/bin/mount -t ubifs ubi1:rootfs0 /media/mnt

nanddump는 파티션에 파일 시스템(예: 커널 이미지)이 없는 경우 작동할 수 있습니다.

nanddump -f /tmp/mtd0.bin /dev/mtdblock0

파티션이 데이터(NOR) 플래시인 경우 dd가 작동합니다.

dd if=/dev/mtdblock1 of=/tmp/mtd1.bin

관련 정보