分区表和文件系统和内核的关系有什么关系

&&技术服务
&&帮助文档
&&技术支持
400&008&-21:00)
位置:-MBR 与 GPT,关于分区表你应该知道的一些知识 - 硬盘使用知识大全(8)
MBR 与 GPT,关于分区表你应该知道的一些知识 - 硬盘使用知识大全(8)
相关文章:
本文介绍了MBR与GPT这两种不同硬盘分区方案,对不同的情况下,如何正确选择MBR分区方案还是GPT分区方案,给出了建议。本文还介绍了BIOS与EFI的一些基础知识,并示例了与MBR及GPT格式分区相关的一些基础操作。你可以点击下面的文章内容列表,直接开始阅读你最感兴趣的内容:
什么是分区表
电脑中,都有一块硬盘,这篇文章首先要告诉你是:物理硬盘是不能被直接使用的,要在该硬盘上划分出分区后,才能够使用。
其实仅仅划分出分区后,这块硬盘仍然是不能被使用的,需要在划分好的分区上创建文件系统,比如FAT或NTFS,之后才能够被使用。
一块物理硬盘,可以划分成多个分区(当然,如果你愿意,也可以把硬盘只划分成一个分区),如何把一块物理硬盘划分成多个分区呢?这就要使用分区表了。分区表定义与保存了硬盘的分区信息,分区表位于硬盘开头的一段特定的物理空间内,操作系统等软件通过读取分区表内的信息,就能够获得该硬盘的分区信息。
硬盘的空间被分成了C、D、E三个分区,这三个分区的信息,则保存在硬盘最开头的分区表中。
这张图其实不准确,一些细节甚至是错误的,不过如果你第一次接触分区表的概念,这张图能让你迅速理解分区表及其作用。
有两种类型的分区方案: MBR与GPT(其实有更多,不过如果你使用Windows,那你能接触到的就是这两种),下面我们分别介绍这两种分区方案。
MBR分区方案
一般对MBR的介绍,都是先从介绍这三个字母代表的含义开始的,本文不介绍这三个字母的含义,因为它对你理解MBR分区方案没啥帮助,反而可能会让你困惑:主引导记录是啥意思?
这是采用MBR分区方案的硬盘分区示意图,关于主分区、扩展分区与逻辑分区的各自含义,后面会有说明。
MBR是传统的分区表,如果你使用的电脑比较老,该电脑硬盘使用MBR分区方案的可能性比较大。下面,我们列出MBR分区表的一些重要特点:
1、MBR分区方案使用硬盘的第一个物理扇区中的64个字节作为分区表的空间保存硬盘分区信息,每个分区的信息要占16个字节。所以,MBR分区表最多只能保存4个分区的分区信息。
2、MBR分区方案中,有三种类型的分区,主分区、扩展分区和逻辑分区。扩展分区与逻辑分区是为了突破分区表中只能保存4个分区的限制而出现的。
3、MBR分区表中保存的分区信息都是主分区与扩展分区的分区信息,扩展分区不能直接使用,需要在扩展分区内划分一个或多个逻辑分区后才能使用。逻辑分区的分区信息保存在扩展分区内而不是保存在MBR分区表内,这样,就可以突破MBR分区表只能保存4个分区的限制。
4、16个字节的分区信息保存有分区活动状态标志、文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容。这里最重要的是:分区的起始扇区位置与分区的总扇区数,都是用4个字节表示的。
5、一般每个扇区的容量是512字节,4个字节的扇区能表示的最大容量是2TB,由4可知,在MBR分区表中,分区的起始位置不能大于2TB,分区的最大容量,也不能大于2TB。所以,对2TB以上容量的物理硬盘,不适合使用MBR分区方案。
如果你一个普通用户,对技术细节不是那么感兴趣,那其实关于MBR分区方案你需要记住的只有两点:
1、本来MBR分区表只能保存四个分区的信息,但通过扩展分区与逻辑分区的使用,MBR突破了这个限制。
2、由于MBR分区表中,表示地址的参数是只有4个字节,所以导致MBR分区方案中,分区的起始位置不能大于2TB,分区的最大容量,也不能大于2TB。所以,对2TB以上容量的物理硬盘,不适合使用MBR分区方案。
有一些硬盘厂商,尝试扩大扇区的大小,来突破MBR不适合2TB容量以上的硬盘这一限制。所以有时你会发现市场上存在的硬盘,不完全是每个扇区512字节的,有1024字节甚至2048字节每扇区的。但扩大扇区的大小,又会带来很多其他的问题,特别是会严重影响硬盘的速度,所以这种方法,没有被广泛接受。
GPT分区方案
相比较于MBR,GPT是新一代的分区方案,如果你使用的电脑很新,有可能该电脑上的硬盘就是使用了GPT分区方案。
GPT比MBR要复杂,下面我们简单说明一下GPT的技术细节,如果你不是技术控,对这些技术细节不感兴趣,可以跳过这部分,直接去阅读GPT的重要特点。
这张图,简明扼要的显示除了GPT分区方案的硬盘结构。
首先,你会注意到,这张用LBA 0、LBA 1这样的方法来表明硬盘上的地址,这是因为以前一般都是用chs方式对硬盘寻址的,现在一般都用LBA方式对硬盘寻址,关于chs与LBA,不明白且有兴趣专研的读者,可以自行查阅相关资料,对上面这张图来说,LBA 0指的是物理序号为0的第一个扇区,LBA 1指的是物理序号为1的第二个扇区,依次类推。
下面比照着上面这张图,解释下GPT分区方案。
1、保留MBR,GPT的分区方案,硬盘的第一个物理扇区,仍然是一个前面讲过的MBR,这个MBR主要是出于软件兼容性的考虑,对GPT分区方案本身来讲,其实没有啥意义。
2、GPT分区表头,这个在保留MBR之后,也就是占用第二个物理扇区,GPT分区表头中,定义了分区的数量,基本上,你可以认为GPT分区的数量是没有限制的;
3、GPT分区表,从第三个扇区开始,是实际的分区表。请注意:每个扇区可以保存4个分区信息,说明每个分区的分区信息占用的空间是128个字节。
4、从3中,我们知道每个分区的信息占用了四分之一个扇区,也就是128字节的空间,对比一下MBR分区方案中,每个分区的信息只有16个字节,所以GPT分区方案,有充足的空间去存储分区的开始位置及总的容量等,基本上,不用考虑对分区容量的限制。
5、从3中,我们知道,GPT分区方案,分了多少个区,就在分区表中有多少个分区信息。然而实际情形并不是这样,事实上,如图中所示:如果你使用windows操作系统,通常GPT分区表占用32个扇区的空间,可以保存128个分区信息,用不到的空间会被保留,实际使用了多少分区信息与保留了多少分区信息,在2中的GPT分区表头中设置。我们的电脑,通常不会有超过10个的分区,所以GPT分区表中的空间,90%以上都是保留空间,其实就是被浪费了。
6、接下来的两个部分,很简单,分别是GPT分区表,及GPT分区表头的备份。
以上就是GPT分区方案的大致内容,其实也不算复杂了。对普通用户而言,其实需要了解的GPT最重要的特点是:使用GPT分区方案,没有硬盘容量不能超过2TB大小的限制,这是GPT区别于MBR的特点与优点!
现在,可能你会觉得如何使用MBR与GPT了:硬盘容量小于或等于2TB时,用MBR或GPT都行;硬盘容量大于2TB时,用GPT。这种说法没错,但实际情况比这个要复杂些。因为,正确的使用MBR或GPT,你还需要了解另外一些知识:比如BIOS与EFI。
BIOS 与 EFI
介绍BIOS与EFI是件费力不讨好的事,因为很难把这东西讲清楚,所以本文只对BIOS与EFI做基本的介绍。
计算机其实是一堆硬件组成的:CPU、内存、硬盘、主板、显示器、键盘鼠标...,而操作系统是软件,运行在这一堆硬件之上,这个,我想大多数人都能理解。
那BIOS与EFI是什么呢?可以把BIOS理解为硬件与软件的中介,操作系统等软件通过BIOS或EFI这个中介来间接操作硬件。
实际上操作系统等软件是可以直接操作硬件的,但这么做,太麻烦了。比如你让打印机打印一个字母A,如果不通过BIOS或EFI这个中介,你至少需要写二十行以上的汇编代码,而且这些代码中,大部分都是例行公事的一些打印准备工作,无聊透顶。所以BIOS与EFI作为硬件软件的中介,是必须的,非常重要。
BIOS与EFI又是什么关系呢?可以这样理解:BIOS是早期的硬件软件中介方式,随着硬件与软件技术的快速发展,BIOS这种中介方式不能适应先进的硬件软件了,于是就出现了EFI这种新的中介方式。
你可能在一些计算机方面的文章中看到过UEFI这个词,简单的说,UEFI就是新版的EFI,事实上现在我们接触到的EFI,都是UEFI。一个计算机是使用BIOS还是使用UEFI,是由这台计算机的主板决定的,如果你使用的计算机比较老,多半用的是支持BIOS的主板;如果很新,多半用的是支持UEFI的主板。
需要说明的是:出于兼容性的考虑,大多数UEFI主板,可以选择仍然使用BIOS方式,就是说UEFI主板,既可以使用新的UEFI中介,还可以使用老的BIOS中介(通常这种方式被称为Legacy BIOS)。关于BIOS与EFI,还有很多东西可以写,但估计写的更多,会让你更加困惑,所以,暂时只介绍这么多。
选择分区方案的建议
本文是关于MBR与GPT分区方案的介绍,前面之所以介绍了一些BIOS与EFI的一些基本知识,是因为,你的电脑是使用BIOS,还是使用GPT,同你为硬盘选择MBR还是GPT关系很大。
对于普通用户,我强烈建议你采用如下的方式来选择分区表的格式:
BIOS + MBR
如果你使用的电脑主板是老式的BIOS主板,或者虽然是新式的UEFI主板,但你却采用了BIOS方式,那么,请给电脑硬盘采用MBR分区方案。
UEFI + GPT
同上一种情况相对应,新式的UEFI主板,并且采用了UEFI方式,那么,请给硬盘采用GPT分区方案。
我知道一些电脑高手一定会笑话我,你也可能会有一些疑惑,因为你在网上轻易的就发现很多教你用相反的方式,即BIOS+GPT或UEFI+MBR安装windows的文章。但我还是要建议你,如果你不是玩家,不是高手,请按BIOS + MBR或UEFI + GPT的方式选择硬盘的分区方式,这样做有两个好处:
1、 能够让硬件与软件的效率更高,速度更快;
2、 能够避免安装与运行windows时,可能出现的很多问题。对于高手,这些问题大部分都可以解决;但对于普通用户,有些问题难于解决或者即使能够解决,也会花费你大量的时间与精力。
一些朋友可能会问:我的主板是新的UEFI主板,我使用Legacy BIOS模式好不好呢?
我的建议是:除非你的硬盘很小,否则请选择EFI模式,不要使用Legacy BIOS模式,这样机器会更有效率,运行速度更快。因为EFI+GPT相比较BIOS+MBR要稍微多占用一点点硬盘空间(100M多一点),如果你的硬盘很小,非常在意这一点硬盘空间,可以选择Legacy BIOS模式。
再重复一下本文到此知识上的要点及使用上的建议,其实就两条:
1. MBR不能管理容量超过2TB的大硬盘,GPT则没有这个限制,所以,如果硬盘大于2TB,请使用GPT。
2. 使用传统BIOS主板的电脑,建议使用MBR;使用UEFI主板的电脑,建议使用GPT。
关于MBR与GPT,我们了解这么多就够了吗?不够,真的不够,因为,你还要必须要了解你使用的Windows版本,对MBR与GPT的支持情况。
Windows对MBR与GPT的兼容性
这个问题,由于下面的一些原因,其实有点烦:
1、 Windows的版本比较多。
2、 每个Windows版本,一般又分成32位与64位两个版本。
3、 兼容本身又分为两种情况:数据兼容,即Windows能够识别出MBR或GPT分区方案的硬盘,能够读写该硬盘分区上的数据;系统兼容,Windows操作系统本身可以装在MBR或GPT分区方案的硬盘上。
数据兼容与系统兼容不是一回事,很多情况,某个版本的Windows能够数据兼容MBR或GPT分区方案的硬盘,却不能系统兼容该硬盘。
对MBR的兼容:
先说最简单的,所有的windows版本,包括最新的windows10,不论是64位还是32位,都兼容MBR,即数据兼容,又系统兼容。如果你在MBR硬盘上安装windows,比如windows10,出了问题,请不要怀疑MBR,建议去检查是否主板是BIOS方式。
对GPT的兼容:
Windows各种版本对GPT分区方案的兼容性,请参考这个表格:
Window XP 32位
不支持GPT分区
不支持GPT分区
Window XP 64位
支持GPT分区
不支持GPT分区
Window Vista 32位
支持GPT分区
不支持GPT分区
Window Vista 64位
支持GPT分区
支持GPT分区,需要UEFI
Window 7 32位
支持GPT分区
不支持GPT分区
Window 7 64位
支持GPT分区
支持GPT分区,需要UEFI
Window 8 32位
支持GPT分区
不支持GPT分区
Window 8 64位
支持GPT分区
支持GPT分区,需要UEFI
Window 10 32位
支持GPT分区
不支持GPT分区
Window 10 64位
支持GPT分区
支持GPT分区,需要UEFI
一些电脑玩家和高手估计会对这个表格上的一些所谓不支持情形的判定嗤之以鼻。确实,一切皆有可能,经过一些特别的处理,很多不支持都可以变成支持。但对普通用户,请按上面的表格来选定分区格式与Windows版本,不然,会浪费你很多的时间与精力。
这个表格,可以归纳为如下三点:
1、除了最老的Windwos XP 32位,所有的Windows版本都数据兼容GPT分区方案的硬盘。
2、所有的32位Windows版本,包括最新的Window 10 32位,都不系统兼容GPT分区方案的硬盘。
3、64位的Windows版本,从Windows Vista 64位开始,系统兼容GPT分区方案的硬盘,当然,UEFI的支持也是必须的。
FAT与NTFS文件系统
在本篇文章的最开头,我们曾提到过:空白硬盘即使使用MBR或GPT方案,完成分区后,仍然不能直接使用,需要在空白分区上再创建文件系统后,才能使用。
相信你一定听说过硬盘分区格式化这样的词语,所谓格式化,就是指的在硬盘分区上创建文件系统的过程。
什么是文件系统呢?简单说,就是数据(具体说,就是文件和目录结构)如何在分区的空间上保存的规范。想了解文件系统的技术细节?不是非常喜欢专研的话,还是别想了,这东西很复杂。
存在很多种文件系统,现在,在Windows平台上,经常使用的是FAT文件系统与NTFS文件系统。事实上有好几种FAT文件系统,但现在,一般一提到FAT,通常指的就是FAT32文件系统。
为硬盘用MBR方案或GPT方案分好区后,对空白分区进行格式化操作时,可以指定相应的文件系统。事实上很多软件会让你指定好分区方案及分区文件系统后,把这两步操作一并完成,比如稍后我们将要介绍的DiskGenius的快速分区功能。
关于文件系统及格式化,下面一些知识估计对你有用,可以了解下:
1、FAT与NTFS两种文件系统有啥不同?哪个好?
FAT与NTFS有啥不同呢?技术上的细节就不说了,太繁琐。简单的说:FAT不能保存大于4GB的单个文件,这是FAT最致命的缺点,另外FAT的性能不如NTFS好。所以Windows平台下,我强烈建议你使用NTFS文件系统。
你可能会问:那为啥还有人使用FAT呢?这是因为兼容性,NTFS是微软独家的文件系统,因此非微软的产品,要实现支持NTFS,都存在技术与版权上的问题。比如你的手机,数码相机,就很有可能不支持NTFS这种文件系统。你要是使用一个SD卡,在电脑与其他数码产品间传递数据,那么给SD卡格式化成FAT文件系统,是个好的选择。
2、再谈格式化操作
在实际生活中,格式化操作更多的被人们做为删除某个分区上的全部数据的手段。你一定要知道,格式化后的分区,虽然在电脑中已经看不到了,但其原来的数据99%以上并没有被真正删除,使用数据恢复软件,能够被轻易的找回。想彻底删除分区上的数据,请使用提供了彻底销毁数据的功能的一些软件,来执行销毁数据操作。
相关操作示例
现在,我们已经讨论了很多内容:MBR、GPT、BIOS、EFI(UEFI)、文件系统(FAT及NTFS)等,这些都是理论知识,下面我们介绍一些相关的实践操作:
如何给硬盘分区
1. 将需要分区的硬盘与电脑连接好,让电脑可以识别到硬盘。如果是给系统所在的硬盘分区,则需要在PE环境下进行。
2. 运行软件,在软件中选择想要分区的硬盘,然后点击“快速分区”按钮。
3. 在弹出的“快速分区”窗口上选择分区表类型、分区数目、分区大小、分区类型、卷标等,然后点击“确定”按钮。等待几秒钟分区就完成了。
提醒:如果想给硬盘做4K对齐,则需要勾选“对齐分区到此扇区数的整数倍”选择,软件默认的值就满足4K对齐的要求。
MBR分区与GPT分区的相互转换
一、将MBR分区表类型为GUID格式
1. 选择需要进行转换的硬盘,然后点击“硬盘”菜单并选择“转换分区表类型为GUID格式”。
2. 在弹出的消息框上点击“确定”按钮。
3. 点击软件界面左上方的“保存更改”按钮,转换才会实际生效。
二、转换GUID分区表类型为MBR格式
1. 运行DiskGenius软件,然后点击“硬盘”菜单并选择“转换分区表类型为MBR格式”。
2. 在弹出的消息框中点击“确定”按钮。
注意事项:
1. 如果该硬盘的容量超过2TB,那么转换为MBR格式后,超过2TB的部分容量将无法使用。
2. 如果GPT磁盘上安装有基于EFI架构的操作系统,转换到MBR类型后该操作系统将无法启动,用户需要重新安装系统。
3. 由于MBR分区表有一定的限制(如主分区数目不能超过四个),因此在转换时,如果分区数目多于四个,DiskGenius将首先尝试将后部的分区逐一转换为逻辑分区。如果无法转换到逻辑分区(一般是由于分区前没有转换到逻辑分区的空闲扇区),分区表类型转换将失败。
备份与恢复分区表
一、备份分区表
1. 运行DiskGenius软件,在软件中选择需要备份分区表的硬盘。
2. 点击“硬盘”菜单并选择“备份分区表”选项。
3. 设置目标文件夹来保存分区表备份文件,并为文件命名,然后点击“保存”按钮。
4. 备份完成后,软件恢复提示备份成功,在弹出的消息框上点击“确定”按钮。
二、恢复分区表
1. 运行DiskGenius软件后选择要还原分区表的硬盘,然后点击菜单“硬盘”-“还原分区表”项,或按“F10”键。
2. 确认没有问题后,在弹出的提示框上点击“是”按钮。
从分区中恢复文件
1. 下载并运行DiskGenius软件,在软件中选择丢失数据的分区,然后点击“恢复文件”按钮。
2. 在弹出的窗口上选择“完整恢复”并点击“开始”按钮,软件会立刻开始搜索丢失的文件。
软件会一边扫描一边将找到的文件列出来,并且扫描过程中允许用户预览文件。双击文件可以打开文件并查看文件内容,软件支持图片、视频、音频、文档等多种类型的文件预览,用户可以更准确的判断文件的可恢复性。
3. 恢复文件。当需要的文件都找到后,可以点击“暂停”按钮,也可以提前结束扫描进程,这样就可以将需要的文件复制出去了。勾选想要恢复的文件,然后右击鼠标并选择“复制到指定文件夹”。
4. 设置目标文件夹来保存恢复回来的文件。注意:目标文件夹不能设置在丢失数据的分区,以免将文件覆盖导致文件无法成功恢复。
&&&&&产品与服务
帮助与支持
友 情 链 接
易数官方微信
易数官方微博磁盘管理(一)磁盘分区表类型与文件系统 | Linux运维部落
概述:本章介绍磁盘分区和文件系统,深度了解linux存储数据所依赖到各个部分模块。
I/O Ports: I/O设备地址
一切皆文件:
Linux为所有的设备文件都提供了统一的操作函数接口,方法是使用数据结构struct file_operations。这个数据结构中包括许多操作函数的指针,如open()、close()、read()和write()等,但由于外设 的种类较多,操作方式各不相同。Struct file_operations结构体中的成员为一系列的接口函数,如用于读/写的read/write函数和用于控制的ioctl等。 打开一个文件就是调用这个文件file_operations中的open操作。不同类型的文件有不同的file_operations成员函数,如普通的磁盘数据文件, 接口函数完成磁盘数据块读写操作;而对于各种设备文件,则最终调用各自驱动程序中的I/O函数进行具体设备的操作。这样,应用程序根本不必考虑操作的是设 备还是普通文件,可一律当作文件处理,具有非常清晰统一的I/O接口。所以file_operations是文件层次的I/O接口。
设备类型:
& & 块设备(block):随机访问,数据交换存取单位“块”,磁盘
& & 字符设备(character):线性访问,数据交换存取单位“字符”,键盘
设备号码:
& & 主设备号: major number, 标识设备类型:区分设备类型;用于标明设备所需要的驱动程序;
& & 次设备号: minor number, 标识同一类型下的不同设备:区分同种类型下的不同的设备;是特定设备的访问入口;
硬盘种类:
& & & & 机械硬盘
& & & & 固态硬盘
硬盘接口类型
& & &IDE(ata):并口 133MB/s
& & &SCSI(IDE时代服务器上使用):并口 Ultrascsi320,320MB/s;Ultrascsi640,640MB/s
并口:同一线缆可以接多块设备
& & & IDE:两个,主盘,从盘
& & & SCSI:
& & & & & &宽带16-1(必用一个)
& & & & & &窄带8-1(必用一个)
串口:同一线缆只可以接一个设备
& & SATA: 6Gbps
& & SAS: 6Gbps
& & USB: 480MB/s
平均寻道时间:
rpm: rotations每分钟转速
& & &例如:5400rpm,7200rpm,10000rpm,scsi:15000rpm
lops:io per minute 每分钟IO次数机械硬盘一般在100-200之间
硬盘存储术语
head:磁头 &(早期最多可有256个)
track:磁道 (早期最多可有1024个) &=512*63
cylinder: 柱面(不同磁盘的相同磁道组成;并且分区是以柱面为) & 柱面容量=track(磁道)63*head(磁头)256*512bytes=8M
secotr: 扇区, 512bytes(早期有63个)
CHS寻址模式
1、CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。
&磁头(Heads):每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。因此,用第几磁头就可以表示数据在哪个磁面。
&柱面(Cylinder):所有磁片中半径相同的同心磁道构成“柱面&,意思是这一系列的磁道垂直叠在一起,就形成一个柱面的形状。简单地理解,柱面数=磁道数。
&扇区(Sector):将磁道划分为若干个小的区段,就是扇区。虽然很小,但实际是一个扇子的形状,故称为扇区。每个扇区的容量为512字节。
2、知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保存在硬盘的哪个位置。也很容易确定硬盘的容量,其计算公式是:
硬盘容量=磁头数×柱面数×扇区数×512字节
3、LARGE寻址模式把柱面数除以整数倍、磁头数乘以整数倍而得到的逻辑磁头/柱面/扇区参数进行寻址,所以表示的已不是硬盘中的物理位置,而是逻辑位置。LBA寻址模式是直接以扇区为单位进行寻址的,不再用磁头/柱面/扇区三种单位来进行寻址。但为了保持与CHS模式的兼容,通过逻辑变换算法,可以转换为磁头/柱面/扇区三种参数来表示,但表示的也和LARGE寻址模式一样,已不是硬盘中的物理位置,而是逻辑位置了。
LBA(Logical Block Address),中文名称:逻辑区块地址;LBA可以意指某个数据区块的地址或是某个地址所指向的数据区块。
CHS地址可用以下公式转成LBA,
#lba=(#c*H+#h)*S+#s-1
#c、#h、#s分别是磁柱、磁头、扇区的编号
#lba是逻辑区块编号
H=heads per cylinder,每个磁柱的磁头数
S=sectors per track,每磁道的扇区数
LBA可用以下公式对应到CHS:
#c=#lba/(S*H)
#h=(#lba/S)%H
#s=(#lba%S)+1
/ 是整数除法
% 是取整数除法中的余数
请注意,当今的磁盘使用ZBR(Zone Bit Recording, 等密度记录)方式,实际的每轨扇区数得根据它是哪一轨。不过磁盘还是会提供这个参数来符合公式,内部再自动调整。
#lba/S=q 余 r
q/H=#c 余 #h
Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每个设备号又分为主设备号和次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。对于常用设备,Linux有约定俗成的编号,如硬盘的主设备号是3。
设备文件:关联至设备驱动程序,设备的访问入口,进而能够跟与之对应硬件设备进行通信
磁盘设备的设备文件命名: /dev/DEV_FILE
IDE: /dev/hd
SCSI, SATA, SAS, USB: /dev/sd[a-z]
不同设备: a-z
& & & & & /dev/sda, /dev/sdb, …
同一设备上的不同分区/dev/sd[a-z]#: 1,2, …
& & & & & & & & & & &/dev/sda1, /dev/sda5
注意:CentOS6与7统统将硬盘设备文件标识为/dev/sd[a-z]#
创建设备文件命令:
mknod:创建块或字符设备特殊文件
& & & mknod [OPTION]… NAME TYPE [MAJOR MINOR]
& & & mknod [选项]… 名称 类型 [主设备号 次设备号]
& & & -m:设置设备文件权限位,类似于chmod,不似a=rw,umask
& & & -Z:设置SELinux安全环境默认类型
& & & –context[=CTX]:将对应名称文件的SELinux 安全环境设置为CTX
& & & b:创建一个(有缓冲)块设备特殊文件
& & & c, u:创建一个(无缓冲)字符设备特殊文件
& & & p:创建一个先进先出管道
当类型为&p&时可不指定主设备号和次设备号,否则它们是必须指定的。
如果主设备号和次设备号以&0x&或&0X&开头,它们会被视作十六进制数来解析;如果以&0&开头,则被视作八进制数;其余情况下被视作十进制数。
引用设备的方式:
& & & & & & & &设备文件名
& & & & & & & &卷标
& & & & & & & &UUID
[root@localhost ~]# uuidgen
e3a-485d-dd7999d0 & &&
&两种分区方式: MBR, GPT
MBR: Master Boot Record(主引导记录),使用32位表示扇区数, 分区不超过2T
如何分区:按柱面分区
0磁道0扇区:512bytes
& & & & & & 446bytes: boot loader:用于启动硬盘的一些引导指令(即主引导程序,MBR)
& & & & & & 64bytes:磁盘分区表(DPT),每16bytes标识一个分区,一共只能有4个分区(4个主分区或 3主分区+1扩展(N个逻辑分区))
& & & & & & 2bytes: MBR区域的有效标识;55AA为有效;否则认为未分区无法使用
扩展分区(Extended)必须分区成若干个逻辑分区才能使用。扩展分区也存在类似MBR的EBR(扩展分区引导记录)
主分区和扩展分区的标识:1-4
逻辑分区:5以上整数
一般一个数据块(Block)=2^n个扇区
GPT:GUID patition table 支持128个分区,使用64位,支
持8Z(512Byte/block ) 64Z (4096Byte/block)
使用128位UUID 表示磁盘和分区 GPT分区表自动备份在头
和尾两份,并有CRC校验位
UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
& &EFI部分又可以分为4个区域: EFI信息区(GPT头)、分区表、 GPT分区、备份区域
列出块设备
创建分区使用:
fdisk 创建MBR分区,也支持GPT,对于一块硬盘,最多只能管理15分区
gdisk 创建GPT分区 推荐使用此工具管理GPT分区
GNU parted 高级分区操作(创建、复制、调整大小等等)
&partprobe-重新设置内存中的内核分区表版本
分区工具fdisk和gdisk
注意:因为可以进行分区所以慎用
& & & fdisk /dev/sd*
& & & gdisk /dev/sd* 类fdisk 的GPT分区工具
1、查看磁盘分区信息
& &fdisk -l [-u] [device…]
[root@localhost ~]# fdisk -l /dev/sda
磁盘 /dev/sda:214.7 GB,
字节, 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000af0bf
& &设备 & Boot & & &Start & & & & End & & &Blocks & Id &System
/dev/sda1 & * & & & &2048 & & &411647 & & &204800 & 83 &Linux
/dev/sda2 & & & & &411648 &
& 83 &Linux
/dev/sda3 & & &
& & 4194304 & 82 &Linux swap / Solaris
/dev/sda4 & & &
& &5 &Extended
/dev/sda5 & & &
& & & 83 &Linux
Boot列*号所在分区代表引导分区(操作系统所在)
Start与End(分区开始与结束):CentOS6为从那个柱面开始到那个柱面结束
& & & & & & & & & & & & & & & CentOS7为从那个扇区开始到那个扇区结束&
Blocks:数据库数量
Id(类型):正常分区用83(十六进制数字)表示;交换分区(有些场景可以理解为虚拟内存)用82表示;扩展分区用5表示
2、管理分区
fdisk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
fdisk提供了一个交互式接口来管理分区,他有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘;直到使用w命令保存至磁盘上
[root@localhost ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x51e40e4e 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
& & a 切换可引导标志
& & b 编辑 bsd 磁盘
& & c 切换 dos 兼容性标志
& & d 删除一个分区
& & l 列出已知的分区类型(Id)
& & m 打印此菜单
& & n 添加新的分区
& & o 创建一个新的空 DOS 分区表
& & p 显示分区表
& & q 退出而不保存更改
& & s 创建新的空动作
& & t 改变分区的系统类型 id
& & u 更改显示/输入单位验证分区表
& & w 写入磁盘并退出
& & x 额外功能 (仅限于专家)
命令(输入 m 获取帮助):l
&0 &空 & & & & & & 24 &NEC DOS & & & & &81 &Minix / 旧 Linu & &bf &Solaris & & & &
&1 &FAT12 & & & & & 27 &隐藏的 NTFS Win & & 82 &Linux 交换 / So & &c1 &DRDOS/sec (FAT-
&2 &XENIX root & & & &39 &Plan 9 & & & & &83 &Linux & & & & &c4 &DRDOS/sec (FAT-
&3 &XENIX usr & & & &3c &PartitionMagic & & &84 &OS/2 隐藏的 C: & c6 &DRDOS/sec (FAT-
&4 &FAT16 &32M & & & &40 &Venix 80286 & & & 85 &Linux 扩展 & & &c7 &Syrinx & & & &&
&5 &扩展 & & & & & &41 &PPC PReP Boot & & &86 &NTFS 卷集 & & &da &非文件系统数据&
&6 &FAT16 & & & & & 42 &SFS & & & & & & 87 &NTFS 卷集 & & & db &CP/M / CTOS / .
&7 &HPFS/NTFS/exFAT & &4d &QNX4.x & & & & & 88 &Linux 纯文本 & & de &Dell 工具 & & &
&8 &AIX & & & & & &4e &QNX4.x 第2部分 & & &8e &Linux LVM & & &df &BootIt & & & &&
&9 &AIX 可启动 & & & &4f &QNX4.x 第3部分 & & 93 &Amoeba & & & & e1 &DOS 访问 & & &&
&a &OS/2 启动管理器 & &50 &OnTrack DM & & & &94 &Amoeba BBT & & &e3 &DOS R/O & & & &
&b &W95 FAT32 & & & &51 &OnTrack DM6 Aux & & 9f &BSD/OS & & & & e4 &SpeedStor & & &
&c &W95 FAT32 (LBA) & &52 &CP/M & & & & & &a0 &IBM Thinkpad 休 & eb &BeOS fs & & & &
&e &W95 FAT16 (LBA) & &53 &OnTrack DM6 Aux & & a5 &FreeBSD & & & &ee &GPT & & & & & &
&f &W95 扩展 (LBA) & & 54 &OnTrackDM6 & & & &a6 &OpenBSD & & & &ef &EFI (FAT-12/16/
&10 &OPUS & & & & & 55 &EZ-Drive & & & & &a7 &NeXTSTEP & & & f0 &Linux/PA-RISC &
&11 &隐藏的 FAT12 & & &56 &Golden Bow & & & &a8 &Darwin UFS & & &f1 &SpeedStor & & &
&12 &Compaq 诊断 & & & 5c &Priam Edisk & & & a9 &NetBSD & & & & f4 &SpeedStor & & &
&14 &隐藏的 FAT16 &3 & &61 &SpeedStor & & & &ab &Darwin 启动 & & &f2 &DOS 次要 & & &&
&16 &隐藏的 FAT16 & & &63 &GNU HURD or Sys & &af &HFS / HFS+ & & &fb &VMware VMFS & &
&17 &隐藏的 HPFS/NTF & &64 &Novell Netware & & b7 &BSDI fs & & & &fc &VMware VMKCORE&
&18 &AST 智能睡眠 & & &65 &Novell Netware & & b8 &BSDI swap & & & fd &Linux raid 自动
&1b &隐藏的 W95 FAT3 & &70 &DiskSecure 多启 & &bb &Boot Wizard 隐 & &fe &LANstep & & & &
&1c &隐藏的 W95 FAT3 & &75 &PC/IX & & & & & be &Solaris 启动 & & ff &BBT & & & & & &
&1e &隐藏的 W95 FAT1 & &80 &旧 Minix&
注意:在已经分区并且已经挂载其中某个分区的磁盘设备上的创建的新分区,内核可能在创建完成后无法直接识别
同步分区表
查看内核是否已经识别新的分区:
&# cat /proc/partations
通知内核重新读取硬盘分区表
CentOS 5,7:partprobe [/dev/DEVICE]
CentOS 6,7:partx,kpartx
partx [-a|-d|-s|-u] [-t TYPE] [-n M:N] [-] disk
partx [-a|-d|-s|-u] [-t TYPE] partition [disk]
& & & &-a:添加制定的分区或读磁盘新增的分区
& & & &-d:删除制定或所有的分区
& & & &-n:指定分区范围(例如M:N输入为2:-1表示最后两个分区)
新增分区用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
分区创建工具:parted,sfdisk;
parted命令
parted的操作都是实时生效的,小心使用
用法: parted [选项]… [设备 [命令 [参数]…]…]
& & & &parted /dev/sdb mklabel gpt|msdos
& & & &parted /dev/sdb print
& & & &parted /dev/sdb mkpart primary 1 200 (默认M)
& & & &parted /dev/sdb rm 1
& & & &parted -l
创建文件系统:
& & & & 低级格式化(分区之前进行,低级格式化就是将磁盘内容重新清空,恢复出厂时的状态,划分出的柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID、间隔区GAP和数据区DATA等。而且低级格式化只能针对一块硬盘而不能支持单独的某一个分区。每块硬盘在出厂时,已由硬盘生产商进行低级格式化,因此通常使用者无需再进行低级格式化操作。注意的是低级格式化一种损耗性操作)
& & & & 高级格式化(分区之后对分区进行,高级格式化又称逻辑格式化,它是指根据用户选定的文件系统(如FAT12、FAT16、FAT32、NTFS、EXT2、EXT3等),在磁盘的特定区域写入特定数据,以达到初始化磁盘或磁盘分区、清除原磁盘或磁盘分区中所有文件的一个操作。高级格式化包括对主引导记录中分区表相应区域的重写、根据用户选定的文件系统,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间,以便用户使用该分区管理文件。即创建文件系统并清除所有数据以实现初始化)
元数据区、数据区
元数据区:
& & 文件元数据:inode(index node)
& & & & 大小、权限、属主属组、时间戳、数据块指针 &(但是不包括文件名,文件名保存在目录数据块中)
& & & & 注意:最大单个文件大小由inode(数据块指针)多少决定
& & 特殊文件:
& & & & & & 链接文件:存储数据指针的空间当中存储的是真实文件的访问路径(本身不占据磁盘块);
& & & & & & 设备文件:存储数据指针的空间当中存储的是设备号(major,minor)(本身不占据磁盘块);
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
文件系统类型
Linux文件系统: : ext2(Extended file system), ext3,
ext4, xfs(企业级64位SGI) , btrfs(Oracle) , reiserfs(反删除功能很好,但是开发受阻), jfs(
AIX) , swap
光盘: iso9660
Windows: fat32, ntfs
Unix: FFS(fast快速文件系统) , UFS(unix) , JFS2(日志文件系统)
网络文件系统: NFS, CIFS
集群文件系统: GFS2, OCFS2(oracle)
& &内核级分布式文件系统:ceph
用户空间分布式文件系统: moosefs, mogilefs, glusterfs,Lustre
& &伪文件系统:proc,sysyfs,tmpfs,hugepagefs
& &交换文件系统:swap
RAW:未经处理或者未经格式化产生的文件系统
文件系统分类
根据其是否支持&journal&功能:
& 日志型文件系统: ext3, ext4, xfs, …
& 非日志型文件系统: ext2, vfat
文件系统的组成部分:
& 内核中的模块: ext4, xfs, vfat
& 用户空间的管理工具: mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统: VFS(用户与文件系统之间的接口)
查前支持的文件系统: cat /proc/filesystems
创建文件系统
mkfs命令:
& (1) # mkfs.FS_TYPE /dev/DEVICE
& & & & & & & ext4
& & & & & & & xfs
& & & & & & & btrfs
& & & & & & & vfat
& & & & & & & mkfs.vfat device
& & & & & & & mkfs -t ext2 = mkfs.ext2
& (2) # mkfs -t FS_TYPE /dev/DEVICE
& & -L 'LABEL': 设定卷标
创建ext文件系统
mke2fs: ext系列文件系统专用管理工具
& &mke2fs [OPTION] device
& & & & & -t {ext2|ext3|ext4}:指明要创建的文件系统类型;
& & & & & & & mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4
& & & & & -b {96}:指明文件系统的块大小;
& & & & & -L 'LABEL' 创建文件系统并设定卷标
& & & & & -j: 相当于 -t ext3
& & & & & & & mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
& & & & & -i #: 指明inode与字节的比率;即每多少字节创建一个Indode;此大小不应该小于block的大小
& & & & & -N #:直接指明要为此文件系统创建的inode的数量
& & & & & -I 一个inode记录大小128&#
& & & & & -m #: 默认5%,为管理人员预留空间占总空间的百分比
& & & & & -O FEATURE[,…]:启用指定特性创建目标文件系统
& & & & & -O ^FEATURE:关闭指定目标文件系统特性
对已创建文件系统管理卷标&
& e2label命令:卷标的查看与设定
& & & & 查看:e2lable device
& & & & 设定:e2label device LABEL
dumpe2fs:现实ext系列文件系统的属性信息
& & dumpe2fs [-h] device
& & & & & & & -h:查看超级块信息(分组信息),分区用分组管理
tune2fs:查看或重新设定ext系列文件系统可调整参数的值(不用重新格式化)
& & & & & & -l:查看指定文件系统的超级块信息; super block
& & & & & & -L 'LABEL':修改卷标
& & & & & & -m #:修预留给管理员的空间百分比
& & & & & & -j: 将ext2升级为ext3
& & & & & & -O: 文件系统属性启用或禁用, 例如:–O ^has_journal
& & & & & & -o[^]: 调整文件系统的默认挂载选项(mount_options),例如:–o ^acl关闭访问控制列表
& & & & & & -U UUID: 修改UUID号
注意:块大小创建后不可修改
因进程意外终止或系统崩溃等原因导致操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行(非挂载状态,无人操作);
文件系统检测和修复
常发生于死机或者非正常关机之后
挂载为文件系统标记为“ dirty”
fsck: 文件系统检测修复
& & & & fsck.FS_TYPE
& & & & fsck -t FS_TYPE 指明文件系统类型;
& & & & & & fsck.ext4 = fsck -t ext4
& & & & -a: 无须交互而自动修复所有错误;(不推荐使用)
& & & & -r: 交互式修复错误
注意: FS_TYPE一定要与分区上已知文件类型相同;
& &e2fsck: ext系列文件专用的检测修复工具
& & & & -y:对所有问题自动回答为yes
& & & & -f:即使文件系统处于clean状态,也要强制检测修复
文件系统标签
指向设备的另一种方法,与设备无关
blkid:块设备属性信息查看
& blkid [OPTION]… [DEVICE]
& -U UUID: 根据指定的UUID来查找对应的设备
& -L LABEL:根据指定的LABEL来查找对应的设备
findfs :查找分区
& findfs [options] LABEL=&label&
& findfs [options] UUID=&uuid&
文件系统要想使用必须要挂载
& 在linux操作系统中,挂载是一个非常重要的功能,使用非常频繁。它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)需要理解的是,linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。
& 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
挂载:将额外文件系统与根文件系统某现存的目录建立起关联
关系,进而使得此目录做为其它文件访问入口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点: mount Point
卸载时:可使用设备,也可以使用挂载点
& & umount
挂载点下原有文件在挂载完成后会被临时隐藏
挂载点目录一般为空
用mount命令挂载文件系统
挂载方法: mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标: -L 'LABEL', 例如 -L 'MYDATA'
(3) UUID, -U 'UUID':例如 -U '0c5-45e7-85c0-ae'
(4) 伪文件系统名称: proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录
进程正在使用中的设备无法被卸载
mount常用命令选项
-t vsftype:指定要挂载的设备上的文件系统类型
-r: readonly,只读挂载
-w: read and write, 读写挂载
-n: 不更新/etc/mtab,相当于#mount
-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL': 以卷标指定挂载设备
-U 'UUID': 以UUID指定要挂载的设备
-B, –bind: 绑定目录到另一个目录上
目录也可以挂在至另一个目录上作为其临时访问入口;
& & mount –bind 源目录 目标目录
& & & & & -o options: (挂载文件系统的选项),多个选项使用逗号分隔
& & & & & & async:异步模式
& & & & & & sync:同步模式,内存更改时,同时写磁盘
& & & & & & atime/noatime:目录或文件在被访问时是否更新其访问时间戳
& & & & & & diratime/nodiratime:目录在被访问时是否更新其访问时间戳
& & & & & & auto/noauto:是否支持自动挂载,是否支持-a选项(一般写在/etc/fstab中)
& & & & & & exec/noexec:是否支持在文件系统上运行应用程序
& & & & & & dev/nodev:是否支持在此文件系统上创建使用设备文件
& & & & & & suid/nosuid:是否支持程序文件上的suid和sgid特殊权限生效
& & & & & & remount:重新挂载;
& & & & & & ro:只读
& & & & & & rw: 读写
& & & & & & user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载
& & & & & & acl:启用此文件系统上的acl功能
& & & & & & & & &#mount -o acl device dir
& & & & & & & & &#tune2fs -o acl device
& & & & & & Defaults:相当于rw, suid, dev, exec, auto, nouser, async
查看内核追踪到的已挂载的所有设备:
& & #mount
& & #cat /etc/mtab
& & #cat /proc/mounts &&
查看挂载情况:
& #findmnt MOUNT_POINT
查看正在访问指定文件系统的进程:
& #lsof MOUNT_POINT
& #fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:
& # fuser -km MOUNT_POINT
& # umount DEVICE
& # umount MOUNT_POINT
设定除根文件系统以外的其它文件系统能够开机时自动挂载:/etc/fstab文件&
文件挂载配置文件
/etc/fstab 每行定义一个要挂载的文件系统;
& & & & &第一列字段:要挂载的设备或伪文件系统(设备文件或LABEL=&&卷标或UUID=&&)
& & & & & & & & & & & &伪文件系统:如sysfs,proc,tmpfs等 &
& & & & &第二列字段:挂载点
& & & & & & & & & & & &swap类型的设备的挂载点为swap;
& & & & &第三列字段:文件系统类型
& & & & &第四列字段:挂载选项
& & & & & & & & & & & &defaults:使用默认挂在选项;
& & & & & & & & & & & &如果要同时指明多个挂载选项,彼此间以逗号分隔;
& & & & &第五列字段:转储频率(备份)
& & & & & & & & & & & &0:不做备份
& & & & & & & & & & & &1:每天转储
& & & & & & & & & & & &2:每隔一天转储&
& & & & &第六列字段:自检次序
& & & & & & & & & & & &0:不自检
& & & & & & & & & & & &1:首先自检;一般只有rootfs才用1
& & & & & & & & & & & &2:次级自检
自动挂载定义在/etc/fstab中的所有支持自动挂载的文件系统设备
#mount -a&
swap文件系统:
& & Linux上的交换分区必须使用独立的文件系统;且文件系统的System ID必须为82;
& & 创建swap设备:mkswap命令
& & mkswap [OPTIONS] device
& & & & & & & -L LABEL:指明卷标
& & & & & & & -f:强制创建
windows无法识别Linux的文件系统;因此,存储设备需要两种系统之间交叉使用时,应该使用windows和Linux同时支持的文件系统;fat32(vfat);
处理交换文件和分区
交换分区是系统RAM的补充
基本设置包括:
& & & & 创建交换分区或者文件
& & & & 使用mkswap写入特殊签名
& & & & 在/etc/fstab文件中添加适当的条目
& & & & 使用swapon -a 激活交换空间
挂载交换分区
启用: swapon
& & & &swapon [OPTION]… [DEVICE]
& & & & & & & & -a:激活所有的交换分区(定义在/etc/fstab文件中的所有swap设备);
& & & & & & & & -p PRIORITY:指定优先级
& & & & & & & & & & & & & & &/etc/fstab:pri=value
禁用: swapoff [OPTION]… [DEVICE]
SWAP的优先级
用户可以给某个swap指定一个0到32767的优先级
如果用户没有指定,那么核心会自动给swap指定一个优
先级,这个优先级从-1开始,每加入一个新的没有用户
指定优先级的swap,会给这个优先级减一。
先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心
缺省指定的优先级(是负数)。
优化性能:分布存放,高性能磁盘存放
挂载意味着使外来的文件系统看起来如同是主目录树的一部分
访问前、介质必须被挂载
摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、 DVD、软盘、 USB等等)
挂载点通常在/media 或/mnt下
在图形环境下自动启动挂载/run/media/&user&/&label&
否则就必须被手工挂载
& & & & &mount /dev/cdrom /mnt/
eject命令卸载或弹出磁盘
& & & & & #eject
& & & & & #eject -t 弹入
创建ISO文件
& & & & cp /dev/cdrom /root/centos7.iso
& & & & mkisofs -r -o /root/etc.iso /etc
& & & & wodim –v –eject centos.iso
挂载本地的回环设备:
& & & &回环设备:一般为使用镜像文件(镜像文件中也有文件系统)虚拟块设备存在于实际的另一个文件系统中
& & & &#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
挂载USB介质
被内核探测为SCSI设备
& /dev/sdaX、 /dev/sdbX、或类似的设备文件
& &在图形环境中自动挂载
& 图标在[计算机]窗口中创建
& 挂载在/run/media/&user&/&label&
& mount /dev/sdb1 /mnt
内存空间使用状态:
& free [OPTION]
& & -m: 以MB为单位
& & -g: 以GB为单位
& & -h:human-readable;以人类易读的单位显示
文件系统空间占用信息的查看工具:
& df [OPTION]… [FILE]…
& & -H 以1000为单位
& & -T 文件系统类型
& & -h: human-readable;以人类易读的单位显示
& & -i: inodes instead of blocks;显示inode的使用状态而非blocks
& & -P: 以Posix兼容的格式输出
& & -:仅显示本地文件的相关信息(不包括网络中的);
查看某目录总体空间占用状态:
& du [OPTION]… DIR
& & -h: human-readable;以人类易读的单位显示
& & -s: summary;共计
dd命令: convert and copy a file
& dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
& bs=#: block size, 复制单元大小
& count=#:复制多少个bs
of=file 写到所命名的文件而不是到标准输出
& if=file 从所命名文件读取而不是从标准输入
& bs=size 指定块大小(既是是ibs也是obs)
& ibs=size 一次读size个byte
& obs=size 一次写size个byte
& cbs=size 一次转化size个byte
& skip=blocks 从开头忽略blocks个ibs大小的块
& seek=blocks 从开头忽略blocks个obs大小的块
& count=n 只拷贝n个记录
& conv=conversion[,conversion…] 用指定的参数转换文件。
ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
block 转换为长度为 cbs 的记录,不足部分用空格填充。
unblock 替代cbs长度的每一行尾的空格为新行
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
swab 交换输入的每对字节
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
磁盘拷贝:
& dd if=/dev/sda of=/dev/sdb
& dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MBR中的bootloader:
& dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有一个大与2K的二进制文件fileA。 现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip &/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
& & dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
& & dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
& & dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后, /dev/sda1将无法挂载,创建和拷贝操作无法执行。
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000
of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000
of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000
of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000
of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统
最佳的block size大小
测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024
count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1, 2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
du -s 当前目录下所有文件大小和
1、创建一个2G的文件系统,块大小为2048byte, 预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自
动挂载至/testdir目录,且默认有acl挂载选项
2、写一个脚本,完成如下功能:
(1) 列出当前系统识别到的所有磁盘设备
(2) 如磁盘数量为1,则显示其空间使用信息
否则,则显示最后一个磁盘上的空间使用信息
二、总结练习:
1、分区(mbr,gpt)区别和结构
MBR,全称为Master Boot Record,即硬盘的主引导记录。
& &硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为0xAA55或0x55AA,这取决于处理器类型,如果是小端模式处理器(如Intel系列),则该值为0xAA55;如果是大端模式处理器(如Motorola6800),则该值为0x55AA。
MBR是不属于任何一个操作系统,也不能用操作系统提供的磁盘操作命令来读取它,但可以通过命令来修改和重写
& &一个扇区的硬盘主引导记录MBR由4个部分组成。
主引导程序(偏移地址0000H&#H):它负责从活动分区中装载,并运行系统引导程序。
出错信息数据区:偏移地址0089H&#H为出错信息,00E2H–01BDH全为0字节。
分区表(DPT,Disk Partition Table)含4个分区项:偏移地址01BEH–01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
结束标志字:偏移地址01FE–01FF的2个字节值为结束标志0xAA55或0x55AA,称为“魔数”(magic number)。如果该标志错误系统就不能启动。
MBR使用磁盘的最开始的512Byte,结构图如下。可以看到只有中间的64Byte是用来描述分区表的,每16Byte描述一个分区,所以最多只能同时划分4个主分区。
具体含义如下:
(1)0x00~0x1BD:446个字节,包含一段指令,用以通知计算机如何访问分区表并定位操作系统的位置
这部分的代码会因为操作系统不同而不同,利用引导代码可以实现多重系统引导。多系统引导有两种方法可以实现:一种方法是用操作系统在引导分区中设置一段代码,先加载进入用户选择系统的界面,允许用户选择要进入的系统,再进入指定的系统;第二种方法是改变MBR中的引导代码,该代码直接呈现给用户一个选择系统的界面。
(2)0x1BE~0x1FD:64个字节,4个分区表项,每个表项占用16个字节,描述一个分区,最多可以描述4个分区(这就是为什么MBR分区体系只能分成4个区【我们平时看到的分区一般可以从26个字母中选取任意多个当做分区标识(多于4个),这是因为那些分区是逻辑分区,这里的4个分区指的是主分区和扩展分区的数目,而逻辑分区是在扩展分区中划分出来的,也叫做二级、三级扩展分区。】)。
分区表项并没有顺序要求,即不要求第一个分区表项在第二个分区表项前。
分区表也不要求从第一个分区表项开始
(3)0x1FE~0x1FF:2个字节,有效结束标志0xAA55或0x55AA。如果没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁盘的分区。
& 而描述硬盘分区结构信息的这16Byte是如下这样的结构。可以发现只有最后4Byte是用来描述分区总的扇区数的,4Byte是32位,也就是分区最大只能是2^32*512Byte,大概是2.2TB。
分区表参数含义(字节)
0 活动(80)或非活动分区(00)
1 2 3 起始的磁头 01 柱面 01 扇区00值
4 分区类型符 NTFS(07)FAT32(0B)扩展(0F)
5 6 7 结束的磁头 FE 柱面 FF 扇区FF值
8 9 A B 本分区之前已用扇区数
C D E F 本分区大小
即 EBR (extent boot record)扩展引导记录,其记录表项 与MBR相同 ,用于管理扩展分区上的逻辑驱动器。
GUID磁碟分割表(GUID Partition Table,缩写:GPT)
& 其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。
1、支持2TB以上的大硬盘。
2、每个磁盘的分区个数几乎没有限制。“几乎”是因为Windows系统最多只允许每个划分128个分区。不过也完全够用了。
3、分区大小几乎没有限制。“几乎”。因为它用64位的整数表示扇区号,即2^64=18,446,744,073,709,551,616。夸张一点说,一个64位整数能代表的分区大小已经是个“天文数字”了,若干年内你都无法见到这样大小的硬盘,更不用说分区了。
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,可以通过另一份恢复。
5、每个分区可以有一个名称(不同于卷标)。
& 逻辑块(LBA)大小是512Byte。出于兼容性考虑,LBA 0(即硬盘的第一个扇区)仍然用作MBR,之后LBA 1是分区表头。LBA 2-33都用来描述分区表项,每个LBA可描述4个分区,即每个分区使用128Byte来描述。另外,GPT分区将在磁盘最后的33个扇区作为主分区表的备份,称为备份分区表。
& GPT 为了兼容 MBR,LBA 0 依旧保留了MBR的结构。在GPT工作时,会优先读取 GPT (LBA1) 内容。如果没有 GPT 内容,则认为这是一块MBR磁盘。再从LBA 0 读取MBR。 &在硬盘末尾,GPT 备份了一份,这样当GPT出错时,可以快速的从硬盘末尾恢复。LBA -1 (负1) 表示倒数第一块 LBA。 &从LBA 2 到 LBA 33 ,一共预留了 128 个分区表空间。 GPT 支持在一块硬盘上创建 128 个分区。所以每一个分区可以使用 128 bytes 的空间。
而每个分区表项是如下这样的结构,可以看到它使用8Byte描述分区起始位置和结束位置,那么就是(2^64-1)*512Byte=9.4ZB(9.4×10^21字节)。
GPT磁盘与MBR磁盘 & & &
GPT(Globally Unique Identifier Partition Table Format)一种由基于 Itanium 计算机中的可扩展固件接口 (EFI) 使用的磁盘分区架构。与主启动记录 (MBR) 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区,支持高达 18 千兆兆字节的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。 & & &与支持最大卷为 2 TB (terabytes) 并且与每个磁盘最多有 4 个主分区(或 3 个主分区,1 个扩展分区和无限制的逻辑驱动器)的主启动记录 (MBR) 磁盘分区的样式相比,GUID 分区表 (GPT) 磁盘分区样式支持最大卷为 18 EB (exabytes) 并且每磁盘最多有 128 个分区。与 MBR 分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT 分区磁盘有多余的主要及备份分区表来提高分区数
2、作业:分区(mbr,gpt),创建文件系统(ext系列,xfs等),mount挂载各种选项
注意:文件系统是针对分区来使用的,如如下图操作,则是将整个磁盘当成一个分区,格式化创建文件系统
创建ext系列文件系统
创建ext系列文件系统工具还有以下工具
创建xfs文件系统
对已经分区的硬盘新添加或删除分区,需要执行以下命令,使内核能够识别硬盘变动情况;而非分区过的硬盘不需要
通知内核重新读取硬盘分区表
CentOS 5,7:partprobe [/dev/DEVICE]
CentOS 6,7:partx,kpartx
partx [-a|-d|-s|-u] [-t TYPE] [-n M:N] [-] disk
partx [-a|-d|-s|-u] [-t TYPE] partition [disk]
& & & &-a:添加制定的分区或读磁盘新增的分区
& & & &-d:删除制定或所有的分区
& & & &-n:指定分区范围(例如M:N输入为2:-1表示最后两个分区)
新增分区用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
在已经分过区的磁盘上添加新分区
在已经分过区的磁盘上删除分区
mount挂载各种选项
#mount /dev/sdf /mnt/usb
挂载回环设备
#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
mount –bind 源目录 目标目录
开机自动挂载
编辑/etc/fstab文件
自动挂载定义在/etc/fstab中的所有支持自动挂载的文件系统设备
#mount -a&
激活所有的交换分区(定义在/etc/fstab文件中的所有swap设备);
#swapon -a
您还未登录,请登录后再进行相关操作!
400-080-6560
在线咨询:
工作时间:周一至周五,9:30-18:30,节假日同时也值班

我要回帖

更多关于 磁盘具有mbr分区表 的文章

 

随机推荐