合理规划您的硬盘分区

作者:北南南北
 来自:LinuxSir.Org
 提要:对于一个硬盘(包括移动存储设备)如何规划分区结构及如何划分才是比较合理的;为了减少由于硬盘划分不合理而造成的风险及不必要的麻烦,有必要重述如何对一个硬盘的分区结构进行规划;
 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 正文
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 

一、关于硬盘种类、物理几何结构及硬盘容量、分区大小计算;
 

1、硬盘种类、物理几何结构
 

硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目的是替换IDE;
 
硬盘的物理几何结构是由盘、磁盘表面、柱面、扇区组成,一个张硬盘内部是由几张碟片叠加在一起,这样形成一个柱体面;每个碟片都有上下表面;磁头和磁盘表面接触从而能读取数据;
 
2、硬盘容量及分区大小的算法;
 

我们通过fdsik -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 是扇区;cylinders 是柱面;每个扇区大小是 512byte,也就是0.5M;
 
通过上面的例子,我们发现此硬盘有 255个磁盘面,有63个扇区,有9729个柱面;所以整个硬盘体积换算公式应该是:
 
磁面个数 x 扇区个数 x 每个扇区的大小512 x 柱面个数 = 硬盘体积 (单位bytes)
 

所以在本例中磁盘的大小应该计算如下:
 
255 x 63 x 512 x 9729 = 80023749120 bytes

提示:由于硬盘生产商和操作系统换算不太一样,硬盘厂家以10进位的办法来换算,而操作系统是以2进位制来换算,所以在换算成M或者G 时,不同的算法结果却不一样;所以我们的硬盘有时标出的是80G,在操作系统下看却少几M;
 
上面例子中,硬盘厂家算法 和 操作系统算数比较:
 
硬盘厂家: 80023749120 bytes = 80023749.120 K = 80023.749120 M (向大单位换算,每次除以1000)
 操作系统: 80023749120 bytes = 78148192.5 K = 76316.594238281 M (向大单位换算,每次除以1024)
 
我们在查看分区大小的时候,可以用生产厂家提供的算法来简单推算分区的大小;把小数点向前移动六位就是以G表示的大小;比如 hda1 的大小约为 6.144831G ;
 

二、关于硬盘分区划分标准及合理分区结构;
 

1、硬盘分区划分标准
 

硬盘的分区由主分区、扩展分区和逻辑分区组成;所以我们在对硬盘分区时要遵循这个标准;主分区(包括扩展分区)的最大个数是四个,主分区(包含扩展分区)的个数硬盘的主引导记录MBR(Master Boot Recorder)决定的,MBR存放启动管理程序(GRUB,LILO,NTLOARDER等)和分区表记录。其中扩展分区也算一个主分区;扩展分区下可以包含更多的逻辑分区;所以主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的;比如下面的例子:
 

   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

 通过这个例子,我们可以看到主分区有3个,从 hda1-hda3 ,扩展分区由 hda5-hda10 ;此硬盘没有主分区4,所以也没有显示主分区hda4 ;但逻辑分区不可能从4开始,因为那是主分区的位置,明白了吧;
 

2、硬盘设备(包括移动存储设备)在Linux或者其它类Unix系统的表示;
 

IDE 硬盘在Linux或者其它类Unix系统的一般表示为 hd* ,比如hda、hdb ... ... ,我们可以通过 fdisk -l 来查看;有时您可能只有一个硬盘,在操作系统中看到的却是 hdb ,这与硬盘的跳线有关;另外hdc 大多表示是光驱设备;如果您有两块硬盘,大多是 hda和hdb。在这方面说的太多也无用,还是以fdisk -l 为准为好;
 
SCSI 和SATA 硬盘在Linux通常也是表示为 sd* ,比如 sda 、sdb ... ... 以fdisk -l 为准
 
移动存储设备在linux表示为 sd* ,比如 sda 、sdb ... ... 以fdisk -l 为准
 

3、合理的规划分区;
 

关于一个磁盘的分区,一个磁盘应该有四个主分区,其中扩展也算一个主分区;存在以下情况:
 
