前言
在这篇技术文章中,我详细介绍了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:
- 大小:21.5 GB,共有 41943040 个扇区
- 单位:每扇区 512 字节
- 标签类型:dos(MBR)
- 磁盘标识符:0x000af641
- 分区情况:
- /dev/sda1:启动分区(Boot),从第 2048 扇区到 2099199 扇区,大小为 1 GB,文件系统为 Linux(ID 83)
- /dev/sda2:从第 2099200 扇区到 41943039 扇区,大小为 19 GB,文件系统为 Linux LVM(ID 8e)
- 磁盘 /dev/sdb:
- 大小:5368 MB,共有 10485760 个扇区
- 单位:每扇区 512 字节
- 标签类型:dos(MBR)
- 磁盘标识符:0x66692fd4
- 磁盘 /dev/mapper/centos-root:
- 大小:18.2 GB,共有 35643392 个扇区
- 单位:每扇区 512 字节
- 磁盘 /dev/mapper/centos-swap:
- 大小:2147 MB,共有 4194304 个扇区
- 单位:每扇区 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系统上进行磁盘分区和删除操作的实际示例。
如果你觉得这篇文章对你有所帮助,不妨点击点赞按钮,让更多的人看到这篇优质的技术分享。同时,别忘了将这篇文章收藏起来,以备日后查阅。这样,你就能随时回顾和复习文章中的重要知识点,确保你的技术水平始终保持在最高水平。