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