设为首页 加入收藏

TOP

嵌入式Linux下fdisk处理磁盘MBR的可选ID
2014-11-24 14:12:39 来源: 作者: 【 】 浏览:1
Tags:嵌入式 Linux fdisk 处理 磁盘 MBR

在嵌入式Linux中,经常涉及到格式化硬盘,常用的工具就是fdisk,这工具功能强大,busybox里面也实现了fdisk。当busybox实现的fdisk是简化版,与原版的GNU的fdisk相差挺大的,主要是缺少一些细节性的功能。


本文主要是说明fdisk写入MBR的一个磁盘可选id,这个区域可以用来唯一的标记一块硬盘,总共有4个字节,2的32次方中情况。


以后将会详细的介绍MBR结构。。
以下是摘自维基百科的一个表格,介绍MBR的结构:
Structure of a master boot record
Address DescriptionSize in bytes
Hex Oct Dec
0000 0000 0 code area 440(max. 446)
01B8 0670 440 disk signature (optional)4 (本文涉及到该区域)
01BC 0674 444 Usually nulls; 0x00002
01BE 0676 446 Table of primary partitions(Four 16-byte entries, IBM partition table scheme)64
01FE 0776 510 55h MBR signature 2
01FF 0777 511 AAh
MBR, total size: 446 + 64 + 2 = 512

如果要修改该区域,需要确保该区域的地址,地址是:440-443;该区域占4个字节,只需要用一个int型变量即可读取。


源码如下:


该函数是去读取/dev/urandom设备,该设备用于产生一个无符号的随机数,如果读取失败,将会直接返回进程的pid与当前的unix时间的总和,以保证返回一个唯一的id。


以下源码产生一个唯一id,并写入mbr的磁盘可选id的区域:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用C语言去掉字符串集合重复元素 下一篇Android磁盘管理

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: