热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux磁盘管理入门指南:MBR分区格式详解与安装步骤

在CentOS7.x环境下,本文详细介绍了MBR分区格式的基本概念及其安装步骤。实验中使用了SAS和SATA硬盘,其中SAS硬盘主要用于企业级应用和服务器,而SATA硬盘则广泛应用于个人计算机和低端服务器。文章通过具体操作示例,帮助读者更好地理解和掌握Linux磁盘管理的基本技能。

实验环境:CentOS 7.x (并假设是可以正常使用)

了解一下:

SAS硬盘:企业级硬盘,服务器专用。

SATA硬盘:普通笔记本上装的那种。

SCSI硬盘与IDE硬盘:现在不怎么常见,快变成古董了。

两个重要概念

拿到一块硬盘存储设备后要做的:添加设备、分区、格式化(创建文件系统)、创建挂载点、修改配置文件。

Linux系统中一切都是文件,硬件设备也是。MBR分区格式

MBR(Master Boot Record)格式——主引导记录

主引导记录(MBR)位于硬盘的0号柱面(Cylinder)、0号磁头(Side)、1号扇区(Sector)。了解柱面、磁头、扇区。其中,1扇区称为主引导扇区(也叫主引导记录MBR),占 512 字节(bytes)。它由三个部分组成:

主引导程序(boot loader,即主引导记录,占 446 bytes);

硬盘分区表DPT(Disk Partition Table,占 64 bytes);

结束标志(占 2 bytes,固定值为 十六进制 55AA )。

注意:

硬盘的第一个扇区最重要,它里面保存用来记录硬盘里面有多少个分区以及每一分区的大小。

硬盘分区表是用来说明磁盘上的分区情况,一共占 64 字节,即 16*4 ,所以最多只有4 个分区信息可以写到第一个扇区中,所以就称这4个分区为4个主分区 ( primary partion ),每个分区占16 bytes。分区表损坏就无法读取硬盘内的数据。

有时候第1扇区里的分区会不够使用,所以会将第1个扇区的其中1个分区作为扩展分区 ( extension partion )。扩展分区相当于一个指针(即只记录分区大小位置信息),用来指向某个有记录信息的分区,所以是不能直接存储数据的。由于操作系统的限制,扩展分区最多只有一个。

然后,可以在扩展分区里创建多个逻辑分区 ( logical partion ),这时才可以存储数据。所以一般分区都是3 个主分区加 1 个扩展分区,然后在扩展分区中创建出多个逻辑分区。

结束标志,若修改 55AA 则会出现问题,比如系统不能启动等问题。

缺点:

因为基于MBR方式的主引导记录只占 446 bytes且每组分区只占 16 bytes,可以记录的信息是有限的,所以会出现主引导程序放不下更多的程序代码、操作系统2.2T以上的磁盘容量以及分区被破坏后无法恢复等问题。于是,就有了GPT分区格式,这里不详细讲这个格式。

分区步骤

虚拟机添加硬盘注意点:

关机;

不选立即分配所有磁盘空间。

MBR分区表使用 fdisk 命令进行分区。

fdisk -l ,该命令查看硬盘信息和所有分区表( partition table )。可以与命令lsblk -ip 结合查看更多硬盘详细信息。

f3a8d8e218fc81c2a3a99d726c20aa15.png

解释说明:

开头是Disk的说明是正在使用的硬盘。

Linux系统中一切都是文件。 /dev 这个目录是用来以文件形式存放任何设备与接口的文件的目录。

/dev 目录中sda设备之所以是a,由系统内核的识别顺序来决定的。/dev/hd[a-d]//hd表示硬盘是IDE类型,且分区从a开始命名。

/dev/sd[a-p]//同理,SCSI/SATA/U盘类型,分区从a开始,到p。

图中圈起来的 * 号表示 sda2是引导分区,电脑是否正常开机就看它。

硬盘分区编号(图中的sd后面的数字)规则:主分区或扩展分区的编号是1~4,还有,举个例子,存在编号为4的主分区并不代表已经有4分区了;逻辑分区必须从编号5开始(不管有没有2、3、4)。

Start和End的值表示这个分区从第几磁柱 (Cylinder) 开始和第几磁柱结束。

ID和system表示的是一个意思。就拿图里的来说,ID是83的话,system是Linux。ID类似于代号。

判断硬盘是否完全划分——上一个分区的End 和 下一个分区的Start是不是一个连续的数字。fdisk -l 设备名称

//查看某一个硬盘。例,查看名为sda的硬盘:fdisk -l /dev/sda1

Step 2:

fdisk 设备名,回车,就进入可以进行分区的模式。输入m就有命令菜单。里面有详尽的相关参数。

970f2401fa5b0d63bf8e8b7796e605b2.png

常用的参数有以下几个:

d//delete 删除一个分区

m//menu 打印帮助信息

n//new 创建一个新的分区

p//print 打印分区信息,与fdisk -l命令相似

