精通Linux的磁盘分区:从理论到实战

news2024/11/13 9:42:25

前言

在这篇技术文章中,我详细介绍了Linux磁盘分区的理论知识,并结合实际示例演示了如何在CentOS 7系统上使用fdisk工具进行磁盘分区和删除操作。无论您是新手还是有一定经验的用户,本文都将帮助您轻松掌握磁盘分区的关键概念和操作技巧。如果您想深入了解如何有效管理您的磁盘空间,并提升系统性能,不容错过这篇内容丰富、实用性强的指南!

磁盘分区前必知

磁盘分区是指将硬盘的整体存储空间划分成多个独立的区域,分别用来安装操作系统、安装应用程序以及存储数据文件等。这些独立的区域就是分区,它们构成了硬盘上的逻辑单元,例如我们常见的C盘、D盘、E盘等。

分区的主要目的是为了更好地管理和使用硬盘空间。通过分区,我们可以将不同类型的文件或程序存放在不同的分区中,从而方便管理和维护。同时,分区还可以提高系统的效率和安全性,限制用户使用的磁盘空间,避免数据丢失或损坏的风险。

在分区过程中,我们通常会考虑一些因素,如每个分区的大小、所使用的文件系统类型等。对于某些操作系统而言,硬盘必须分区后才能使用,否则不能被识别。因此,在安装操作系统或添加新硬盘时,通常需要进行磁盘分区。

完成分区后,还需要对分区进行格式化,并挂载到系统中,才能正常使用。格式化的过程是为分区创建文件系统,而挂载则是将分区与系统中的某个目录关联起来,使得用户可以通过该目录访问分区中的数据。

磁盘分区意味着什么

在安装Linux系统的过程,一般也会有磁盘分区的步骤。这种情况,按照提示选择自动分区即可。

这里需要注意的是,如果是新增硬盘或者对已分区的磁盘重新分区,这些操作将会对现有的分区和存储结构产生直接影响:

  • 数据丢失:重新分区过程中,如果操作不当或没有正确备份数据,可能会导致现有分区中的数据丢失。因此,在重新分区之前,务必确保已经备份了所有重要数据。
  • 分区结构改变:重新分区会改变磁盘上的分区布局。这可能包括删除现有的分区、创建新的分区、调整分区的大小或改变分区的类型等。
  • 文件系统破坏:重新分区可能会导致现有分区上的文件系统被破坏。这意味着即使分区本身得以保留,存储在其中的文件也可能无法访问或恢复。
  • 系统引导问题:如果重新分区涉及到修改包含系统引导信息的分区(如/boot分区),可能会导致系统无法正常启动。因此,在重新分区时需要特别小心,确保不要破坏关键的引导扇区。
  • 重新安装或配置软件:重新分区后,可能需要重新安装或配置一些软件,特别是那些依赖于特定分区或文件路径的软件。

因此,在重新安装Linux系统或进行其他重大更改之前,如果磁盘已经分好区且包含重要数据,强烈建议谨慎考虑重新分区的必要性。如果确实需要进行重新分区,务必确保已经充分备份了数据,并熟悉分区操作的风险和步骤。

主分区和扩展分区

主分区:

  • 也被称为引导分区,它是磁盘上的基本分区类型。
  • 一块磁盘最多可以有4个主分区。
  • 主分区是独立的,每个主分区都可以被格式化为一个独立的文件系统,并可以挂载到Linux系统的目录树中。
  • 在很多情况下,主分区中的一个是“引导分区”,即存放操作系统引导加载程序(如GRUB)的分区,它负责启动整个系统。

扩展分区:

  • 当磁盘上需要创建超过4个分区时,就需要使用扩展分区。扩展分区会占用一个主分区的位置,因此在一个物理硬盘上,如果有扩展分区,则最多只能有3个主分区。
  • 扩展分区本身并不能直接使用,它必须被进一步划分为逻辑分区才能使用。换句话说,扩展分区是一个容器,用于容纳逻辑分区。
  • 逻辑分区是在扩展分区内部创建的,可以有任意多个。每个逻辑分区也可以被格式化为一个独立的文件系统,并挂载到目录树中。

