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

本文共 3983 字,大约阅读时间需要 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

 

你可能感兴趣的文章
Javascript 中的变量作用域问题
查看>>
chrome浏览器关闭标签页面
查看>>
创建注记图层要素
查看>>
C++11 正则表达式——基础知识介绍
查看>>
jquery 日期+时间 date & time 插件
查看>>
【读书笔记《Android游戏编程之从零开始》】8.Android 游戏开发常用的系统控件(系统控件常见问题)...
查看>>
jsoncpp v0.5中的一个bug
查看>>
DNS报文格式(RFC1035)
查看>>
停下来,等等灵魂(二)
查看>>
在Android中实现service动态更新UI界面
查看>>
找出数字在已排序数组中出现的次数
查看>>
Linux驱动学习笔记(6)信号量(semaphore)与互斥量(mutex)【转】
查看>>
DotNET企业架构应用实践-系列目录
查看>>
iOS开发-UITextView根据内容自适应高度
查看>>
将两个价格清单放在一行显示
查看>>
asp.net gridview 和 repeater 模板代码示例
查看>>
mdev的基本工作原理【转】
查看>>
[Git] git shortlog 找出最懒的程序员
查看>>
【区块链之技术进阶】扒一扒某乎上面对于区块链的理解(二)
查看>>
LintCode: Sort Colors
查看>>