Linux下磁盘分区类型及文件系统扩容

本篇文章基础知识点较多,文章偏长。建议收藏~

之前介绍过一篇文章 重新构建KVM虚拟机基础镜像,当中有个待优化的点。

Centos 官方的镜像中默认的系统盘(/dev/vda)的大小是8G空间

但是实际使用时,8G的系统盘肯定不满足需求。这个时候我们就需要扩容系统盘大小 或者说是扩容根目录大小

使用qemu-img info 查看镜像文件信息

[root@chedishu-kvm images]# qemu-img info centos-v1.qcow2
image: centos-v1.qcow2
file format: qcow2
virtual size: 8.0G (8589934592 bytes) # 这里看到磁盘大小只有8G
disk size: 861M
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false

扩容qcow镜像大小

[root@chedishu-kvm images]# qemu-img resize centos-v1.qcow2 +32G
Image resized.
[root@chedishu-kvm images]# qemu-img info centos-v1.qcow2
image: centos-v1.qcow2
file format: qcow2
virtual size: 40G (42949672960 bytes)
disk size: 861M
cluster_size: 65536
Format specific information:compat: 1.1lazy refcounts: false

然后使用该镜像创建虚拟机,然后连接到虚拟机查看

[root@localhost ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  894M     0  894M   0% /dev
tmpfs          tmpfs     919M     0  919M   0% /dev/shm
tmpfs          tmpfs     919M   17M  903M   2% /run
tmpfs          tmpfs     919M     0  919M   0% /sys/fs/cgroup
/dev/vda1      xfs       8.0G  865M  7.2G  11% /
tmpfs          tmpfs     184M     0  184M   0% /run/user/0
[root@localhost ~]# fdisk -l /dev/vdaDisk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00095067Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    16777215     8387584   83  Linux
[root@localhost ~]#

这里看到磁盘扩容到了40GB, 但是实际的分区/dev/vda1 大小还是8G,且这里的分区是挂载到系统根目录 下的

扩展XFS格式的根目录大小

实际扩容之前有个点,需要大家特别注意📢

如果单个磁盘有多个连续分区的情况,仅能扩容最后一个分区

什么意思呢,比如 数据盘 /dev/vdb 存在3个分区,分别是 /dev/vdb1、/dev/vdb2、/dev/vdb3,那么扩容的时候,只能扩容最后一个分区/dev/vdb3


另外确保当前的系统已经安装了growpart工具

yum install -y cloud-utils-growpart

如果是GPT格式的分区,同时也要安装 sgdisk 工具

yum install -y sgdisk

使用 growpart 扩容 分区大小 (MBR分区、GPT分区都是使用growpart),这里系统盘只有一个分区,所以直接执行 growpart /dev/vda 1

[root@localhost ~]# growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=16775168 end=16777216 new: size=83883999 end=83886047

使用 fdisk -l 再看查看磁盘及分区情况

... ...Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux

看到 End 增加,而且Blocks 也增加了


使用 xfs_growfs 扩容 文件系统大小, 因为我们是扩容到当前的最大,所以 xfs_growfs 不用添加额外参数

[root@localhost ~]# xfs_growfs /dev/vda1
... ...data blocks changed from 2096896 to 10485499

如果输出有data blocks changed from ...就代表扩容文件系统成功。

[root@localhost ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
... ...
/dev/vda1      xfs        40G  867M   40G   3% /
tmpfs          tmpfs     184M     0  184M   0% /run/user/0

如果是ext4 文件系统,那么使用

resize2fs /dev/vdb1

知识扩展

关于磁盘扩容其实围绕这两个内容,分区文件系统,至于这两个在Linux的概念和含义大家可以自行Google了解下。

这里要说的是不同的分区类型下如何扩容对应格式的文件系统

一、目前常见的分区格式有

  • MBR 类型分区,传统的分区方案,最多支持 4 个主分区或 3 个主分区和 1 个扩展分区。且单盘容量上限为2TB左右。

  • GPT 类型分区,较新的分区方案,支持比 MBR 更多的分区,并且没有分区数量限制。

一般使用 fdisk -l 命令的结果中 Disk label type 字段来判断分区类型

  • dos表示MBR分区

  • gpt表示GPT分区

如果没有 Disk label type字段,可以看System字段的值

  • Linux表示MBR分区

  • GPT表示GPT分


二、如何创建不同类型的分区

1、创建GPT分区

1.1、安装 parted 工具

yum install -y parted

1.2、对磁盘进行分区

一般系统盘都是已经分区好的,额外添加数据盘的时候,才会手动分区

# /dev/vdb 是数据盘设备名称,根据实际情况而定
# 使用 parted 进入交互模式
parted /dev/vdb# 在交互模式下输入
mklabel gpt# 划分一个主分区,并设置开始和结束的位置(就是定义分区的容量大小)
# 如下定义一个主分区名称是primary,大小是磁盘的总大小
mkpart primary 1 100%# 检查扇区对齐情况 (aligned表示对齐)
align-check optimal 1# 可以通过print查看做好的分区
# 就会看到有个 /dev/vdb1 分区, 或者在推出交互模式之后,使用`fdisk -l /dev/vdb` 查看
print# 退出交互
quit

1.3、系统重读分区表

partprobe

2、创建MBR分区

MBR分区主要是借助于fdisk命令完成,系统默认已经安装

# 进入 交互模式 (以 /dev/vdc为例)
fdisk /dev/vdc# 按字母 p并回车,查看数据盘的分区情况
p# 按字母 n并回车,开始新建分区
# 这里会显示 p/e 两个分区类型
# p表示主分区 / e表示扩展分区
n# 按字母 p并回车 (这个p是在n的基础上,表示选择创建主分区)
# 然后提示让选择 1到4 主分区编号
p# 因为是新的磁盘,第一次做分区,所以选择 1 回车
1# 接下来根据提示 `First Sector/Last Sector 来选择 分区可用空间的起始扇区编号和结束扇区编号
# 如果是想当前磁盘只分一个区给全部大小,这里两个直接回车选择默认值就行# 再次按字母 p并回车查看分区结果
p# 输入字符w回车,保存分区信息
w

三、常见文件系统类型及其创建

Linxu 系统默认安装了 e2fsprogs 工具包

1、创建 ext4 文件系统

mkfs -t ext4 /dev/vdb1

2、创建 xfs 文件系统

mkfs -t xfs /dev/vdb1

配置/etc/fstab文件并挂载分区

# 先备份 /etc/fstab
cp /etc/fstab /etc/fstab.20240311# 写入新分区到该文件,并指定挂载目录
# 注意 文件系统类型 ext4/xfs
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab# 进行实际挂载
mount -a# 查看挂载情况
df -hT

OK, 今天的知识就分享到这里。

如果你觉得有所收获,欢迎关注"菩提老鹰"进行点赞和喜欢哦~

一起交流,分享知识,快乐生活,我是老鹰,我们下一期见~

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

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

相关文章

做好外贸网站SEO优化,拓展海外市场

随着全球贸易的发展和互联网的普及,越来越多的外贸企业将目光投向了网络,希望通过建立网站来拓展海外市场。然而,在竞争激烈的外贸市场中,要让自己的网站脱颖而出,吸引更多的目标客户,就需要进行有效的SEO优…

openGauss学习笔记-246 openGauss性能调优-SQL调优-经验总结:SQL语句改写规则

文章目录 openGauss学习笔记-246 openGauss性能调优-SQL调优-经验总结:SQL语句改写规则246.1 使用union all代替union246.2 join列增加非空过滤条件246.3 not in转not exists246.4 选择hashagg246.5 尝试将函数替换为case语句246.6 避免对索引使用函数或表达式运算2…

PyTorch学习笔记之基础函数篇(十三)

文章目录 7.7 torch.ceil() 函数7.8 torch.floor() 函数7.9 torch.clamp() 函数7.10 torch.neg() 函数7.11 torch.reciprocal() 函数7.12 torch.rsqrt() 函数7.13 torch.sqrt() 函数 7.7 torch.ceil() 函数 在PyTorch中,torch.ceil 函数用于对张量(tens…

面试算法-50-二叉树的最大深度

题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3 解 class Solution {public int maxDepth(TreeNo…

《算法设计与分析第二版》100行 C语言实现 广度度优先算法 BFS——最短距离

抄录自课本P157页。 #include <stdio.h> #define MAXQ 100 // 队列大小 #define MAxN 10 // 最大迷宫大小 int n8; // 迷宫大小 char Maze [MAxN][MAxN] {{O,X,X,X,X,X,X,X,},{O,O,O,X,O,X,O,X,},{X,X,O,O,O,X,O,X,},{X,X,O,X,O,X,X,X,},…

Git ignore: 忽略与清除

一、vs、vc #.svn .clang-format .gitignore Src/[Dd]ebug/ Src/[Rr]elease/ .vs .vs/* ​ # other file *.txt *.log *LOG/ *log/ ​ # Compiled Object files *.slo *.lo #*.o *.obj ​ # Precompiled Headers *.gch *.pch ​ # Compiled Dynamic libraries #*.so *.dylib #…

LightDB24.1 Sequence支持设置minvalue小于INT64_MIN

背景介绍 Oracle数据库支持设置sequence的minvalue为-1000000000000000000000000000&#xff0c;在用户迁移到LightDB时&#xff0c;sequence设置minvalue为-1000000000000000000000000000会报错。为了兼容Oracle数据库的使用习惯&#xff0c;在LightDB24.1版本中&#xff0c;…

HDFS概述及常用shell操作

HDFS 一、HDFS概述1.1 HDFS适用场景1.2 HDFS优缺点1.3 HDFS文件块大小 二、HDFS的shell操作2.1 上传2.2 下载2.3 HDFS直接操作 一、HDFS概述 1.1 HDFS适用场景 因为HDFS里所有的文件都是维护在磁盘里的 在磁盘中对文件的历史内容进行修改 效率极其低(但是追加可以) 1.2 HDF…

Linux电源管理——系统Suspend/Resume流程

本篇文章主要是自己的学习笔记&#xff0c;主要内容是分析linux系统中设备的Suspend和Resume流程&#xff0c;用到的内核版本为 linux-4.14。 目录 1、Linux 内核的Suspend方法 2、__device_suspend 函数 3、pm_op 函数 4、suspend_enter 函数 5、resume流程 1、Linux 内…

dockerfile更改docker镜像源

方法一&#xff1a; ## 更换源 RUN sed -i s/deb.debian.org//mirrors.aliyun.com/g /etc/apt/sources.list \ && apt-get update 方法二&#xff1a; RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/…

js中副作用的消除还解决了并行计算带来的竞争问题,具体是如何解决的

在JavaScript中&#xff0c;副作用是指对外部环境产生的可观察的变化&#xff0c;例如修改全局变量、修改DOM元素等。副作用的存在可能导致代码的可维护性和可测试性下降&#xff0c;并且在并行计算中可能引发竞争问题。 不纯的函数有可能访问同一块资源&#xff0c;如果先后调…

走近 AI Infra 架构师:在高速飞驰的大模型“赛车”上“换轮子”的人

如果把大模型训练比作 F1 比赛&#xff0c;长凡所在的团队就是造车的人&#xff0c;也是在比赛现场给赛车换轮子的人。1% 的训练提速&#xff0c;或者几秒之差的故障恢复时间&#xff0c;累积起来&#xff0c;都能影响到几百万的成本。长凡说&#xff1a;“大模型起来的时候&am…

算法详解——选择排序和冒泡排序

一、选择排序 选择排序算法的执行过程是这样的&#xff1a;首先&#xff0c;算法遍历整个列表以确定最小的元素&#xff0c;接着&#xff0c;这个最小的元素被置换到列表的开头&#xff0c;确保它被放置在其应有的有序位置上。接下来&#xff0c;从列表的第二个元素开始&#x…

事件高级、

文章目录 1.注册事件&#xff08;绑定事件&#xff09;addEventListener 事件监听方式attachEvent 事件监听方式、兼容性解决方案 * 2.删除事件&#xff08;解绑事件&#xff09;删除事件的方式删除事件兼容性解决方案 * 3.DOM事件流4.事件对象使用语法兼容性方案*常见属性和方…

边缘计算+WEB端应用融合:AI行为识别智能监控系统搭建指南 -- 边缘设备图像识别及部署(二)

专栏目录 边缘计算WEB端应用融合&#xff1a;AI行为识别智能监控系统搭建指南 – 整体介绍&#xff08;一&#xff09; 边缘计算WEB端应用融合&#xff1a;AI行为识别智能监控系统搭建指南 -- 边缘图像识别及部署&#xff08;二&#xff09; 前言边缘图像识别与推流整体思路原始…

Allegro许可类型

随着科技的飞速发展&#xff0c;数字化转型已成为企业提升竞争力的必经之路。在这个过程中&#xff0c;软件许可作为企业合规运营的关键环节&#xff0c;发挥着至关重要的作用。Allegro作为业界领先的软件解决方案提供商&#xff0c;提供了一系列丰富多样的许可类型&#xff0c…

vue+elementUI实现右击指定表格列的单元格显示选择框

一、template代码如下&#xff1a; 1、表格单元格中添加的代码&#xff1a; <div v-if"item.label 铁心级号" contextmenu.prevent"openRightMenu($event, item, scope.$index)" style"height: 38px; line-height: 38px;"><span styl…

海康威视添加新摄像头到原建的网络监控平台中

一、适用场景 1、企业已经存在一套海康威视的监控网络系统&#xff1b; 2、根据业务的需求&#xff0c;要新增加一些摄像头&#xff1b; 3、原施工方忙碌&#xff0c;为新增加的摄像头施工成本较高&#xff1b; 4、新增加海康威视的摄像头视频监控&#xff0c;保存在原建的监控…

构建强大的API:Django中的REST框架探究与实践【第146篇—Django】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 构建强大的API&#xff1a;Django中的REST框架探究与实践 在当今的Web开发中&#xff0c;构…

低代码:软件开发的性价比之王

随着技术的飞速发展&#xff0c;软件开发领域正经历着前所未有的变革。在这场变革中&#xff0c;低代码平台凭借其高效、便捷的特性&#xff0c;逐渐崭露头角&#xff0c;成为众多企业和开发者的首选。本文将探讨低代码平台为何能被誉为“性价比之王”&#xff0c;并分析其在软…