磁盘分区的场景

  • 新安装Linux系统时:在安装新的Linux系统时,通常需要对硬盘进行分区,以便为根目录(/)、交换空间(swap)、以及其他可能的挂载点(如/home、/var等)分配空间。这时,可以使用fdisk工具来创建和管理这些分区。
  • 扩展磁盘空间:当现有的磁盘空间不足以满足系统或应用程序的需求时,可能需要添加新的硬盘或扩展现有硬盘的容量。在这些情况下,可以使用fdisk来重新分区硬盘,以便更好地利用新增的空间。
  • 调整分区布局:有时,可能需要调整现有的分区布局,例如,将某个分区的大小增加或减少,或者创建一个新的分区来存储特定的数据。fdisk允许用户查看当前的分区布局,并对其进行修改。
  • 转换分区类型:在某些情况下,可能需要将分区的类型从一种文件系统转换为另一种文件系统。虽然这通常涉及到更多的步骤,包括格式化分区和重新挂载,但使用fdisk查看和修改分区类型是这一过程的一部分。
  • 创建特殊类型的分区:对于某些高级用途,如创建RAID阵列或LVM逻辑卷,可能需要使用fdisk来创建特定类型的分区。这些分区类型允许更复杂的存储配置和更高的灵活性。

需要注意的是,在使用fdisk进行分区操作时,一定要谨慎,并确保已经备份了重要的数据。错误的分区操作可能导致数据丢失或系统不稳定。此外,对于在生产环境中运行的服务器,最好在维护窗口或计划停机期间进行分区操作,以避免对业务造成影响。

磁盘分区的工具

fdisk是一个来自IBM的老牌分区工具。它兼容DOS类型的分区表、BSD或SUN类型的磁盘列表,主要用于创建和维护分区表。几乎所有的Linux发行版都装有fdisk,甚至在Linux的rescue模式下依然能够使用。但需要注意的是,fdisk是一个基于MBR的分区工具,所以如果需要使用GPT分区,则无法使用fdisk进行分区。

磁盘分区的操作步骤

准备一块虚拟磁盘

新增一块虚拟磁盘,后面对这块新增的虚拟磁盘进行查询、分区等操作;

查看可用磁盘设备

系统中已连接的磁盘及其相关信息

fdisk -l

从上面输出信息中,可以看得出来:

  • 磁盘 /dev/sda:
  1. 大小:21.5 GB,共有 41943040 个扇区
  2. 单位:每扇区 512 字节
  3. 标签类型:dos(MBR)
  4. 磁盘标识符:0x000af641
  5. 分区情况:
  6. /dev/sda1:启动分区(Boot),从第 2048 扇区到 2099199 扇区,大小为 1 GB,文件系统为 Linux(ID 83)
  7. /dev/sda2:从第 2099200 扇区到 41943039 扇区,大小为 19 GB,文件系统为 Linux LVM(ID 8e)
  • 磁盘 /dev/sdb:
  1. 大小:5368 MB,共有 10485760 个扇区
  2. 单位:每扇区 512 字节
  3. 标签类型:dos(MBR)
  4. 磁盘标识符:0x66692fd4
  • 磁盘 /dev/mapper/centos-root:
  1. 大小:18.2 GB,共有 35643392 个扇区
  2. 单位:每扇区 512 字节
  • 磁盘 /dev/mapper/centos-swap:
  1. 大小:2147 MB,共有 4194304 个扇区
  2. 单位:每扇区 512 字节

其中/dev/mapper/centos-root、/dev/mapper/centos-swap是建立在物理磁盘设备/dev/sda上的逻辑卷

创建扩展分区

执行下面的命令,开始运行分区工具fdisk,对新增的磁盘进行分区

sudo fdisk /dev/sdb

这会运行一个交互式的命令行界面:

输入m来看一下fdisk相关的操作选项

操作选项参数解释:

  • a:切换引导标志
  • b:编辑 BSD 磁盘标签
  • c:切换 DOS 兼容性标志
  • d:删除一个分区
  • g:创建新的空 GPT 分区表
  • G:创建一个 IRIX(SGI)分区表
  • l:列出已知的分区类型
  • m:显示此菜单
  • n:添加一个新分区
  • o:创建新的空 DOS 分区表
  • p:打印分区表
  • q:不保存更改退出
  • s:创建新的空 Sun 磁盘标签
  • t:更改分区的系统 ID
  • u:更改显示/输入单位
  • v:验证分区表
  • w:将表写入磁盘并退出
  • x:额外功能(仅供专家使用)

