Linux磁盘扩容并设置挂载点

背景

使用pve创建了一个虚拟机,各种环境配置都安装好了之后发现分配的磁盘空间太小了,默认的就30多个G,这还没咋玩呢就满了,像扩容却找遍了这个pve都没找到扩容按钮,并且我这个磁盘不是lvm结构的,所以好像无法直接扩容根目录。
不信邪的我搜了好多教程方案就像一劳永逸把根目录给直接扩容,在尝试了好几种方法还毁坏了好几个备份的系统清空下还是放弃了,奈何我这半吊子水平搞不了专业运维,磁盘操作风险太大了,并且扩容根目录本来就很麻烦,很容易破坏系统,于是决定改变策略,添加数据盘,创建新的分区,挂载新/路径

前提

系统:Ubuntu 20.04
命令:lsblk 以树状结构展示系统中的块设备信息

从下方输出可以看出,我已经把sda硬盘从128G扩容到了192G,但是多出来的64G是属于空闲空间,并没有利用起来,所以下面想做的就是创建一个新的分区sda3,并且挂载到/var目录下。

ma@cw:~$ 
ma@cw:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0    46M  1 loop /snap/snap-store/638
loop1    7:1    0 346.3M  1 loop /snap/gnome-3-38-2004/119
loop2    7:2    0  63.3M  1 loop /snap/core20/1828
loop3    7:3    0     4K  1 loop /snap/bare/5
loop4    7:4    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop5    7:5    0  49.9M  1 loop /snap/snapd/18357
sda      8:0    0   192G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0 127.5G  0 part /
sr0     11:0    1   4.1G  0 rom  /media/ma/Ubuntu 20.04.6 LTS amd64
ma@cw:~$ 
ma@cw:~$ df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
udev           devtmpfs  7.8G     0  7.8G    0% /dev
tmpfs          tmpfs     1.6G  1.3M  1.6G    1% /run
/dev/sda5      ext4      125G   10G  109G    9% /
tmpfs          tmpfs     7.9G     0  7.9G    0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M    0% /run/lock
tmpfs          tmpfs     7.9G     0  7.9G    0% /sys/fs/cgroup
/dev/loop0     squashfs   46M   46M     0  100% /snap/snap-store/638
/dev/loop1     squashfs  347M  347M     0  100% /snap/gnome-3-38-2004/119
/dev/loop3     squashfs  128K  128K     0  100% /snap/bare/5
/dev/loop2     squashfs   64M   64M     0  100% /snap/core20/1828
/dev/loop4     squashfs   92M   92M     0  100% /snap/gtk-common-themes/1535
/dev/loop5     squashfs   50M   50M     0  100% /snap/snapd/18357
/dev/sda1      vfat      511M  4.0K  511M    1% /boot/efi
tmpfs          tmpfs     1.6G   20K  1.6G    1% /run/user/1000
/dev/sr0       iso9660   4.1G  4.1G     0  100% /media/ma/Ubuntu 20.04.6 LTS amd64
ma@cw:~$ 

详细步骤

让我们一步步进行:

  1. 首先,我们需要创建一个新的分区。我们可以使用 fdisk 命令来完成这项任务。
(base) root@ma:/# fdisk /dev/sda

这将打开一个新的交互式界面,你可以按照提示进行操作。

  1. 在 fdisk 中,按下 n 键来创建一个新分区。
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): n
  1. 选择分区类型。因为我们想要创建一个 Linux 分区,所以按下 p
Partition typep   primary (0 primary, 0 extended, 4 free)e   extended (container for logical partitions)
Select (default p): p
  1. 选择分区编号。由于 sda1 和 sda5 已经存在,我们需要选择 sda3。
Partition number (1-4, default 1): 3
  1. 接下来,我们需要选择分区的起始和结束位置。按照提示,你可以选择默认的起始和结束位置。
First sector (1050624-167772159, default 1050624): [按回车键]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (1050624-167772159, default 167772159): +32G

这里我们选择了一个 32GB 大小的分区。确保输入后按回车键。

  1. 现在分区已经创建了,我们需要将其格式化为 ext4 文件系统。
Command (m for help): t
Selected partition 3
Hex code (type L to list all codes): 83

这里我们选择了 83 作为分区的文件系统类型,它对应着 Linux ext4 文件系统。

  1. 现在,我们需要将分区标记为已经格式化。
Command (m for help): w
The partition table has been altered.
Syncing disks.

以上7个步骤操作如图所示:
在这里插入图片描述

  1. 分区创建完成。现在我们需要格式化这个新分区。

root@cw:/home/ma# mkfs.ext4 /dev/sda3
mke2fs 1.45.5 (07-Jan-2020)
丢弃设备块: 完成                            
创建含有 8388608 个块(每块 4k)和 2097152 个 inode 的文件系统
文件系统 UUID:b08ae70a-e723-443f-a2ed-e2d961faa56e
超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624正在分配组表: 完成                            
正在写入 inode表: 完成                            
创建日志(65536 个块): 完成
写入超级块和文件系统账户统计信息: 已完成 
  1. 创建一个临时挂载点,用于将原 /var 目录挂载进去。
