zoukankan      html  css  js  c++  java
  • linux-Centos下磁盘管理(fdisk)

    Centos下磁盘管理 - linux

    磁盘基础知识

    磁盘结构

    磁道:上图中硬盘被一圈圈分成18等分的同心圆,这些同心圆就是磁道.但打开硬盘,用户不能看到这些,它实际上是被磁头磁化的同心圆.这些磁道是有间隔的,因为磁化单元太近会产生干扰。
    扇区:每个磁道中被分成若干等份的区域.扇区是硬盘数据存储的最小单位。
    柱面:假如一个硬盘只有上图中的3个磁盘片,每一片中的磁道数是相等的.从外圈开始,这些磁道被分成了0磁道、1磁道、2磁道...具有相同磁道编号的同心圆组成面就称作柱面.为了便于理解,柱面可以看作没有底的铁 桶.从上图可以看出,柱面数就是磁盘上的磁道数.柱面是硬盘分区的最小单位.因此,一个硬盘的容量=柱面*磁头*扇区*512。
    簇:扇区是硬盘数据存储的最小单位,但操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理.每个簇可以包括2、4、8、16、32、64个扇
    2硬盘的分区
    编辑

    硬盘的分区

    要掌握硬盘的分区,需要掌握MBR、扩展分区、逻辑分区的概念。
    一个是放置该硬盘的信息区,称之为主引导分区(master boot recorder,MBR),一个是实际文件数据放置的地方.其中,MBR是整个硬盘最重要的区域,一旦MBR物理实体损坏时,则该硬盘就差不多报废了,一般来说,MBR有512个字节,且可以分为两个部分。
    (1)第一部分有446个字节,用于存放引导代码,即bootloader。
    (2)第二部分有64个字节,用于存放磁盘分区表.其中,每个分区的信息需要用16个字节来记录。因此,一个硬盘最多可以有4个分区,这4个分区称之为主分区和扩展分区(extended)。
    注:通常所说的"硬盘分区"就是指修改磁盘分区表,它定义了"第n个磁盘块是从第x个柱面到第y个柱面".因此,当系统要读取第n个磁盘块时,就是去读硬盘上第x个柱面到第y个柱面的信息。
    由于扩展分区只能有一个,所以这4个分区可以是4个主分区或者3个主分区加1个扩展分区,如下所示:
    P + P + P + P
    P + P + P + E
    重点说明的是,扩展分区不能直接使用,还需要将其划分为逻辑分区才行,这样就产生了一个问题,既然扩展分区不能直接使用,但为什么还要划分出一定的空间来给扩展分区呢?这是因为,如果用户想要将硬盘划分为5个分区的话,那该如何?此时,就需要扩展分区来帮忙了。
    由于MBR仅能保存4个分区的数据信息,如果超过4个,系统允许在额外的硬盘空间存放另一份磁盘分区信息,这就是扩展分区.若将硬盘分成3P+E,则E实际上是告诉系统,磁盘分区表在另外的那份分区表,即扩展分区其实是指向正确的额外分区表.本身扩展分区不能直接使用,还需要额外将扩展分区分成逻辑分区才能使用,因此,用户通过扩展分区就可以使用5个以上的分区了。
    Attention!!!
    (1)实际上,不建议用户将硬盘分为4个主分区,这是因为,假如一个20GB的硬盘,若4个主分区占据了15GB的空间,则剩下的5GB空间完全不能使用,因为已经没有多余的分区表可以记录这些空间了。
    (2)考虑到磁盘的连续性,一般建议将扩展分区放在最后面的柱面内。
    (3)理论上允许一个硬盘只有1个主分区,其它空间都分配给扩展分区。
    3Linux磁盘分区
    编辑


    在Windows操作系统中,是先将物理地址分开,再在分区上建立目录.在Windows操作系统中,所有路径都是从盘符开始,如C://program file。
    Linux正好相反,是先有目录,再将物理地址映射到目录中。在Linux操作系统中,所有路径都是从根目录开始。Linux默认可分为3个分区,分别是boot分区、swap分区和根分区。
    无论是Windows操作系统,还是Linux操作系统,每个分区均可以有不同的文件系统,如FAT32、NTFS、Yaffs2等。
    (1)boot分区
    该分区对应于/boot目录,约100MB.该分区存放Linux的Grub(bootloader)和内核源码。用户可通过访问/boot目录来访问该分区.换句话说,用户对/boot目录的操作就是操作该分区。
    (2)swap分区
    该分区没有对应的目录,故用户无法访问。
    Linux下的swap分区即为虚拟内存.虚拟内存用于当系统内存空间不足时,先将临时数据存放在swap分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
    Ps:虚拟内存
    虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说swap分区只能由系统访问,其大小为物理内存的2倍。
    (3)根分区
    在Linux操作系统中,除/boot目录外的其它所有目录都对应于该分区.因此,用户可通过访问除/boot目录外的其它所有目录来访问该分区。
    Attention!!!
    (1)在Linux操作系统中,用户可根据需要进行修改分区.修改后的分区中,同一目录下的文件可能在不同分区中.比如/home目录下有a、b、c三个目录,可将不同的分区挂载到这三个目录下,这种操作是允许的。
    (2) 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个) 逻辑分割(5号到63号), SATA硬盘则有11个) 逻辑分割(5号到15号)。 (鸟哥版的)
    不过根据最新的 linux内核技术规范 中指示,逻辑分区可以无限。
    <1>硬盘上至少有1个主分区。
    <2>逻辑分区不能再进行分区。
    (3)Linux分区目录和"盘符"的关系:
    假如硬盘安装在IDE1的主盘,并用户想分区成6个可以使用的硬盘分区,则可以采用下面两种方式。
    方式一:采用3个主分区和3个逻辑分区
    方式二:采用1个主分区和5个逻辑分区
    当然还有其他的分区方式,只要满足上述说的规则就行
    安装Linux时,默认分为三个区,分别是/boot分区、根分区和swap分区.这三个分区分别对应的盘符是hda1、hda2、hda3。
    (4)Linux允许使用fdisk -l命令和df -h命令来查询其硬盘分区.其中,df无法显示出swap分区的大小。
    [root@localhost /]#df -h
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/hda2 8.8GB 3.1GB 5.3GB 38% / (根分区)
    /dev/hda1 99MB 9.2MB 85MB 10% /boot (boot分区)
    (5)在PC机下,A、B盘并不存在,这两个盘在Linux下类似于hda1/hda2,而C盘类似于hda3,D、E、F盘类似于hda5、hda6、hda7。
    (6)swap分区不对应"盘符"。
    (7)若硬盘的MBR已坏,则该磁盘就不能再作为引导盘,只能作为数据盘.因为MBR位于硬盘的起始处,用户不能通过软件进行修复,也不能跳过起始处.而硬盘中间的某个磁道坏了,用户可以软件修复,也可以跳过该磁道。

    1.磁盘分区格式说明

    linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a—z)),硬盘主分区最多为4个,不用说大家也知道…..所以主分区从sdb1开始到sdb4,逻辑分区从sdb5开始,(逻辑分区永远从sdb5开始…)设备名可以使用fdisk –l查看

    2.分区详解

    使用ssh远程连接工具登录到系统,使用fdisk -l命令查看磁盘状态

    此处可以看到两块硬盘hda和hdb,第一块硬盘hda是装好系统的。hdb硬盘是未进行分区的。

    本例将这个10G的硬盘分区,分区计划:分一个主分区 ,大小3G,文件格式ext3.三个逻辑分区,大小分别为2G,2G,3G。实际分区个数和大小可论情况所定。

    下面就是分区的详细步骤,由于是每一步都进行了截图和说明,内容略显复杂,其实很简单。

    输入 fdisk /dev/hdb 然后回车,给硬盘进行分区。如下图

    输入n回车新建分区,接着再输入p回车新建主分区,如图

    此处要求选择分区号在1-4间,输入1回车

    First cylinder (1-20805, default 1):这里是设置分区起始的柱面,直接回车选择默认即可,回车后如下图

    Last cylinder or +size or +sizeM or +sizeK (1-20805, default 20805):此处是设置分区结束柱面,+3G表示从起始柱面开始向后3G结束,也是是设置分区大小为3G,输入+3G后回车,如下图所示

    此处可输入p查看分区是否成功,输入p回车,如下图:显示分区成功

    接下来我们就划分扩展分区,按n回车

    这里输入e,表示创建扩展分区,输入e回车

    输入分区号2回车

    此处直接按回车键,表示选择默认

    此处也是直接回车选择默认,表示将划分第一个主分区后的磁盘全部划分个这个逻辑分区

    此处可在此输入命令p查看当前分区状态,如下图

    此处就开始划分扩展分区hdb2下的逻辑分区吧!接着上图,输入命令n回车

    此处输入l表示选择创建逻辑分区,输入l回车

    此处直接使用回车,表示选择默认

    此处输入+2G,表示划分分区大小为2G,输入+2G回车

    此处要按计划再划分出两个逻辑空间,输入n回车,然后输入l回车选择逻辑分区,然后直接回车选择默认起始柱面,输入+2G回车设置分区大小

    下面就要将扩展分区的磁盘大小全部分给最后一个逻辑分区,输入n回车,然后输入l选择逻辑分区,然后直接回车选择默认起始柱面,最后不设置磁盘大小直接回车

    再次输入p查看当前分区状态

    划分的空间与我们计划划分相同,最后输入w回车,进行保存退出。

    再次使用fdisk -l命令就可以查看到磁盘hdb已经分区成功。

    磁盘划分成功,下面就要对分区进行格式化了

    使用命令 mkfs -t ext3  /dev/hdb1

             mkfs -t ext3  /dev/hdb5

             mkfs -t ext3  /dev/hdb6

             mkfs -t ext3  /dev/hdb7

    分别对磁盘进行格式化处理,格式化为ext3文件类型

    自此分区流程算是完成啦!

    附:fdisk和mkfs,mkswap命令的参数解释

    Fdisk命令详解:

    m:获取帮助

    n:新建分区

    p:显示分区表

    d:删除分区

    b:设置卷标

    w:写入分区表

    t:改变分区文件系统类型

    v:检验分区

    l:显示fdisk所支持的文件系统代码

    q:退出

    文件系统的建立:

    mkfs参数分区

    -t文件系统类型指定建立的文件系统类型

    注:mkfs –t ext3 =mkfs.ext3

    -c建立文件系统之前检查有无坏道

    -l文件名:从文件中读取坏道的情况

    -v显示详细情况

    mkswap 分区在分区上建立交换分区

    例:在hdb7上建立交换分区命令如下:

    mkswap/etc/hdb7

  • 相关阅读:
    Android 主题theme说明 摘记
    Android开发 去掉标题栏方法 摘记
    安卓项目五子棋代码详解(二)
    关于 ake sure class name exists, is public, and has an empty constructor that is public
    百度地图3.0实现图文并茂的覆盖物
    android onSaveInstanceState()及其配对方法。
    关于集成科大讯飞语音识别的 一个问题总结
    android 关于 webview 控制其它view的显示 以及更改view数据失败的问题总结
    C# 解析 json Newtonsoft果然强大,代码写的真好
    c#数据类型 与sql的对应关系 以及 取值范围
  • 原文地址:https://www.cnblogs.com/jinhengyu/p/7679131.html
Copyright © 2011-2022 走看看