输入n,创建一个新分区,这个时候会有两个选项p和e,可以根据提示输入相应的选项字母即可完成分区类型;p:主分区(括号内的数字表示 0 个主分区,0 个扩展分区,4 个空闲分区); e:扩展分区; 如果没有手动选择,默认主分区(默认为 p)。

如果选择创建主分区,分区完成后,可以直接挂载使用,但是有限制:在一块磁盘中最多可创建4个主分区;

如果选择创建扩展分区,则创建扩展分区完成后,还要在扩展分区中,创建逻辑分区,然后才能挂载使用;

这里我就选择创建扩展分区了。

输入分区号:直接按enter键,选择默认的即可;

输入起始扇区:直接按enter键,选择默认的即可;

输入结束扇区:这里可以根据需要来设置。

这里我准备的是一块大小是5G的虚拟磁盘,从fdisk -l命令的输出的磁盘信息中可以看出磁盘/dev/sdb包含有10485760个扇区,每个扇区是512字节。后面我准备创建一个1G的扩展分区,然后在这个扩展分区中,再创建2个512M的逻辑分区,然后分别挂载到opt目录下的fanfu-1、fanfu-2目录上。那么这里可以计算出扩展分区的结束扇区位置是:1*1024*1024*1024/512=2097152

输入w,保存分区信息,完成扩展分区的创建

输入fdisk - l,查看创建分区是否已经正确地被创建;

从上面的输出信息中,可以看到起始扇区是2048,结束扇区是2097152的扩展分区已经创建成功。

创建逻辑分区

输入fdisk /dev/sdb,进入磁盘分区管理的交互界面,然后输入n开始创建逻辑分区:

从输出信息来看:

  • p 表示主分区(primary),0 个主分区已经被使用,1 个扩展分区已经被使用,还有 3 个空闲的主分区可以使用。
  • l 表示逻辑分区(logical),从编号 5 开始进行编号。

输入l:开始创建逻辑分区

输入起始扇区:选择默认即可;

输入结束扇区:512M的结束扇区位置计算:512*1024*1024/512=1048576,实际上这么计算确实有点麻烦,也可输入+512M;

输入n,再创建另一个逻辑分区,创建过程和上面的逻辑分区一样,

输入w:保存逻辑分区信息,完成两个逻辑分区的创建

输入fdisk - l,查看创建分区是否已经正确地被创建;

从输出信息来看,扩展分区/dev/sdb1,两个逻辑分区:/dev/sdb5和/dev/sdb6,已经被正确创建。

需要注意的是,完成分区后,还不能直接使用。另外还需要对相关分区进行格式化或创建文件系统,然后挂载到操作系统中的目录上,才能正常使用,这将在下一篇文章中将会和小伙伴分享。

删除磁盘分区

输入fdisk /dev/sdb,进入磁盘分区管理的交互界面,然后输入d,开始删除磁盘分区

输入分区号后,按Enter键

输入w,保存分区信息,完成分区的删除操作;

输入fdisk - l,查看创建分区是否已经被删除;

从输出信息来看,逻辑分区:/dev/sdb6,已经被删除。

写在最后

如果你正在寻找一篇关于Linux磁盘分区的技术文章,那么你来对地方了!我在这篇文章中详细介绍了磁盘分区的理论知识,并分享了如何使用fdisk工具在CentOS 7系统上进行磁盘分区和删除操作的实际示例。

如果你觉得这篇文章对你有所帮助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:vector类

vector的介绍及使用 1. vector 是表示可变大小数组的序列容器。 2. 就像数组一样, vector 也采用的连续存储空间来存储元素。也就是意味着可以采用下标对 vector 的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的…

Linux信号灯