root@cw:/#  mkdir /mnt/tempvar

将原 /var 目录挂载到临时挂载点上。
为确保安全,我们还是多做一个备份,再挂载

root@cw:/home/ma#  mkdir /var_backup
# 将 /var 目录下的所有内容备份到新创建的临时目录中。
root@cw:/# cp -r /var/* /var_backup/
# 然后再挂载
root@cw:/#  mount --bind /var /mnt/tempvar

现在可以将其挂载到 /var 目录下。

(base) root@ma:/# mount /dev/sda3 /var
  1. 现在,我们可以确认新分区是否已经成功挂载到 /var 目录下。
(base) root@ma:/# df -h

这个命令将列出当前系统中所有的文件系统及其挂载点,你应该能够在输出中看到 /dev/sda3 已经挂载到 /var

  1. 最后,将之前备份的 /var 目录的内容复制回新的挂载点。
(base) root@ma:/# cp -r /var_backup/* /var/
  1. 确认复制是否成功,并删除备份目录。
(base) root@ma:/# ls /var
(base) root@ma:/# rm -r /var_backup

完成!你已经成功地创建了一个 32GB 的分区并将其挂载到 /var 目录下,并且将原来的 /var 目录下的内容迁移到了新的挂载点上。

结果验证

此时在使用df -hT输出验证一下:

root@cw:/mnt/tempvar# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0    46M  1 loop /snap/snap-store/638
loop1    7:1    0 346.3M  1 loop /snap/gnome-3-38-2004/119
loop2    7:2    0  63.3M  1 loop /snap/core20/1828
loop3    7:3    0     4K  1 loop /snap/bare/5
loop4    7:4    0  91.7M  1 loop /snap/gtk-common-themes/1535
loop5    7:5    0  49.9M  1 loop /snap/snapd/18357
sda      8:0    0   192G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1K  0 part 
├─sda3   8:3    0    32G  0 part /mnt/tempvar
└─sda5   8:5    0 127.5G  0 part /
sr0     11:0    1   4.1G  0 rom  /media/ma/Ubuntu 20.04.6 LTS amd64
root@cw:/mnt/tempvar# 
root@cw:/mnt/tempvar# 
root@cw:/mnt/tempvar# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
udev           devtmpfs  7.8G     0  7.8G    0% /dev
tmpfs          tmpfs     1.6G  1.3M  1.6G    1% /run
/dev/sda5      ext4      125G   13G  107G   11% /
tmpfs          tmpfs     7.9G     0  7.9G    0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M    0% /run/lock
tmpfs          tmpfs     7.9G     0  7.9G    0% /sys/fs/cgroup
/dev/loop0     squashfs   46M   46M     0  100% /snap/snap-store/638
/dev/loop1     squashfs  347M  347M     0  100% /snap/gnome-3-38-2004/119
/dev/loop3     squashfs  128K  128K     0  100% /snap/bare/5
/dev/loop2     squashfs   64M   64M     0  100% /snap/core20/1828
/dev/loop4     squashfs   92M   92M     0  100% /snap/gtk-common-themes/1535
/dev/loop5     squashfs   50M   50M     0  100% /snap/snapd/18357
/dev/sda1      vfat      511M  4.0K  511M    1% /boot/efi
tmpfs          tmpfs     1.6G   24K  1.6G    1% /run/user/1000
/dev/sr0       iso9660   4.1G  4.1G     0  100% /media/ma/Ubuntu 20.04.6 LTS amd64
/dev/sda3      ext4       32G  2.4G   28G    9% /var
root@cw:/mnt/tempvar# 

可以看到输出/dev/sda3 ext4 32G 2.4G 28G 9% /var,说明/var目录已经变为了32GB,操作成功了。

最后

硬盘操作一定要核准每个步骤什么意思再执行,重要操作前一定要记得做好备份,很容易误操作造成系统崩溃。

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

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

相关文章

Zookeeper集群+消息队列Kafka

一. Zookeeper 集群的相关知识 1. zookeeper的概念 ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的…

zookeeper分布式应用程序协调服务+消息中间件kafka分布式数据处理平台

一、zookeeper基本介绍 1.1 zookeeper的概念 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、…

【Excel】使用VBA宏简单自定义Excel软件界面

改行做经济师学习Excel,偶有心得,摘录于此,备忘。 言简意赅,仅供自用。 1 实现效果 在Excel的左上角可添加按钮,该按钮的功能可由我们自己通过编写代码定义,能实现特定功能,并且在所有打开的…

Electron 桌面端应用的使用 ---前端开发

Electron是什么? Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 入门…

LLM大语言模型助力DataEase小助手,新增气泡地图,DataEase开源数据可视化分析平台v2.5.0发布

