zoukankan      html  css  js  c++  java
  • Linux 分区概念 (转)

    linux磁盘分区编辑

    本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
    linux磁盘分区
    要掌握Linux磁盘分区,先了解一下硬盘的物理结构。
    为了便于理解硬盘的物理结构 ,可将硬盘看作一个圆,它是坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘有两面,都可记录信息。要了解硬盘的物理结构,需要弄懂磁道扇区、柱面、簇等几个概念。

    1简介编辑

    磁道:上图中硬盘被一圈圈分成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分区,等待一段时间后,然后再将数据调入到内存中执行.所以说,虚拟内存只是暂时存放数据,在该空间内并没有执行。
    虚拟内存是指将硬盘上某个区域模拟为内存.因此虚拟内存的实际物理地址仍然在硬盘上.虚拟内存,或者说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位于硬盘的起始处,用户不能通过软件进行修复,也不能跳过起始处.而硬盘中间的某个磁道坏了,用户可以软件修复,也可以跳过该磁道。

    4嵌入式系统分区编辑

    嵌入式系统可以分为4个区,分别是bootloaderparakernel、根分区等,与Windows、Linux分区不同。
    (1)在嵌入式系统中,没有swap分区,只有实际的物理空间。
    (2)bootloader、para、kernel这三个分区的功能类似于Linux系统中的/boot分区,这三个分区分别存放嵌入式系统的启动代码和内核
    注:Linux系统中/boot分区内存放着linux启动代码和内核源码。
    (3)根分区(/)可以构造,其功能类似于Linux系统中的根分区.在这个分区中可以创建许多目录,比如/root、/home、/usr等,但不能创建/boot目录。
    (4)分区bootloader、para、kernel只能由地址来区分,而根分区只能由目录来区分。
    (5)嵌入式系统的驱动程序、上层软件都放在根分区.在嵌入式系统启动后,系统无法查看到bootloader、para、kernel这三个分区。
    (转自百度百科)
  • 相关阅读:
    Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法
    ubuntu 关闭显示器的命令
    ubuntu android studio kvm
    ubuntu 14.04版本更改文件夹背景色为草绿色
    ubuntu 创建桌面快捷方式
    Ubuntu 如何更改用户密码
    ubuntu 14.04 返回到经典桌面方法
    ubuntu 信使(iptux) 创建桌面快捷方式
    Eclipse failed to get the required ADT version number from the sdk
    Eclipse '<>' operator is not allowed for source level below 1.7
  • 原文地址:https://www.cnblogs.com/IceSword-syy/p/3934818.html
Copyright © 2011-2022 走看看