이 SD 카드가 내장된 장치가 있습니다.
[root@(none) ~]# busybox fdisk -l
Disk /dev/mmcblk0: 3965 MB, 3965190144 bytes
4 heads, 16 sectors/track, 121008 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 305 8497 262144+ 83 Linux
/dev/mmcblk0p2 8497 16689 262144+ 83 Linux
/dev/mmcblk0p3 16689 60352 1397247 b Win95 FAT32
그리고 다음 파티션은:
[root@(none) ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 253871 140291 113580 55% /
none 16384 4 16380 0% /tmp
none 127016 4 127012 0% /dev
none 16 4 12 25% /var/lib
none 16 0 16 0% /var/log
none 128 16 112 13% /var/run
/dev/mmcblk0p3 1394520 118036 1276484 8% /mnt/onboard
uImage
약 2MB 크기의 u-boot 커널 이미지 파일이 있습니다 . 다음을 수행하면 정확히 어떻게 되나요?
dd if=uImage of=/dev/mmcblk0 bs=512 seek=2048
내가 이것을 묻는 이유는 무엇입니까? 이 명령은 다음과 같은 이유로 이상해 보입니다.
복사된 이미지가 대상 파티션보다 작습니다.루트 파티션인 /dev/mmcblk0p1에 이미지가 추출된 것으로 보입니다. 305에서 시작하고 dd는 블록 2048을 건너뜁니다. 편집: 참조안톤의 대답- 부팅 파티션 없음
- u-이미지가 추출되었습니다. 대신 u-boot에서 그대로 사용할 것으로 예상했습니다.
배경: 장치는 Kobo Glo이며 업데이트 스크립트를 통해 이 명령을 실행하여 커널이 업데이트됩니다.
답변1
나는 Kobo Glo가 없기 때문에 여기에 있다고 추측합니다. (내 Bookeen HD가 재프로그래밍 가능했으면 좋겠습니다.)
내부에 2Gb SD 메모리가 있는 것 같습니다(60352개의 실린더, 실린더당 32K).
실제로 dd
512개 블록 중 2048개(1048576)가 건너뛰었는데 이는 305개 실린더 오프셋(9994240)보다 적습니다. 실제로 /dev/mmcblk0p1
이 방법으로 파티션에 도달하려면 8Mb 이상이 작성되어야 합니다.
장치가 부팅되는 방법은 펌웨어에 따라 다르지만 처음 1Mb의 SD 메모리를 통해 기본적인 부팅을 수행한 다음 dd
.
/dev/mmcblk0p1
256Mb((8497 - 305)*32768)이며 /
vv 또는 vv 의 백업을 통해 설치된 것으로 보입니다 /dev/mmcblk0p2
.