2024年4月8日,DataEase开源数据可视化分析平台正式发布v2.5.0版本。 这一版本的功能升级包括:新增DataEase小助手支持,通过结合智能算法和LLM(即Large Language Model,大语言模型)能力,DataEas…

浮点数在内存中的存储

索引 1. 浮点数在内存中的存储2. 浮点数存的过程3. 浮点数取的过程4. 题目解析 正文开始 1. 浮点数在内存中的存储 常见的浮点数: 3.14159 , 1E10等, 浮点数家族包括 : float , double , long double类型. 浮点数的表示范围在 float.h中定义. (1E10为科学计数法表示1.0 * 2的…

从零开始编写一个cmake构建脚本

简介 本文档介绍cmake构建脚本编写,包含的一些主要元素和命名规范。 cmake构建脚本编写步骤 cmake构建工具版本要明确 # 命令名字要小写,这条语句要求构建工具至少需要版本为3.12或以上 cmake_minimum_required (VERSION 3.12)工程名及库的版本号明确…

SQLite从出生到现在(发布历史记录)(二十二)

返回:SQLite—系列文章目录 上一篇:从 SQLite 3.5.9 迁移到 3.6.0(二十一) 下一篇:PSQLite的RAGMA 声明 引言: SQLite拥有别人无法比拟的装机量,究竟什么成就了SQLite呢,本文将SQLite的历…

探索进程控制第一弹(进程终止、进程等待)

文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么?进程终止的情况代码跑完,结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…

代码随想录算法训练营第51天|309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

309.最佳买卖股票时机含冷冻期 题目链接:最佳买卖股票时机含冷冻期 题目描述:给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交…

【CLR】《Cyclical Learning Rates for Training Neural Networks》

WACV-2017 IEEE Winter Conference on Applications of Computer Vision 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Datasets and Metrics5.2 CIFAR-10 and CIFAR-1005.3 ImageNet 6 Conclusion(o…

内网渗透-cobaltstrike之cs上线获取shell

cobaltstrike之cs上线获取shell 文章目录 cobaltstrike之cs上线获取shell前言一、什么是cobaltstrike二、cs上线获取shell 1.环境搭建 CS安装windows连接 2. cs上线获取shell 总结 前言 一、什么是cobaltstrike CobaltStrike是一款渗透测试神器,被业界人称为CS神器…

在线视频下载工具lux(原annie)安装及使用教程

安装教程 下载ffmpeg,参考这篇文章:Python——Windows下载ffmpeg由于博主的系统为windows,所以选择不安装lux,直接下载.exe文件,进入lux的github网站后,选择右侧的Releases,下载下图的windows …

五、LoadBalancer负载均衡服务调用

一、Ribbon目前也进入维护模式 1、是什么 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的…

华为HarmonyOS 4.2公测升级计划扩展至15款新机型

华为近日宣布,HarmonyOS 4.2操作系统的公测升级计划将扩展到包括华为P50系列在内的15款设备。这一更新旨在为用户提供更优化的系统性能和增强的功能。 参与此次公测的机型包括华为P50、华为P50 Pro及其典藏版、华为P50E、华为P50 Pocket及其艺术定制版、华为nova系…

[NKCTF2024]-PWN:leak解析(中国剩余定理泄露libc地址,汇编覆盖返回地址)

查看保护 查看ida 先放exp 完整exp: from pwn import* from sympy.ntheory.modular import crt context(log_leveldebug,archamd64)while True:pprocess(./leak)ps[101,103,107,109,113,127]p.sendafter(bsecret\n,bytes(ps))cs[0]*6for i in range(6):cs[i]u32(p…

社区养老服务系统|基于springboot社区养老服务系统设计与实现(源码+数据库+文档)

社区养老服务系统目录 目录 基于springboot社区养老服务系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员部分功能 (1) 用户管理 (2)服务种类管理 (3)社区服务管理 &#xff08…

文献速递:深度学习胰腺癌诊断--胰腺肿瘤的全端到端深度学习诊断

Title 题目 Fully end-to-end deep-learning-based diagnosis of pancreatic tumors 胰腺肿瘤的全端到端深度学习诊断 01 文献速递介绍 胰腺癌是最常见的肿瘤之一,预后不良且通常是致命的。没有肿瘤的患者只需要进一步观察,而胰腺肿瘤的诊断需要紧…

Docker核心特征

Docker的基本概念 Dockerfile:制作进行的文件,可以理解为制作镜像的一个清单。 镜像:用来创建容器的安装包,可以理解为给电脑安装操作系统的系统镜像。 容器:通过镜像来创建的一套运行环境,一个容器里可…

Rust - 所有权

所有的程序都必须和计算机内存打交道,如何从内存中申请空间来存放程序的运行内容,如何在不需要的时候释放这些空间,成了重中之重,也是所有编程语言设计的难点之一。在计算机语言不断演变过程中,出现了三种流派&#xf…