1)分区结构之一:四个主分区,没有扩展分区;
 

[主|分区1] [主分|区2] [主|分区3] [主|分区4]

 
这种情况,如果您想在一个磁盘上划分五个以上分区,这样是行不通的;
 

三个主分区 一个扩展分区;
 

 

[主|分区1] [主|分区2] [主|分区3] [扩展分区]
                                 |
            [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

这种情况行得通,而且分区的自由度比较大;分区也不受约束,能分超过5个分区;这只是举一个例子;
 

2)最合理的的分区方式;
 

最合理的分区结构:主分区在前,扩展分区在后,然后在扩展分区中划分逻辑分区;主分区的个数+扩展分区个数要控制在四个之内;比如下面的分区是比较好的;
 

 

[主|分区1] [主|分区2] [主|分区3] [扩展分区]
                                    |
             [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

 

[主|分区1] [主|分区2] [扩展分区]
                         |       
   [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

 

[主|分区1] [扩展分区]
              |       
[逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

 

最不合理的分区结构: 主分区包围扩展分区;比如下面的;
 

[主|分区1] [主|分区2] [扩展分区] [主|分区4] [空白未分区空间]
                         |
    [逻辑|分区5] [逻辑|分区6] [逻辑|分区7] [逻辑|分区8] ... ...

这样 [主|分区2] 和 [主|分区4] 之间的 [扩展分区] 是有自由度,但[主|分区4]后的[空白未分区空间]怎么办?除非把主分区4完全利用扩展分区后的空间,否则您想在主分区4后再划一个分区是不可能的,划分逻辑分区更不可能; 虽然类似此种办法也符合一个磁盘四个主分区的标准,但这样主分区包围扩展分区的分区方法实在不可取;
 
我们根据这个标题,查看一下我们的例子,是不是符合这个标准呢?
 

 

   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

 

后记:
 

把分区基础写出来,主要是想让新手弟兄知道什么是合理的分区结构,如果把硬盘分区规划好了,也为以学习省却了不少麻烦;在此文后,我计划写具体的分区工具介绍;这也算一个基础知识的积累;虽然老手都会,但新手可能还是需要的;
 

致谢:
 

对于本文zhy2111314 兄弟也有贡献;在此致谢;
 

附录:
 

《系统引导过程及硬盘分区结构论述》
 《Linux 查看磁盘分区、文件系统、使用情况的介绍》
 《实例解说 fdisk 使用方法》

时间: 2024-09-20 18:47:05

合理规划您的硬盘分区的相关文章

虚拟硬盘精灵让硬盘分区0风险

随着硬盘容量的一路飙升,广大电脑爱好者在享受上百GB 容量带来的便利时,也经常会碰到一些关于硬盘分区的问题.特别是在装机初没有规划好,使用一段时间后,再想对硬盘进行重新分区,就会是一件令很多人头痛的事情,我们今天就来帮你解决这个问题. 俗话说:工欲善其事,必先利其器.其实硬盘最好的管理方法是为每一种应用划分一个分区,可以按需要将硬盘分成如:系统区.应用文件区.游戏区.音像区.备份区.还可以为每个用户划出一个分区,每个人使用自已的分区,互不干扰,最适合于办公室和家庭.不然硬盘上成千上万的文件堆积在

CentOS搭建LAMP服务器环境硬盘分区方案

CentOS是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用.两者的不同,在于CentOS并不包含封闭源代码软件. 我们在使用Linux作为服务器的过程中,经常会对硬盘中分区如何更合理的分配而感觉疑惑,特别是刚开始接触Linux的朋友,对于服务器中硬盘空间各分区的合理分配,心中也没有底,现列出

win7硬盘分区技巧 win7如何分区

win7系统下不重新安装系统,进行硬盘分区. 右击我的电脑选择管理出现下方管理界面图解一 图解一磁盘管理界面 图解二选择"压缩卷"准备进行划分 图解三设定新划分空间的大小 图解四硬盘中多出了一块新的未分配空间 图解五选择"新建简单卷" 图解六设定新分区的大小 图解七分配驱动器号 图解八输入卷标名称 图解九新分区创建好了

系统-硬盘分区内部原理????

问题描述 硬盘分区内部原理???? 一块硬盘可以分为4个主分区,而系统在其中的一个分区中,那么这个分区就需要主导扇区来引导已经分区表来确定,不同系统的分区格式有可能不一样,现在一个硬盘要把分成几个区是要用的分区表来确定吗? 解决方案 无论操作系统和文件系统是怎样的,分区表.引导记录是公认的标准.所谓硬盘可以分为4个分区已经是老皇历了,现在的PC使用UEFI固件和新的GUID分区表,可以分无数的分区. 解决方案二: 为此,可以贴两篇科普文帮你扫盲下http://wenku.baidu.com/li

电脑不显示硬盘分区怎么办

  电脑不显示硬盘分区的解决方法: 1.右击"我的电脑",选择打开管理; 2.在左侧菜单中点击"磁盘管理",可以看到新增加的硬盘(图中是磁盘0); 3.点击这个新的硬盘,会自动打开初始化磁盘窗口,如果磁盘容量大于2T,选则GPT,返之 ,选择MBR; 4.初始化完成后,开始磁盘分区,右击该磁盘右侧空白处,选择"新建简单卷"; 5.点击下一步; 6.设置分区的大小.盘符.格式,比如设置50G的ntfs格式分区; 7.点击完成,这样就有一个50G的K

硬盘分区的恢复与备份

备份|恢复|硬盘 你一定能时时刻刻感觉到硬盘分区的重要性.诚然,硬盘分区的地位是无庸质疑的,因此,其也成了很多病毒的攻击对象.而且,一些意外的情况,比如突然断电等也能使硬盘的主引导分区数据丢失.分区一损坏,系统则立即瘫痪,动弹不得.所以关于分区的恢复与备份的技巧,是你必须要掌握的一门技术: 首先,一旦发生计算机无法检测到硬盘的情况,排除了硬件上的问题,我们就应该开 始检测分区.一般来说,如果主引导区或者引导程序和分区表中的一个被破坏的话,都会出现硬盘丢失的情况.我们一个个做一番检查: 分区表的检

Vista系统中硬盘分区合并分割全攻略

新买的一个硬盘如何分区?我的C盘不够用了,怎么样增加空间给它?我的E盘太大了,我想把它分为两个分区,该怎么办?如果你有类似以上问题,本文将教你如何不借助外部工具来帮硬盘分区,以及如何合并,分割分区. 一.为尚未分区的硬盘分区 我新买了一个硬盘,但是不知如何帮它分区,该怎么办呢? 1.1 用vista安装光盘分区 我们分两种情况来讨论.第一种是你只有一个硬盘,而且是新的,没有分区的.我们来帮它快捷的分区. 准备工具:vista安装光盘. 把新硬盘接入电脑后,我们在bios中设置计算机由光驱启动,接

Linux硬盘分区问题及应对方法

之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬盘分区的一些概念.下面将其记录下来,以警示来者. 说起我自己掉坑的经历,无不与WinXP和Linux的激烈碰撞有关.多年前,我就开始在一台电脑上同时安装WinXP和Linux,只要遵守先安装WinXP再安装Linux的顺序,就不会出问题,Linux的安装程序会自动识别多系统,安装完成后可顺利启动多系统.有一天,我觉得单用Li

硬盘分区误删后如何巧妙恢复

一)文件或文件夹的恢复 不向目标分区写入新文件,从概念上容易理解,但实际要做到却不是那么容易的.因为Windows会在各个分区多多少少生成一些临时文件,加上还有在启动时自动扫描分区的功能,如果设置不当或操作上稍不留意,可能已经写入了新文件而您还不知道. 1.注意Windows扫描和报告的设置 默认状态下,Windows会在启动的时候检测分区有没有错误,如果上次是非正常关机,您就会看到一个扫描的任务及进度条,这种扫描对解决交叉链接错误有用,但对于要恢复的文件可能会造成致命的破坏-因为扫描完毕后,W