linux磁盘分区介绍

发布时间:2020-01-25编辑:脚本学堂
本文介绍下linux磁盘分区的方法,介绍下linux分区的详细实施步骤,有需要的朋友参考下。

linuxfenqu/ target=_blank class=infotextkey>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 磁盘容量以及linux磁盘分区大小的算法
 

复制代码 代码示例:

#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 -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 
 

 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,计算每个分区大小的三种方法
从下面的命令中可以得出 /dev/sda1 大小是245M
 

复制代码 代码示例:
[root@localhost Desktop]# df -lh|grep /dev/sda1 
/dev/sda1             291M   31M  245M  12% /boot 

查看磁盘整体情况
 

复制代码 代码示例:
[root@localhost Desktop]# fdisk -l 
 
Disk /dev/sda: 21.5 GB, 21474836480 bytes 
255 heads, 63 sectors/track, 2610 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk identifier: 0x000f1e94 
 
   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1   *           1          39      307200   83  Linux 
Partition 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 bytes 
256 heads, 63 sectors/track, 125 cylinders 
Units = 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左右未划分空间,并且只能划分为链逻辑分区;

linux硬盘分区最佳方案(荐)
Linux硬盘分区方法详解
linux磁盘分区步骤示例
linux 分区方法(个人与服务器)
Gentoo Linux分区方案(示例)
linux分区方案(推荐)图文详解
Linux系统硬盘分区的合理方案
Linux分区与命名方案分享
linux分区方案(最佳方法)
linux分区方案(新手入门篇)
我的Linux理想分区