Linux磁盘扩容并设置挂载点

本文讲述了如何在Ubuntu20.04环境下,面对PVE虚拟机磁盘空间不足的问题,通过创建新分区而非直接扩容根目录,详细描述了使用fdisk创建分区、格式化和挂载新分区的过程,强调了操作前备份的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

使用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,操作成功了。

最后

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马不常有

整理不易,点滴助力就是不竭动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值