首页 > 系统相关 >Linux目录扩容

Linux目录扩容

时间:2023-10-27 13:25:38浏览次数:27  
标签:扩容 分区 Linux 文件系统 dev 磁盘 根目录 目录 ubuntu

原文在我自己的博客网站: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盘或者硬盘来用上面这些命令玩玩。

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

标签:扩容,分区,Linux,文件系统,dev,磁盘,根目录,目录,ubuntu
From: https://www.cnblogs.com/stmoonar/p/17792114.html

相关文章

  • 写一个cmd脚本,列出指定目录下的所有子目录和文件,限制层数
    在Windows的CMDshell中,tree命令并不直接支持指定层数。你可以编写CMD脚本达到相同目标。@echooffsetlocalset"root=%~1"set"maxdepth=%~2"set"curdepth=0"set"indent=":looppushd"%root%"for/d%%Din(*)do(echo%indent%......
  • C#winform软件实现一次编译,跨平台windows和linux兼容运行,兼容Visual Studio原生界面Fo
    一、背景:微软的.netcore开发工具,目前来看,winform界面软件还没有打算要支持linux系统下运行的意思,要想让c#桌面软件在linux系统上运行,开发起来还比较麻烦。微软只让c#的控制台软件支持在linux运行。二、解决方案:我想到的一个方案是自定义封装软件的System.Windows.Forms组件,把......
  • linux关闭cups服务
    linux系统中打印机使用631端口,进行通信,对于没有打印机的小伙伴关闭这个端口是很有必要的,减少攻击的可能性。这个服务依赖其他服务,所以要一起关闭,防止这个服务被其他服务唤醒。avahi-daemon为DNS服务发现,基本我们也用不到,所以关闭减少攻击。废话不多方法和截图如下:使用systemctl进......
  • Linux wget和curl进阶使用
    wget下载单个文件从网络中通过url下载单个文件到当前目录,这是wget最基础的用法。wgeturl地址说明:使用wget下载一个文件时候,如果没有指定下载的文件名是什么,那么默认会使用URL的最后一部分作为默认的文件名,如果知道下载的这个文件叫什么名字,可以用-O(大写)参数来指定下载的......
  • (笔记)Linux环境下stress功能介绍及压力测试
     注:stress命令主要用来模拟系统负载较高时的场景,本文介绍其基本用法。一、基本语法语法格式:stress<options>常用选项:-c,--cpuN产生N个进程,每个进程都反复不停的计算随机数的平方根-i,--ioN产生N个进程,每个进程反复调用sync()......
  • 最近学习到的一些linux的常用命令
    1、ls命令可以列出当前目录下的内容清单。它与windows下的dir命令很像 2、cd命令这个命令可以改变目录cd~  //更改到本用户的主目录cddesktop //更改目录到desktop cd.. //更改目录到上一级 3、管道输出可以把shell命令输出到文件里面ls>somefile.tx......
  • vmware上的linux挂载共享目录
    创建共享文件夹vmware上点击设置,进入虚拟机设置,点击选项,共享文件夹,添加主机路径,物理机上要分享的文件夹路径,这里我设置为D:\test_shared名称,要在虚拟机上显示的名称,,这里我设置为VM-centos-share一般选择总是启动,确认。打开CentOS终端,输入命令,查看共享文件夹情况vmware-hg......
  • Kubernetes 迁移节点 Kubelet 数据存储目录
    1、概述默认Kubernetes节点Kubelet数据目录在/var/lib/kubelet,如果在部署前没有做好规划,其实默认就存储在系统盘/分区下了,这可能会引发一些问题:磁盘空间限制:系统根目录通常具有较小的磁盘空间,用于操作系统文件和应用程序。将Kubelet数据与操作系统混合存储可能导致磁盘空......
  • Linux中安装软件
    如果是桌面版,先切换到root用户,终端输入su,回车后输入密码,回车确认。运行以下命令安装g++编译器yuminstallgccgcc-c++查看g++版本g++--version我用的是centos7.9,g++的版本很低。要查看当前CentOS系统上的最新可用g++版本,你可以使用yum包管理工具的list命令来列出......
  • Linux下安装Qt6的问题及解决
    Linux下安装完Qt6,新建Qt/QtQuickCMake工程编译出现如下错误:Foundpackageconfigurationfile:Qt6Config.cmakebutitsetQt6FOUNDtoFALSEsopackage"Qt6"isconsideredtobeNOTFOUND.Reasongivenbypackage:FailedtofindrequiredQtcomponen"Quick&......