Linux下的磁盘分割和文件系统
一、各硬件装置在Linux下的文件名
1、IDE硬盘机 在Linux内的文件名: /dev/hd[a-d] (a-d 刚好是四个这个是有原因的具体如下)
解释:以 IDE 接口来说,由于一个 IDE 扁平电缆可以连接两个 IDE 装置,又通常主机都会提供两个 IDE 接口,因此最多可以接到四个 IDE 装置。 也就是说,如果你已经有一个光盘设备了,那举最多就叧能再接三颗 IDE 接口的磁盘啰。 这两个 IDE 接口通常被称为 IDE1(primary)及 IDE2(secondary), 而每条扁平电缆上面的IDE 装置可以被区分为 Master 和Slave
这四个 IDE 装置癿文件名为:
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd
2、SCSI/SATA/USB硬盘机 在linux内的文件名: /dev/sd[a-p] 其中的a-p也同样的道理,但是 SATA是没有顺序的只有按照系统检测到磁盘的顺序来排列,比如有4颗磁盘,则肯能为 /dev/sda /dev/sdb /dev/sdc /dev/sdd 而这个顺序为磁盘检测到的顺序,
二、磁盘的组成
1、一个磁盘有:磁盘盘,机械手臂,磁盘读取头以及主轴马达,而数据的写入其实是在磁盘盘面上,磁盘盘面又可以细分为扇区(sectory)磁柱(cylinder)两种单位,其中一个扇区的大小为512byte .
2、磁盘磁面上有一个特别的扇区即第一个扇区,这个扇区特别是因为它记录了两个信息:
(1)、磁盘分割表 ,也就是你这个磁盘的分割的相关信息,如起始磁柱,结束磁柱大小为64bytes
(2)、MBR(master boot record ) 即主要启动引导区,可以安装启动管理程序的地方 大小为 446bytes
3、磁盘分区表:我们知道磁柱是分割槽的最小单位,而在第一个扇区中的64bytes 存放的分割表,而这64bytes被分为4组,每组记录其起始和结束磁柱号码。
4、由于分割表就只有 64 bytes 而已,最多叧能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽
5、(1)、其实所谓的『分割』只是针对那个 64 bytes 的分割表进行设定而已!
(2)、 硬盘默认的分割表仅能写入四组分割信息
(3)、这四组分割信息我们称为主要(Primary)或延伸(Extended)分割槽
(4)、分割槽的最小单位为磁柱(cylinder)
(5)、当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理!
6、磁盘中最多只能有四个主要分割或三个主要分割和一个延伸分割,而延伸分割只能有一个,这是系统的限制,而主分割加延伸分割最多只能有四个这是磁盘的限制。
7、延伸分割不能进行格式化,而逻辑分割是通过延伸格分割格式化得到的结果!,也就是说如果延伸分割槽坏了则所有的逻辑分割槽中的数据也就被损坏了!
三、Linux下的磁盘 文件系统 挂载 挂载点 目录树 的相关概念以及他们之间的关系
1、磁盘 没什么好说的,就是一块硬盘 或其他的存储设备
2、文件系统:什么是文件系统?
(1)、文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构; 即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。 因此,可以说"我有2个文件系统"意思是他有2个分区,一个存文件,或他用 "扩展文件系统",意思是文件系统的种类。
(2)、磁盘或分区和它所包括的文件系统的不同是很重要的。 少数程序(包括最有理由的产生文件系统的程序)直接对磁盘或分区的原始扇区进行操作; 这可能破坏一个存在的文件系统。 大部分程序基于文件系统进行操作,在不同种文件系统上不能工作。
(3)、一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。
(4)、大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化。 其中心概念是超级块superblock, i节点inode, 数据块data block,目录块directory block, 和间接块indirection block。 超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统)。 i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中, 目录条目包括文件名和文件的i节点数目。 i节点包括几个数据块的数目,用于存储文件的数据。 i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间。 这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码。
3、挂载:所谓的挂载就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为挂载;
4、挂载点:那个进入点的目录我们称为挂载点;
5、目录树:在linux下目录是以树的结构呈现的,所以就叫目录树;
6、在目录树中树根就是根目录,而这个根目录必须要挂载到某个分割槽,而其下的某些目录可以根据自己的需要来挂载,也可以不挂在,因为根目录已经挂载了,如果你不挂载则默认就是和根目录相同的分割槽!
7、 软挂载是通过 mount 命令来实现的
Linux下的磁盘分割和文件系统的更多相关文章
- linux下查看磁盘分区的文件系统格式
df -T 只可以查看已经挂载的分区和文件系统类型. Filesystem Type 1K-blocks Used Available Use% Mounted on/dev/sda1 ext4 20 ...
- 【转】linux下查看磁盘分区的文件系统格式
https://www.cnblogs.com/youbiyoufang/p/7607174.html
- linux下U盘变成只读文件系统的修复
问题描述: U盘插入linux下后变成了只读文件系统,不能再往u盘里拷贝文件. 总结:产生这个问题的原因可能是u盘文件系统损坏,操作系统为了防止它损坏系统,将它设置成了只读 修复方法: 在window ...
- linux下用cronolog分割apache日志
linux下用cronolog分割apache日志,大神莫拍砖,菜鸟留一记录,小白请默默转载.连linux登陆和vi编辑都不会的,请默默关闭此页面.入正题 说明:淡绿色底的为linux命令,其他的为备 ...
- linux下测试磁盘的读写IO速度-简易方法
linux下测试磁盘的读写IO速度-简易方法 参考资料:https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是用 ...
- Linux下查看磁盘挂载的几种方法
Linux下查看磁盘挂载的几种方法 第一种方法:df命令 # df -hT Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtm ...
- Linux下查看磁盘挂载的三种方法
Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...
- Linux下查看磁盘与目录的容量——df、du
df:列出文件系统的整体磁盘使用量: du:评估文件系统的磁盘使用量(常用于评估目录所占容量) df参数: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以KB的容量显示各文件系 ...
- linux下的磁盘和文件系统管理
一.硬盘分区知识 1.分区类型 硬盘分区一共有3种:主分区.扩展分区和逻辑分区.扩展分区只不过是逻辑分区的“容器”,实际上只有主分区和逻辑分区进行数据存储.在一块硬盘上最多只能有4个主分区,可以另外建 ...
随机推荐
- 数学思想:为何我们把 x²读作x平方
要弄清楚这个问题,我们得先认识一个人.古希腊大数学家 欧多克索斯,其在整个古代仅次于阿基米德,是一位天文学家.医生.几何学家.立法家和地理学家. 为何我们把 x²读作x平方呢? 古希腊时代,越来越多的 ...
- ImageView缩放选项
ImageView.ScaleType 将图片边界缩放到所在view边界时的缩放选项. Options for scaling the bounds of an image to the bounds ...
- .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
.NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...
- CentOS 7配置LNMP开发环境及配置文件管理
安装并配置MySQL 5.6 从CentOS从7.x开始默认使用MariaDB.MariaDB完全兼容MySQL,包括API和命令行.但是很多时候我们还是会想要安装MySQL,所以不能直接通过yum命 ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Android 问题汇总(持续更新)
Q1:Error:(93, 12) 错误: 需要常量表达式 问题描述:这个问题是在添加一个module到项目中时遇到的,主要原因是因为原来module中的R文件是不会以final形式存在的,但是在mo ...
- js闭包for循环总是只执行最后一个值得解决方法
<style> li{ list-style: none;width:40px;height: 40px;text-align:center;line-height: 40px;curso ...
- 用Swagger生成接口文档
Swagger简介 在系统设计的时候,各个应用之间往往是通过接口进行交互的.因此接口的定义在整个团队中就变得尤为重要.我们可以把接口的规范用接口描述语言进行描述,然后Swagger可以根据我们定义的接 ...
- ABP源码分析二:ABP中配置的注册和初始化
一般来说,ASP.NET Web应用程序的第一个执行的方法是Global.asax下定义的Start方法.执行这个方法前HttpApplication 实例必须存在,也就是说其构造函数的执行必然是完成 ...
- Akka.NET v1.0 已发布,支持Mono
Akka.NET 是Java/Scala 流行框架Akka的一个 .NET 开源移植.可用于构建高并发,分布式和容错事件驱动的应用在 .NET 和 Mono 平台之上.Akka.NET 经过一年多的努 ...