Linux目录扩容

原文在我自己的博客网站:https://www.803366.xyz/index.php/archives/267/

前言

image

在一台多人服务器使用的服务器上,一开始装系统时由于是我第一次在服务器装系统,在没有图形界面的情况下也不知道格式化硬盘这些的,全都按照默认提示进行下去,好巧不巧两块1.8T的硬盘和一块118G的硬盘,偏偏系统默认装在了这块118G的硬盘上,其中还只给根目录/分了56G,虽然平时我自己买的服务器20G、40G就感觉很多了,但是这种很多人使用的服务器上面有大家日积月累的文件,尤其是还有下载的模型之类的显然就不是很够了。

一开始我用的的解决办法就是把一块1.8T的磁盘挂载到/home,这样大家自己的家目录下就可以放很多文件了,然后再把118G里剩下的空闲空间扩容给个根目录。以为100多G应该够用了,就很长时间都没去看。就这样过了三四个月,这个定时炸弹还是爆了,一个同学在编译程序时因为磁盘空间不够而报错,发现根目录已经爆满了。
image

这个时候还有一块1.8G的磁盘没有用上,就决定用它给根目录扩容了,然后写下这篇文章记录一下。

查看空闲磁盘

使用lsblk命令查看磁盘使用情况,这里我们发现/dev/sdc这块磁盘还没有挂载到任何目录,这就是我们接下来用来扩容的磁盘了。

给选定磁盘创建分区

如果磁盘比较大的话不能全部拿来扩容就需要给它分区。

如果磁盘没有格式化且里面已经有分区了,那就直接格式化分区就可以了,如果没有就按照下面的步骤创建分区。

fdisk可以用来给磁盘分区,使用

fdisk /dev/xxx

xxx就是需要创建分区的磁盘名,然后按照下面的步骤
image

这里在选择Partition number时,由于我之已经创建好了一个分区,所以默认是从2开始了,如果该磁盘还没有创建分区就是默认为1,以此类推。

一般First sector都是按默认值。然后Last sector一般用+size这种写法指定,比如我这里+512G就是指定这个分区大小为512G。

最后w保存并退出。然后通过lsblk可以发现/dev/sdc下面多出来了一个分区/dev/sdc2(如果是第一次分区一般是/dev/sdc1):
image

图中的/dev/sdc1已经被我扩容给/了,/dev/sdc2是刚刚演示分出来的区。

磁盘分区格式化

需要把刚刚创建的分区格式化为与我们的根目录相同的文件系统(df -Th可以看到Type,西下面就是文件系统类型):

mkfs.xfs /dev/xxx

以xfs文件系统格式化,xxx就是我们创建的磁盘分区名,这里就是sdc2。如果要格式化为ext4文件系统,那就是:

mkfs.ext4 /dev/xxx

将物理硬盘分区初始化为物理卷

首先看看LVM是什么:

逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又建立一个逻辑层,以方便系统管理硬盘分割系统。

通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volume group),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logical volumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照使用用途进行定义:“development”和“sales”,而不是使用物理磁盘名“sda”和“sdb”。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。

我们需要使用pvcreate命令将物理硬盘分区初始化为物理卷,以便LVM使用:

pvcreate /dev/sdc2

image

然后查看物理卷:

pvdisplay

image

上面的两个物理卷,第一个是一开始根目录所在的物理卷,第二个是给根目录扩容的,最后一个是我们刚刚创建的。通过第一个物理卷的VG Name: ubuntu-vg,可以看到它所属的卷组是ubuntu-vg,也可以通过vgdisplay查看卷组,一般这种带有系统名字就是根目录所在的卷组。
image

刚刚创建的卷组就需要添加到这个卷组里去:

vgextend ubuntu-vg /dev/sdc1

vgextend命令,第一个参数是卷组名,第二个是磁盘分区名。

根目录逻辑卷扩容

lsblk可以查看根目录的逻辑卷名字:
image

高亮标识的这两个就是根目录的逻辑卷了,使用lvextend扩容

lvextend -L +512G /dev/mapper/ubuntu--vg-ubuntu--lv

-L指定扩容大小。

将改变同步到文件系统

逻辑卷大小修改了但是文件系统还不知道,这个时候使用df -Th查看就可以发现根目录还是116G。
对于xfs文件系统:

xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv

对于其他文件系统:

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

然后就可以看到根目录大小已经加上了512G了:
image

总结

总的来说经过这一系列操作可以加深对操作系统文件系统的理解,如果没有扩容的需要,也可以拿自己没用的U盘或者硬盘来用上面这些命令玩玩。

文章有什么不正确的地方,欢迎大家指正。

posted @   stmoonar  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示