博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OK335x mksd.sh hacking
阅读量:6630 次
发布时间:2019-06-25

本文共 4060 字,大约阅读时间需要 13 分钟。

#! /bin/sh# mk3PartSDCard.sh v0.3# Licensed under terms of GPLv2# 参考文档:#     1. sfidsk创建可启动分区问题#         http://segmentfault.com/a/1190000002493628#     2. sfdisk 中文手册#         http://blog.csdn.net/hnmsky/article/details/7650964#     3. linux sfdisk partition#         http://blog.csdn.net/shell_albert/article/details/8425530#     4. How to Make 3 Partition SD Card#         http://processors.wiki.ti.com/index.php/How_to_Make_3_Partition_SD_Cardif [ $# -ne 1 ]; then    echo "USAGE:"    echo "    $0 "    exit -1;fi# 获取SD卡设备节点,并擦除分区表DRIVE=$1dd if=/dev/zero of=$DRIVE bs=1024 count=1024# 获取SD卡大小,并在terminal中显示字节大小SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`echo DISK SIZE - $SIZE bytes# 计算磁柱数# 每一个柱面的大小为255*63*512=8,225,280 BytesCYLINDERS=`echo $SIZE/255/63/512 | bc`# Usage:#  sfdisk [options]  [...]# # Options:#  -s, --show-size           list size of a partition#  -c, --id                  change or print partition Id#      --change-id           change Id#      --print-id            print Id#  -l, --list                list partitions of each device#  -d, --dump                idem, but in a format suitable for later input#  -i, --increment           number cylinders etc. from 1 instead of from 0#  -u, --unit 
units to be used;
can be one of# S (sectors), C (cylinders), B (blocks), or M (MB)# -1, --one-only reserved option that does nothing currently# -T, --list-types list the known partition types# -D, --DOS for DOS-compatibility: waste a little space# -E, --DOS-extended DOS extended partition compatibility# -R, --re-read make the kernel reread the partition table# -N
change only the partition with this
# -n do not actually write to disk# -O
save the sectors that will be overwritten to
# -I
restore sectors from
# -V, --verify check that the listed partitions are reasonable# -v, --version display version information and exit# -h, --help display this help text and exit# # Dangerous options:# -f, --force disable all consistency checking# --no-reread do not check whether the partition is in use# -q, --quiet suppress warning messages# -L, --Linux do not complain about things irrelevant for Linux# -g, --show-geometry print the kernel's idea of the geometry# -G, --show-pt-geometry print geometry guessed from the partition table# -A, --activate[=
] activate bootable flag# -U, --unhide[=
] set partition unhidden# -x, --show-extended also list extended partitions in the output,# or expect descriptors for them in the input# --leave-last do not allocate the last cylinder# --IBM same as --leave-last# --in-order partitions are in order# --not-in-order partitions are not in order# --inside-outer all logicals inside outermost extended# --not-inside-outer not all logicals inside outermost extended# --nested every partition is disjoint from all others# --chained like nested, but extended partitions may lie outside# --onesector partitions are mutually disjoint# # Override the detected geometry using:# -C, --cylinders
set the number of cylinders to use# -H, --heads
set the number of heads to use# -S, --sectors
set the number of sectors to use## sfdisk的-D参数指定与DOS兼容,并自动在每个分区前预留空间,以存放MBR(Master Boot Record);##
,
,
,
## bootable 可以指定为[*|-]格式,默认值是"-"也就是没有可引导标记。# 这个标记仅对DOS有意义:DOS会给带有可引导标记的主分区分配 C: 盘符## id 应该以无"0x"前缀的格式给出其十六进制值,或者[E|S|L]简写字母:# L(83)是默认值;# S(82,LINUX_SWAP);# E(5,扩展分区)。# # 第一行分区描述,9,0x0C,* 自动分配起始柱面,数量为9,分区ID为0x0C(表示FAT32分区),
为*, 表示可启动分区。# 第二行分区描述10,115,,- 同样自动分配起柱面,数量为115,其它为默认。# 第三行分区描述126,,,- 同样自动分配起柱面,剩下所有的数量,其它为默认。sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE << EOF,9,0x0C,*10,115,,-126,,,-EOF# 这里可以得到一张FAT32分区的SD卡,我有时候我们就只需要一张这样的卡# sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE << EOF# ,,0x0C,*# EOF# 格式化各个分区,格式化完卸载对应的分区mkfs.vfat -F 32 -n "boot" ${DRIVE}1umount ${DRIVE}1mkfs.ext3 -L "rootfs" ${DRIVE}2umount ${DRIVE}2mkfs.ext3 -L "START_HERE" ${DRIVE}3

 

转载于:https://www.cnblogs.com/zengjfgit/p/4968170.html

你可能感兴趣的文章
javascript之DOM技术(一)
查看>>
mysql循环插入52w条数据
查看>>
真实版少数派报告:预知老鼠的犯罪意图
查看>>
Fork and Join: Java也可以轻松地编写并发程序
查看>>
Linux 有问必答:如何在debian及其衍生发行版中改变默认的 Java 版本
查看>>
发布 JavaScript 开源项目指南
查看>>
《libGDX移动游戏开发从入门到精通》一1.1 libGDX介绍
查看>>
《C++程序设计教程(第3版)》——第3章,第4节总结
查看>>
《量化金融R语言高级教程》一2.1 套利定价理论
查看>>
JUC ArrayBlockingQueue
查看>>
在eclipse程序中设置的断点上有一个斜杠无法进行debug调试
查看>>
【干货】阿里资深技术专家丁宇谈双11高可用架构演进之路
查看>>
《C语言及程序设计》实践参考——坐标转换
查看>>
wep app和原生app的区别
查看>>
PostgreSQL Java 开发者手册
查看>>
概率论与数理统计
查看>>
百度地图 js使用
查看>>
学会这些Sublime快捷键,让你在Windows和Mac中自由切换
查看>>
Cocos2d-x3.2场景切换
查看>>
23种 设计模式---面向对象的基本原则
查看>>