概念:是不同进程间或一个给定进程内部不同线程间同步的机制。类似我们的 PV操作概念: 生产者和消费者场景 P(S) 含义如下:if (信号量的值大于0) { 申请资源的任务继续运行;信号量的值减一;} else { 申…

同态滤波算法详解

同态滤波是一种用于增强图像的方法,特别适用于去除图像中的照明不均和阴影。该算法基于照射反射模型,将图像分解为两个分量:照射分量(illumination component)和反射分量(reflection component)…

腾讯云服务器地域是什么?地域选择看着一篇就够了

腾讯云服务器地域怎么选择?不同地域之间有什么区别?腾讯云哪个地域好?地域选择遵循就近原则,访客距离地域越近网络延迟越低,速度越快。腾讯云百科txybk.com告诉大家关于地域的选择还有很多因素,地域节点选择…

如何在Windows系统部署Plex影音站点并实现公网访问内网媒体库

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

NO5 蓝桥杯实践之矩阵键盘的使用(或许是一篇求助帖...)

1 任务 2 思路 视频中老师的思路写的代码过长,所以我想了个自己的思路,但是没完全跑出来,求大神指教!!!! 我的思路是首先将矩阵键盘的行和列对应的端口引脚分别存储在类似数组,然后…

【Python】快捷找到最大最小 N 个元素

heapq 简单数据结构取出最大最小N个元素复杂数据结构中取出最大最小N个元素代码解析:lambda Python 中有 heapq 模块可以快捷找到数组中最大最小的 N 个元素; heapq.nlargest(num, arr) # 从arr数组中取出最大num个元素 heapq.nsmallest(num, arr) # …

matplotlib-柱状图

日期:2024.03.14 内容:将matplotlib的常用方法做一个记录,方便后续查找。 # from matplotlib import pyplot as plt# 设置画布大小 plt.figure(figsize(20,8),dpi 300)# 全局设置中文字体 plt.rcParams[font.sans-serif] [Simhei]# 绘制三…

2024年1月粮油调味行业分析(TOP品牌/店铺/商品销售数据分析)

鲸参谋监测的某东1月份粮油调味市场销售数据已出炉! 根据鲸参谋电商数据分析平台显示,今年1月份,某东平台上粮油调味品的销量约6200万件,环比上个月增长45%,同比去年下滑15%;销售额约25亿元,环…

宝妈在家带孩子还是出去工作?足不出户,两者如何兼顾?

我是电商珠珠 很多女性生完孩子之后,就在家当家庭主妇带孩子。部分人舍不得吃穿,把从老公那里要来的钱都给孩子买了东西。自己也想过要出去工作,但是空窗期太久,觉得自己什么都不会,没有企业会要。 前段时间有一个硕…

CUDA下载安装与配置

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 CUDA是什么? CUDA(Compute Unified Device Architecture)是由NVIDIA推出的并行计算平台和编程…

sqllab第十二关通关笔记

知识点: 一般字符型注入分类 单引号闭合双引号闭合这是一个双引号闭合 看界面又是一个输入框的注入;通过admin admin进行登录发现页面还是有回显 直接使用万能密码尝试 构造payload:usernameadminor11 没有任何反应;可能是没加注释符的关闭 构造user…

npm yarn 一起使用报错

项目记录,具有独特性,仅供参考 项目好好的运行,前一天装个测试工具包, 突然就不行了,卸载重装也不行,所有的项目都安装失败,新起一个项目也不行,有时候某个单独安装一个包可以&…

C# 连接neo4j数据库,包括非默认的neo4j默认库

官方文档没找见,自己在源码里面找到的 private string _dbHost "bolt://localhost:7687"; private string _dbUser "neo4j"; private string _dbPassword "******"; private IDriver? _driver;public CQLOperation(string _data…

采购代购系统独立站,接口采集商品上货

采购代购系统独立站的建设与商品上货接口的采集是一个综合性的项目,涉及前端开发、后端开发、数据库设计以及API接口的对接等多个环节。以下是一个大致的步骤和考虑因素: 一、系统规划与需求分析 明确业务需求:确定代购系统的核心功能&…

有没有图像转3D模型的软件?

云端地球是一款免费的在线实景三维建模软件,不需要复杂的技巧,只要需要手机,多拍几张照片,就可以得到完整的三维模型! 无论是大场景倾斜摄影测量还是小场景、小物体建模,都可以通过云端地球将二维数据向三…

Windows系统下载安装Emby结合内网穿透实现公网访问本地影音网站

文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…

Python实现BOA蝴蝶优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

*地宫取宝c++

题目 输入样例1: 2 2 2 1 2 2 1输出样例1: 2输入样例2: 2 3 2 1 2 3 2 1 5输出样例2: 14 思路 题目说从入口开始,只能向右或向下行走到达右下角,类似“摘花生”这道题的模型。题目又说只有当格子里的宝…

Linux编程4.5 网络编程-套接字(Socket)

1、简介 Socket(套接字)是一种通讯机制,它包含一整套的调用接口和数据结构的定义,它给应用进程提供了使用如TCP/UDP等网络协议进行网络通讯的手段。 Linux中的网络编程通过Socket接口实现,Socket既是一种特殊的IO,提供对应的文件…