Linux磁盘扩容并设置挂载点

news2024/11/24 4:34:08

背景

使用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 type
   p   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.coloradmin.cn/o/1588494.html

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

相关文章

01攻防世界web-Training-WWW-Robots

写在前面: 一入网安深似海,学习需要毅力和强大的坚持。 1.Training-WWW-Robots 题目 解题过程 访问网址后面加上/robots.txt 进入fl0g.php文件,找到flag 相关知识点1.Robots: 理解一下robotS文件中的user-agent: 以及Disallow…

学习Rust的第三天:猜谜游戏

Welcome to the third day of learning rust, I am referring to the book “The Rust Programming Language” by Steve Klabnik. Today we build a guessing game in rust. 欢迎来到学习Rust的第三天,基于Steve Klabnik的《The Rust Programming Language》一书。…

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成

数据生成 | Matlab实现基于SNN浅层神经网络的数据生成 目录 数据生成 | Matlab实现基于SNN浅层神经网络的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于SNN浅层神经网络的数据生成,运行环境Matlab2021b及以上; …

微软卡内基梅隆大学:无外部干预,GPT4等大语言模型难以自主探索

目录 引言:LLMs在强化学习中的探索能力探究 研究背景:LLMs的在情境中学习能力及其重要性 实验设计:多臂老虎机环境中的LLMs探索行为 实验结果概览:LLMs在探索任务中的普遍失败 成功案例分析:Gpt-4在特定配置下的探…

TS在interface和type的区别

在TypeScript中,interface和type都是用来定义类型的方式 (1)语法: interface 关键字用于定义接口,一般定义对象类型,可以描述对象的形状,即一个对象应该具有哪些属性和方法。interface可以声明对象应该具有的结构和属性。 type 关键字用于…

Java 中文官方教程 2022 版(三十二)

原文:docs.oracle.com/javase/tutorial/reallybigindex.html 一个基本的打印程序 原文:docs.oracle.com/javase/tutorial/2d/printing/printable.html 本节解释了如何创建一个基本的打印程序,显示打印对话框,并将文本“Hello Worl…

导入芯片原厂SDK Mirror源码到gerrit

下载镜像代码 repo init --mirror --repo-url ssh://xx/repo.git -u ssh://xx/manifests.git -m manifest.xml repo sync 创建AOSP project 对All Project权限修改 创建repo 在刚才下载的codebase根目录执行如下命令: repo forall -c echo $REPO_PROJECT; ssh -p 29…

Linux使用docker安装RocketMQ并登录管理界面

Linux使用docker安装RocketMQ并登录管理界面 1、创建 /opt/rocketmq/docker-compose.yml和/opt/rocketmq/broker.conf两个配置文件 2、docker-compose.yml,并配置管理页面端口为8090 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:servercontainer_…

Ubuntu 22.04进行远程桌面连接

文心一言 Ubuntu 22.04进行远程桌面连接,无论是连接到Windows 10还是另一个Ubuntu 22.04,都可以通过不同的方式实现。以下是具体的步骤: 连接到Windows 10 在Windows 10上开启远程桌面功能:首先,需要在Windows 10上…

linux系统特殊符号

分号可以对命令分割,如下图,单独使用ls与pwd,与使用分号进行分割 井号可以将后面内容注释掉,以及作为root身份提示符 $可以取出变量的值,同时也是普通用户身份提示符 反斜杠可以将特殊字符转义为普通字符 花括号可以用…

(五)PostgreSQL的管理工具pgAdmin

PostgreSQL的管理工具pgAdmin pgAdmin 是一款流行的开源图形界面管理工具,用于 PostgreSQL 数据库的管理和开发。它提供了一个易于使用的界面,允许用户执行各种数据库任务,如创建和修改数据库对象(表、视图、索引等)、…

一文看懂标准版和Pro版的区别

在CRMEB的众多产品中,有这样两款产品经常被拿来比较,它们就是CRMEB的标准版和Pro版商城系统,今天,我们就来盘一下这两款系统之间究竟有哪些不同。 1、Pro版系统性能更卓越 CRMEB Pro版采用Tp6 SwooleRedis高性能框架开发&#…

组件与组件之间的传递-事件总线

两个组件之间的数据传递(属于非父子组件通讯) 当项目中只是两个组件的少量数据传递时使用事件总线这种方法会比较方便,但当遇到大量数据传递时推荐使用vuex 思路 组件与组件之间不能直接传递,这是候可以创建一个EventBus.js文件…

【火猫TV】Spirit.Collapse-不清楚队伍的问题出在哪里

1、近日Spirit战队三号位选手Collapse在精英联赛期间接受采访时表示:不清楚队伍目前的问题出在哪里,可能只是因为我们如今的状态和表现都不太好吧。转载:火猫TV资讯 【队伍目前的问题】 “我不是很清楚目前我们的问题出在哪里,可…

2024年,怎么开通一个属于自己的抖店?

我是王路飞。 抖店,依旧是普通人做抖音最好的渠道。 至于短视频直播带货,门槛较高,尤其是在当前的环境下,个人是很难竞争的过那些达人团队的。 不管是在门槛、操作、还是利润回报等方面,抖店都是一个不错的选择。 …

奎芯科技:智能时代的芯片上游企业如何突破?

半导体IP(Intellectual Property,知识产权),通常也称作IP核(IP core),指芯片设计中预先设计、验证好的功能模块,主要服务于芯片设计,因部分通用功能模块在芯片中被反复使…

五:函数基础:概念、基础语法、库函数与自定义函数

本章学习链接如下: 1.函数的概念 函数是执行特定任务的自包含代码块,它可以接受输入,处理输入,并产生输出。函数的使用提高了代码的重用性、模块性和可读性。C语言中的函数可以分为两大类:库函数和用户定义函数。 2.函…

为什么程序员老婆都很漂亮?网友:new出来的。。。

最近,我被一个问题吸引了,一网友提问:“为何程序员老婆都很漂亮?”哈哈,说到这个话题,我瞬间就不困了。 评论区的网友们也非常来劲儿。有位网友打趣说:“因为是自己用代码new出来的,…

换换换 码题集

难度:钻石 时间限制:1秒 占用内存:128M 输入 5 5 5 car van track dog cat 1 2 4 5 3 2 5 1 1 4 van car track dog cat 输出 5 3 2 4 1 原始思路&#xff1a;for循环&#xff0c;但会运行超时 #include<bits/stdc.h> using namespace std; int main(){int n,m,t;cin…

校园论坛系统

文章目录 校园论坛系统一、项目演示二、项目介绍三、10000字论文参考四、系统部分功能截图五、部分代码展示六、底部获取项目和10000字论文参考&#xff08;9.9&#xffe5;&#xff09; 校园论坛系统 一、项目演示 校园论坛系统 二、项目介绍 基于springbootvue的前后端分离…