在嵌入式开发中经常会对mmc卡,或u盘,固态硬盘等重新分区。手动调用fdisk能完成这些重复劳动,但总是不方便。为了提高效率,写如下脚本用于方便开发。注意:其中的空行必不可少,每一个空行意味着一个回车。
partition.sh
#!/bin/bash
disk=$1 if [ -z $disk ]; then disk=/dev/mmcblk0 echo "您没有指定将要分区的设备,将使用默认设备: $disk" fi
#下面这句dd期望能够将分区表擦除,但实际操作中总是没有效果 #dd if=/dev/zero of=$disk bs=1 count=66 seek=446 fdisk $disk << EOF d 1 d 2 d 3 d 4 d
n p 1 1 +20M n p 2
+20M n p 3
+256M n e
n
+512M n
t 1 b t 2 53 p w EOF
#file end
|
用法:
sudo /partition.sh [设备路径]
如果设备路径未指定,则默认为/dev/mmcblk0
最后得到的分区信息:
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 641 20504 b W95 FAT32
/dev/mmcblk0p2 642 1282 20512 53 OnTrack DM6 Aux3
/dev/mmcblk0p3 1283 9475 262176 83 Linux
/dev/mmcblk0p4 9476 60032 1617824 5 Extended
/dev/mmcblk0p5 9476 25860 524312 83 Linux
/dev/mmcblk0p6 25861 60032 1093496 83 Linux