q//quit 退出不保存

w//write 保存并退出

t//改变逻辑分区类型

Step 3:

输入 n 创建分区。

e8fa25ed01249f7a4463d36e2fbe4b64.png

注意:

上面演示的是创建扩展分区。

因为硬盘里已经有三个主分区了(Step 1 中查看过),所以partition type 那里只有primary 和 extended,让你选是创建主分区还是逻辑分区,不会出现扩展分区。

如果主分区只有1个或两个,扩展分区已经有一个了,他就会出现:

99384ec88ee204778c2573903fb01e3e.png

如果你还想再多创建一个扩展分区,当你输入e时,会提示:

c8f63772b2fd4d1fbe1e7a0147a37e8e.png

这应该就是所谓的操作系统的限制——扩展分区最多只有一个。

如果已经有4个主分区,然后如果想再创建,那就会提示如果想创建更多,需要把一个主分区变为扩展分区:

4293aa417f07c0ed97758f54734b6da4.png

如果本来已经是三个主分区、一个扩展分区的模式的话,就会自动新建成逻辑分区。

5049f1319e10f45e795930c1b60d8d1c.png

另外,扩展分区删除了,逻辑分区也会被删除!

Step 4:

最后可以输入w保存并退出或输入q不保存然后退出。

关于参数 t

1e955b8c135c4566101d4c91dcac7892.png

是不是有点眼熟?就是上面所讲的 Id 和 System。

f7f6d4b774f783e214e5211e7a837dd6.png

其他:

为什么要分区?一是可以确保数据安全,当一个分区由于某种原因遭到破坏时,不会影响别的分区。二是可以提高数据的读取速度,因为数据集中在某个磁柱范围。

有时候系统并没有自动把分区信息同步给Linux内核,这时可以输入partprobe -s将分区信息同步到内核,最好连续两次执行该命令。参考资料

[1] https://www.linuxprobe.com/chapter-06.html

[2] a1809032425. https://blog.csdn.net/a1809032425/article/details/79692035

[3] 项思凯. https://www.cnblogs.com/xiangsikai/p/10683209.html

[4] 木偶人妮好. www.bilibili.com:av21816136



推荐阅读
  • PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解
    PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解 ... [详细]
  • 如何创建和使用快捷链接:掌握打开链接的快捷方式技巧 ... [详细]
  • Jedis接口分类详解与应用指南
    本文详细解析了Jedis接口的分类及其应用指南,重点介绍了字符串数据类型(String)的接口功能。作为Redis中最基本的数据存储形式,字符串类型支持多种操作,如设置、获取和更新键值对等,适用于广泛的应用场景。 ... [详细]
  • 优化后的标题:PHP分布式高并发秒杀系统设计与实现
    PHPSeckill是一个基于PHP、Lua和Redis构建的高效分布式秒杀系统。该项目利用php_apcu扩展优化性能,实现了高并发环境下的秒杀功能。系统设计充分考虑了分布式架构的可扩展性和稳定性,适用于大规模用户同时访问的场景。项目代码已开源,可在Gitee平台上获取。 ... [详细]
  • 本文提供了 RabbitMQ 3.7 的快速上手指南,详细介绍了环境搭建、生产者和消费者的配置与使用。通过官方教程的指引,读者可以轻松完成初步测试和实践,快速掌握 RabbitMQ 的核心功能和基本操作。 ... [详细]
  • 在Linux系统中设置网络路由转发的方法详解。本文介绍了如何配置服务器以实现外网访问特定端口时,将流量转发到其他外网端口。具体步骤包括配置服务器的内网IP地址(例如192.168.1.1),并调整相关的网络参数,确保路由转发功能正常工作。此外,还提供了详细的命令示例和配置文件修改方法,帮助用户顺利完成设置。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • 本文详细介绍了HDFS的基础知识及其数据读写机制。首先,文章阐述了HDFS的架构,包括其核心组件及其角色和功能。特别地,对NameNode进行了深入解析,指出其主要负责在内存中存储元数据、目录结构以及文件块的映射关系,并通过持久化方案确保数据的可靠性和高可用性。此外,还探讨了DataNode的角色及其在数据存储和读取过程中的关键作用。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • 在探讨 AS3 中的数据深度复制技术时,本文详细介绍了实现数据深度克隆的有效方法。通过对比多种方案,最终确定了一种高效且可靠的实现方式,所有代码均来源于公开资源,确保了方法的实用性和可操作性。 ... [详细]
  • SQL Server 2008 默认使用1433端口进行通信,但有时会误认为是5432端口,后者实际上已被IANA(互联网号码分配机构)指定为PostgreSQL的默认端口。本文详细解析了SQL Server 2008的端口配置,并提供了增强安全性的配置建议,包括更改默认端口、启用防火墙规则和实施严格的访问控制策略,以减少潜在的安全风险。 ... [详细]
author-avatar
郎嬅不绘画_875
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有