Chinaunix首页 | 论坛 | 博客
  • 博客访问: 80097
  • 博文数量: 27
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 227
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-17 12:31
文章分类

全部博文(27)

文章存档

2014年(27)

我的朋友

分类: 嵌入式

2014-05-23 13:07:46

#/dev/sdb 就是目标sd卡或者u盘

DRIVE=/dev/sdb
dd if=/dev/zero of=$DRIVE bs=1024 count=1024

#获取sd卡容量;| 管道符号:将上一层的输出作为下一层的输入。awk 是个工具此处为抓取上层输出的所有内容中的第五项内容。最后将抓取的内容赋值给了SIZE
SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`


echo DISK SIZE - $SIZE bytes

#我的sd卡为1G所以CYLINDERS=1024*1024*1024/255/63/512=130 不知道为什么这么算,63为扇区数,255磁头数,CYLINDER cylinder 柱
CYLINDERS=`echo $SIZE/255/63/512 | bc`

echo CYLINDERS - $CYLINDERS
{
echo ,9,0x0C,*
echo ,166,0x0C,-
echo ,,,-
} | sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE

sfdisk为硬盘分区工具程序,可显示分区的设定信息,并检查分区是否正常。
sfdisk也可用来建立分区。由于建立硬盘分区兹事体大,建议还是使用为个别操作系统设计的硬盘分区工具程序比较妥当,如用fdisk建立DOS分区,用Disk Druid或sfdisk建立linux的分区。

二、用法:

sfdisk [options] device …

选项说明:

常用选项:
-s [or --show-size]: 显示一个分区的大小
-c [or --id]: 显示或者修改文件系统类型ID
-l [or --list]: 显示每个设备的分区表信息
-d [or --dump]: 同上,但是以一个格式化的方式输出
-i [or --increment]: number cylinders etc. from 1 instead of from 0
-uS, -uB, -uC, -uM: 以扇面/块/柱面数/MB为单位 显示或形成报告
-T [or --list-types]:显示所有已知的sfdisk能辨识的文件系统ID
-D [or --DOS]: 兼容DOS但是会浪费一点磁盘空间
-R [or --re-read]: 让内核重新读取分区表
-N# : 只改变分区的编号 #
-n : 修改但实际上并没有保存到磁盘
-O file : 保存扇面修改并写入分区表文件
-I file : 重新恢复修改的扇面

危险的选项:
-g [or --show-geometry]: print the kernel’s idea of the geometry
-G [or --show-pt-geometry]: print geometry guessed from the partition table
-x [or --show-extended]: also list extended partitions on output
or expect descriptors for them on input
-L [or --Linux]: do not complain about things irrelevant for Linux
-q [or --quiet]: suppress warning messages
You can override the detected geometry using:
-C# [or --cylinders #]:set the number of cylinders to use
-H# [or --heads #]: set the number of heads to use
-S# [or --sectors #]: set the number of sectors to use

三、示例:

sfdisk -d /dev/hda > hda-table 备份分区表并保存到文件
sfdisk /dev/hda < hda-table 从文件中恢复分区表
sfdisk -d /dev/hda | sfdisk /dev/hdb 在两个磁盘间复制分区表

注意事项
(1)sfdisk命令处理的设备通常是如下形式的:/dev/hda、/dev/hdb、/dev/sda、/dev/sdb等.其中,/dev/hd[a-h]表示IDE硬盘,/dev/sd[a-h]表示SCSI硬盘,/dev/ed[a-h]表示ESDI硬盘,/dev/xd[a-h]表示XT硬盘。
一个设备的名称表示整个硬盘,而分区则用设备名加一个分区号表示,如/dev/sda2表示系统中第一块SCSI硬盘的第二个分区。
(2)sfdisk命令会改变硬盘和分区的设备,在使用时要小心,特别是对于其中能够修改磁盘CHS参数的“危险选项”。
(3)ls命令的参数中有很多单个字母,大小写有不同的含义,容易混淆。在使用时要加以区分。注意事项
(1)sfdisk命令处理的设备通常是如下形式的:/dev/hda、/dev/hdb、/dev/sda、/dev/sdb等.其中,/dev/hd[a-h]表示IDE硬盘,/dev/sd[a-h]表示SCSI硬盘,/dev/ed[a-h]表示ESDI硬盘,/dev/xd[a-h]表示XT硬盘。
一个设备的名称表示整个硬盘,而分区则用设备名加一个分区号表示,如/dev/sda2表示系统中第一块SCSI硬盘的第二个分区。
(2)sfdisk命令会改变硬盘和分区的设备,在使用时要小心,特别是对于其中能够修改磁盘CHS参数的“危险选项”。
(3)ls命令的参数中有很多单个字母,大小写有不同的含义,容易混淆。在使用时要加以区分



阅读(1607) | 评论(0) | 转发(0) |
0

上一篇:uboot命令大全

下一篇:linux usb设备驱动

给主人留下些什么吧!~~