Linux学习四:主机规划与磁盘分区(上)
sinye56 2024-11-16 00:28 21 浏览 0 评论
1、各硬件设备在Linux中的文件名
由之前的学习我们知道个人计算机常见的磁盘接口有两种, 分别是SATA与SAS接口,目前的主流是SATA接口。
举例来说,SATA接口的硬盘的文件名即为/dev/sd[a-d],其中, 括号内的字母为a-d当中的任意一个,亦即有/dev/sda, /dev/sdb, /dev/sdc, 及 /dev/sdd这四个文件的意思。
- 正常的物理机大概使用的都是 /dev/sd[a-] 的磁盘文件名
- 至于虚拟机环境底下,为了加速,可能就会使用 /dev/vd[a-p] 这种设备文件名
以下是常用的设备,以及在linux里面的文件名:
2、磁盘格式
我们在计算器概论中,有提及过:磁盘的组成主要有磁盘盘、机械手臂、磁盘读取头与主轴马达所组成, 而数据的写入其实是在磁盘盘上面。磁盘盘上面又可细分出扇区(Sector)与磁道(Track)两种单位, 其中扇区的物理量设计有两种大小,分别是 512bytes 与 4Kbytes。假设磁盘只有一个磁盘盘,那么磁盘盘有点像底下这样:
那么是否每个扇区都一样重要呢?其实整个磁盘的第一个扇区特别的重要,因为他记录了整颗磁盘的重要信息!
早期磁盘第一个扇区里面含有的重要信息我们称为MBR (Master Boot Record) 格式,但是由于近年来磁盘的容量不断扩大,造成读写上的一些困扰, 甚至有些大于 2TB 以上的磁盘分区已经让某些操作系统无法存取。因此后来又多了一个新的磁盘分区格式,称为 GPT (GUID partition table)! 这两种分区格式与限制不太相同啦! 那么分区表又是啥?其实你刚刚拿到的整个硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段才能够再制作成为你想要的家具!如果没有进行切割,那么原木就不能被有效地使用。 同样的道理,你必须要针对你的硬盘进行分区,这样硬盘才可以被你使用的!
2.1 MBR(MS-DOS) 格式
在前一小节的图示中, 我们有看到【开始与结束磁道】吧?而通常磁盘可能有多个磁盘盘,所有磁盘盘的同一个磁道我们称为磁柱 (Cylinder), 通常那是文件系统的最小单位,也就是分区的最小单位啦!
早期的 Linux 系统为了兼容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master Boot Record, 主引导记录) 的方式来处理启动引导程序与分区表!而启动引导程序记录区与分区表则通通放在磁盘的第一个扇区, 这个扇区通常是 512bytes 的大小 (旧的磁盘扇区都是 512bytes),所以说,第一个扇区 512bytes 会有这两个数据:
- 主引导记录(Master Boot Record, MBR):可以安装启动引导程序的地方,有446 bytes
- 分区表(partition table):记录整块硬盘分区的状态,有64 bytes
由于分区表所在区块仅有64 bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的起始与结束的磁柱号码
若将硬盘以长条形来看,然后将磁柱以柱形图来看,那么那64 bytes的记录区段有点像底下的图示:
- P1:/dev/sda1
- P2:/dev/sda2
- P3:/dev/sda3
- P4:/dev/sda4
上图中我们假设硬盘只有400个磁柱,共分为四个分区,第四个分区所在为第301到400号磁柱的范围。 当你的操作系统为Windows时,那么第一到第四个分区的代号应该就是C, D, E, F。当你有资料要写入F区时, 你的数据会被写入这个磁盘的301~400号磁柱之间的意思。
由于分区表就只有64 bytes而已,最多只能容纳四组分区的记录, 这四个分区的记录被称为主要(Primary)或扩展(Extended)分区。
根据上面的图示与说明,我们可以得到几个重点信息:
- 其实所谓的【分区】只是针对那个64 bytes的分区表进行设定而已!
- 硬盘默认的分区表仅能写入四组分区信息
- 这四组分区信息我们称为主要(Primary)或扩展(Extended)分区
- 分区的最小单位通常为磁柱(cylinder)
- 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分区进行数据的处理
为啥要分区?
基本上你可以这样思考分区的角度:
- 数据的安全性: 因为每个分区的数据是分开的!所以,当你需要将某个分区的数据整理时,例如你要将计算机中Windows的C盘重新安装一次系统时, 可以将其他重要数据移动到其他分区,例如将邮件、桌面数据移动到D盘去,那么C盘重装系统并不会影响到D盘! 所以善用分区,可以让你的数据更安全。
- 系统的效能考虑: 由于分区将数据集中在某个磁柱的区段,例如上图当中第一个分区位于磁柱号码1~100号,如此一来当有数据要读取自该分区时, 磁盘只会搜寻前面1~100的磁柱范围,由于数据集中了,将有助于提高数据读取的速度与效能!
既然分区表只有记录四组数据的空间,那么是否代表我一个硬盘最多只能分区出四个分区?当然不是啦!有经验的朋友都知道, 你可以将一个硬盘分区成十个以上的分区的!那又是如何做到的呢?在Windows/Linux系统中, 我们是通过刚刚谈到的扩展分区(Extended)的方式来处理的啦!
扩展分区
扩展分区的意思是: 既然第一个扇区所在的分区表只能记录四组数据, 那我可否利用额外的扇区来记录更多的分区信息?实际上图示有点像底下这样:
实际上扩展分区并不是只占一个区块,而是会分布在每个分区的最前面几个扇区来记载分区信息的!只是为了方便读者记忆,
逻辑分区
在上图当中,我们知道硬盘的四个分区记录区仅使用到两个,P1为主要分区,而P2则为扩展分区。请注意, 扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。 然后我们可以通过扩展分区所指向的那个区块继续作分区的记录。
如上图右下方那个区块有继续分区出5个分区, 这5个由扩展分区继续切出来的分区,就被称为逻辑分区(logical partition)。 同时注意一下,由于逻辑分区槽是由扩展分区继续分区出来的,所以他可以使用的磁柱范围就是扩展分区所设定的范围喔! 也就是图中的101~400啦!
同样的,上述的分区槽在Linux系统中的装置文件名分别如下:
- P1:/dev/sda1
- P2:/dev/sda2
- L1:/dev/sda5
- L2:/dev/sda6
- L3:/dev/sda7
- L4:/dev/sda8
- L5:/dev/sda9
仔细看看,怎么设备文件名没有/dev/sda3与/dev/sda4呢?因为前面四个号码都是保留给Primary或Extended用了, 所以逻辑分区的设备名称号码就由5号开始了!这在 MBR 方式的分区表中是个很重要的特性,不能忘记!
MBR 主要分区、扩展分区与逻辑分区的特性我们作个简单的定义:
- 主要分区与扩展分区最多可以有四个(硬盘的限制) ;
- 扩展分区最多只能有一个(操作系统的限制) ;
- 逻辑分区是由扩展分区继续划分出来的分区;
- 能够被格式化后,作为数据存取的分区为主要分区与逻辑分区。扩展分区无法格式化;
- 逻辑分区的数量依操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制;
MBR 内的存放启动引导程序的区块仅 446bytes,无法容纳较多的程序代码。 这个 2.2TB 限制的现象在早期并不会很严重。但是,近年来硬盘厂商动不对推出的磁盘容量就高达好几个 TB 的容量!目前 (2015) 单一磁盘最高容量甚至高达 8TB 了! 如果磁盘阵列的系统,使用 MBR 的话...那得要 2TB/2TB 地割下去,虽然 Linux kernel 现在已经可以透过某些机制让磁盘分区高过 63 个以上,但是这样就得要割出将几十个分区~ 真要命... 为了解决这个问题,所以后来就有 GPT 这个磁盘分区的格式出现了!这个在我们下章介绍!!
我是小钱嵌入式[呲牙],会不断地和大家分享嵌入式相关的内容,智能化时代的到来,促就了未来一定是个全民编程的时代 ,如果你觉得我的分享对你有所帮助[比心],请不要吝惜你的点赞和关注,兄弟姐妹们的点赞和关注[谢谢],就是我分享的最大的动力[谢谢],谢谢!,欢迎在评论区和我一起讨论。
相关推荐
- 程序员:JDK的安装与配置(完整版)_jdk的安装方法
-
对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...
- Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置
-
一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...
- 麒麟系统安装JAVA JDK教程_麒麟系统配置jdk
-
检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...
- 学习笔记-Linux JDK - 安装&配置
-
前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...
- Linux新手入门系列:Linux下jdk安装配置
-
本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...
- 测试员必备:Linux下安装JDK 1.8你必须知道的那些事
-
1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...
- Linux 下安装JDK17_linux 安装jdk1.8 yum
-
一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...
- 在Ubuntu系统中安装JDK 17并配置环境变量教程
-
在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...
- 如何在 Linux 上安装 Java_linux安装java的步骤
-
在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...
- Windows和Linux环境下的JDK安装教程
-
JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...
- linux安装jdk_linux安装jdk软连接
-
JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...
- linux安装jdk,全局配置,不同用户不同jdk
-
jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...
- 运维大神教你在linux下安装jdk8_linux安装jdk1.7
-
1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...
- window和linux安装JDK1.8_linux 安装jdk1.8.tar
-
Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...
- 最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?
-
默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- linux进程通信 (63)