参考资料
http://blog.csdn.net/freexploit/article/details/961330
http://soft.yesky.com/os/lin/74/2155574.shtml
?
?
linux分区规定:
1 设备管理
在linux中,每一个硬件设备都映射到一个系统的文件.
?
linux把各种ide设备分配了一个由hd前缀组成的文件.
而对于各种scsi设备.则分配了一个由sd前缀组成的文件.
对于scsi硬盘则标识为"sdx~".scsi硬盘是用sd来表示分区所在设备的类型.
“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),
“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,
从5开始就是逻辑分区。
例,
IDE设备:一台PC上可以有两个ide接口.
我们称其为第一IDE第二IDE.每个ide上有两个ide设备.
我们将其称为主盘,从盘.其中硬盘和光驱都是IDE设备。
linux命名规则:
第一IDE的主盘:/dev/hda
第二IDE的主盘:/dev/hdb
第二IDE的主盘:/dev/hdc
第二IDE的从盘:/dev/hdd
这是因为,在UNIX/LINUX系统中,将所有的设备都当做一个文件,放在/dev目录下.
故所有文件都放到/dev目录下.
2 分区数量
硬盘分区是针对一个硬盘进行的操作.
关于一个磁盘的分区,一个磁盘应该有四个主分区,其中扩展也算一个主分区
主分区.1-3个
扩展分区.0-1个
逻辑分区.无限制
?扩展分区本身无法用来存放数.要使用它必须将其分成若干个<1-n个>逻辑分区.
?
最合理的分区结构:
主分区在前,扩展分区在后,然后在扩展分区中划分逻辑分区;主分区的个数+扩展分区个数要控制在四个之内;比如下面的分区是比较好的;
?
[主|分区1] [主|分区2] [主|分区3] [扩展分区] | [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
?
[主|分区1] [主|分区2] [扩展分区] | [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
??????
[主|分区1] [扩展分区] | [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...
3 各分区的作用
在linux中规定.每一个硬盘设备最多能有4个主分区.也就是在一个硬盘中,主分区和扩展分区一共最多是4个.
主分区的作用是计算机用来进行启动操作系统的,
因此每一个操作系统的启动.或者称作引导程序都应该放在主分区上.
4 其他理解
对主要分区、扩展分区与逻辑分区的特性做一个简单的定义:
?
主要分区和扩展分区最多可以有四个
扩展分区最多只能有一个
逻辑分区是有扩展分区持续切割出来的分区槽
磁盘被格式化后,作为数据存取的分割槽为主要分区与逻辑分区,扩展分区无法格式化
?5 磁盘容量以及分区大小的算法
Js代码
#fdisk?-l??
Disk?/dev/hda:?80.0?GB,?80026361856?bytes??
255?heads,?63?sectors/track,?9729?cylinders??
Units?=?cylinders?of?16065?*?512?=?8225280?bytes??
???Device?Boot?Start?End?Blocks?Id?System??
/dev/hda1?*?1?765?6144831?7?HPFS/NTFS??
/dev/hda2?766?2805?16386300?c?W95?FAT32?(LBA)??
/dev/hda3?2806?9729?55617030?5?Extended??
/dev/hda5?2806?3825?8193118+?83?linux??
/dev/hda6?3826?5100?10241406?83?linux??
/dev/hda7?5101?5198?787153+?82?linux?swap?/?Solaris??
/dev/hda8?5199?6657?11719386?83?linux??
/dev/hda9?6658?7751?8787523+?83?linux??
/dev/hda10?7752?9729?15888253+?83?linux??
#fdisk -lDisk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hda1 * 1 765 6144831 7 HPFS/NTFS/dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)/dev/hda3 2806 9729 55617030 5 Extended/dev/hda5 2806 3825 8193118+ 83 linux/dev/hda6 3826 5100 10241406 83 linux/dev/hda7 5101 5198 787153+ 82 linux swap / Solaris/dev/hda8 5199 6657 11719386 83 linux/dev/hda9 6658 7751 8787523+ 83 linux/dev/hda10 7752 9729 15888253+ 83 linux
?heads:磁盘面
sectors:扇区 每个扇区大小512byte
?cylinders:柱面
?整个磁盘体积换算公式:
???????? 磁面个数*扇区个数*每个扇区的大小512*柱面个数
??????????? = 磁盘体积(单位 bytes)
255 x 63 x 512 x 9729 = 80023749120 bytes
?
?
??????? /dev/hda1?主分区?
?????? /dev/hda2? 主分区
?????? /dev/hda3 扩展分区
???????????????
????????????????????? hda5,hda6,hda7,hda8,hda9,hda10>
磁盘总容量 = 主分区(包括扩展分区)总容量
扩展分区容量=逻辑分区总容量
hda=hda1+hda2+hda3
hda3=hda5+hda6+hda7+hda8+hda9+hda10
?
?计算磁盘剩余空间:
实际已经分区的体积
?hda1+hda2+hda3=
6144831+16386300+39728745
= 62259876 (b)
=60800.67 (M)
?整个磁盘的大小
80.0gb=78150.744M
未分区的可用空间
17350.074M
6
计算每个分区大小的三种方法
1
从下面的命令中可以得出 /dev/sda1
大小是245M
[root@localhost Desktop]# df -lh|grep /dev/sda1/dev/sda1 291M 31M 245M 12% /boot
2?
下面的命令是查看磁盘整体情况
[root@localhost Desktop]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000f1e94 Device Boot Start End Blocks Id System/dev/sda1 * 1 39 307200 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 39 2354 18598912 83 Linux/dev/sda3 2354 2611 2064384 82 Linux swap / Solaris
?
一个分区容量的值是由下面的公式而来的;
Blocks = (相应分区End数值 -
相应分区Start数值)x 单位cylinder(磁柱)的容量
?
sda1的大小:
(39-1)*8225280 bytes = 312560640 bytes = 约为312M
3
注:换算单位以硬盘厂家提供的10进位算起,如果以操作
系统二进制来算,这个分区容量应该更少一些,得出的这个值和我们通过 fdisk -l 看到的
/dev/sda1的值是大体相当的,因为换算方法不一样,所以也不可能尽可能的精确;再加上分区时的一点损失之类,有时或大或小是存在的;
?7 估算一个存储设备是否被完全划分只要看 fdisk -l 输出的内容中的 cylinders(柱体) 上一个分区的End 和
下一个分区的Start是不是一个连续的数字.
Disk /dev/sda: 1035 MB, 1035730944 bytes256 heads, 63 sectors/track, 125 cylindersUnits = cylinders of 16128 * 512 = 8257536 bytes Device Boot Start End Blocks Id System/dev/sda1 1 25 201568+ c W95 FAT32 (LBA)/dev/sda2 26 125 806400 5 Extended/dev/sda5 26 50 201568+ 83 linux/dev/sda6 51 76 200781 83 linux
?
sda有 125个cylinders
(柱体),有一个主分区和一个扩展分区构成;在扩展分区中,我们看到End的值为125,而这个移动硬盘的cylinder也是125,这能说明这个硬盘
不可能再添加任何主分区了;根据我们上面所说的 sda1 sda2 sda5 sda6 之间未有任何未划分空间,但sda6
的cylinders (柱体)的End值却是 76 ,而 sda总的cylinders (柱体)有125个,由此看来sda 在
sda6后面有未划分区域;
至于sda 有多少未划分空间,我们算一下就知道了;扩展分区总容量是 806400 K ,大约是 806.400M左右,而逻辑分区
sda5 和sda6 的大小加起来是 400M左右,所以还仍有400M左右未划分空间,并且只能划分为链逻辑分区;