根据项目需求需要扩展分区,我们选用的emmc是8G的,扩展分区需要看ucl2.xml,其中会用到mksdcard.sh脚本创建分区。
#!/bin/sh
# partition size in MB
BOOT_ROM_SIZE=10# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1sfdisk --force ${node} << EOF
${BOOT_ROM_SIZE}M,500M,0c
600M,6000M,83
6200M,,83
EOF
变量:$1 是uc2.xml文件传递进来的参数/dev/mmcblk1
dd if=/dev/zero of=${node} bs=1024 count=1 表示对/dev/mmcblk1的前1024字节数据清零
${BOOT_ROM_SIZE}M,500M,0c 表示10M~500M空间作为fat32的分区mmcblk1p1
600M,6000M,83 表示600M~6G空间作为第二个linux分区mmcblk1p2
6200M,,83 表示6.2G以后所有空间作为第三个linux分区 mmcblk1p3,这部分是我新添加的扩建分区,
所以要扩建新的分区,需要设置起死地址,终止地址和分区类型。
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
分区创建完成之后,在uc2.xml文件上添加一句:
<CMD state="Updater" type="push" body="$ yes | mkfs.ext3 -E nodiscard /dev/mmcblk%mmc%p3">Formatting rootfs partition</CMD>
将新扩建的分区格式化为ext3文件系统,同时需要将rootfs镜像重新烧录一次,否则会报这个错误。
EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
EXT4-fs (mmcblk1p2): bad geometry: block count 1755136 exceeds size of device (1536000 blocks)
EXT4-fs (mmcblk1p2): bad geometry: block count 1755136 exceeds size of device (1536000 blocks)
EXT2-fs (mmcblk1p2): error: couldn't mount because of unsupported optional features (4)
EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
EXT4-fs (mmcblk1p2): bad geometry: block count 1755136 exceeds size of device (1536000 blocks)
EXT4-fs (mmcblk1p2): bad geometry: block count 1755136 exceeds size of device (1536000 blocks)
EXT2-fs (mmcblk1p2): error: couldn't mount because of unsupported optional features (4)