Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量

 

Ubuntu 作为服务器系统使用的时候,系统盘的空间可能并不是很充裕,apt apt 着,根目录就满了。诚然,增加磁盘 / 分区并挂载是一个方案,但并不能解决所有问题(例如 apt)。同时,一些跑在云平台上的服务器并没有很好的离线操作磁盘的手段,这时候在线扩容就显得极为必要了。

数据无价!对磁盘进行任何操作前,请务必做好备份!


1. 磁盘根目录在线扩容

操作环境:Proxmox VE 虚拟化 / Ubuntu 18.04.5 LTS / GPT 分区表 / ext4 分区

1.1 增大物理磁盘容量

这部分没什么好说的,虚拟机就在设置里改,云平台就在对应的平台修改。修改好之后 Ubuntu 应该就可以直接识别到新的容量了。

1.2 将容量合并进分区

首先运行

fdisk -l

命令查看磁盘容量是否被识别:

从上图可以看到,磁盘容量已被正确识别为 64GiB,但分区表记录的磁盘容量仍为扩容前的 40GiB(见红色提示,错误已被识别到),分区大小也是同样的 40G。

1.2 修复分区表

运行

parted -l

查看分区情况。
parted 会立即提示磁盘的空间并没有被全部使用,这里输入 Fix 后回车,修复一下 GPT 分区表。

从上图中已经可以看到,分区表记录的磁盘容量已经正常。

1.3 扩容分区

现在就可以将空闲的磁盘容量合并到分区里了,这里利用界面和操作都更加友好的

cfdisk

来进行操作。
按上下键选中要扩容的分区,再按左右键选择 Resize 操作,回车。cfdisk 应该会自动填写此分区与未分配空间的总容量,也可以自己输入扩容后的大小,回车即可。

下图中的 sda2 分区已经变为 64G,分区扩容完毕。但此时的所有操作仅在内存中完成,我们需要选择 Write 来将更改保存到分区表。写入后退出 cfdisk。

再次执行

fdisk -l

,可见分区容量已变为 64G。

1.4 扩容文件系统

此时扩容并未结束,因为文件系统记录的分区容量仍为 40G,我们需要让文件系统知道分区已被扩容。

这里需要用到 resize2fs,以我的磁盘 sda2 为例,执行以下命令:

resize2fs -p /dev/sda2
resize2fs /dev/sda2
 
 

等待操作完成即可。根据上图提示,我们已经完成了对文件系统的在线扩容。


2. 修改磁盘 inode

对于 ext4 文件系统,inode 会在格式化时被写死,若要修改必须重新格式化,丢失所有数据,请务必注意。xfs 等文件系统提供 inode 的动态扩展功能。

2.1 查看磁盘 inode 情况

运行

df -i

查看各个分区的 inode 使用情况。

从上图可以看到我的 sdc1 分区已经用尽了所有 4,194,304 个 inode,此时表现为无法写入任何数据,提示磁盘已满(即使仍有可用空间)。

2.2 重新格式化分区

在格式化分区的时候,可以利用 -N 参数指定 inode 数量。
以格式化 sdb1 为具有 16,777,216 个 inode 的 ext4 分区为例,执行以下命令:

mkfs.ext4 /dev/sdb1 -N 16777216

mkfs 会提示磁盘已存在格式化后的文件系统,确认后等待格式化完成即可。

2.3 检查 inode 数量

运行以下命令:

dump2fs -h /dev/sdb1 | grep node

结果如下图,可以看到 Inode count 一项已经变为我们指定的值。

 

Ubuntu 18.04 磁盘根目录在线扩容 & 修改分区 inode 数量的更多相关文章

  1. Ubuntu 18.04 进入单用户模式修改密码

    Ubuntu 18.04 使用单用户模式修改密码 操作步骤 启动Ubuntu 18.04 ,长按 Shift 键(有的可能按 Esc 键:绝大多数按 Shift 键)进入单用户视图,选中 Ubuntu ...

  2. Ubuntu 18.04 根目录为啥只有 4G 大小

    其实准确点儿的描述应该是:Ubuntu Server 18.04 ,设置 LVM,安装完成后根目录的容量为什么只有 4G?只有 Server 版有问题,Desktop 版没有问题,Ubuntu 16. ...

  3. Ubuntu 18.04 根目录只有 4G 大小

    其实准确点儿的描述应该是:Ubuntu Server 18.04 ,设置 LVM,安装完成后根目录的容量为什么只有 4G?只有 Server 版有问题,Desktop 版没有问题,Ubuntu 16. ...

  4. Ubuntu 18.04 LTS修改 国内源(以中科大源为例)

    国内有很多Ubuntu的镜像源,包括阿里的.网易的,还有很多教育网的源,比如:清华源.中科大源. 我们这里以中科大的源为例讲解如何修改Ubuntu 18.04里面默认的源. 可以进入这个链接进行下载: ...

  5. ubuntu 18.04 修改 固定ip

    Linux(ubuntu)下固定IP的方法   写在前面,问:为什么要固定ip.答:要知道固定IP的好处多多,随意搬动,固定共享地址,不怕断网等等 首先,我们要选取一个局域网内的IP,方法如下: 1. ...

  6. Ubuntu 18.04修改默认源

    安装Ubuntu 18.04后,使用国外源太慢了,修改为国内源会快很多. 修改阿里源为Ubuntu 18.04默认的源 备份/etc/apt/sources.list #备份 cp /etc/apt/ ...

  7. ubuntu 18.04 修改Apache默认目录

    ubuntu 18.04 修改Apache默认目录 安装是直接运行 sudu apt install apache2 安装之后要修改目录 vi /etc/apache2/sites-available ...

  8. Ubuntu 18.04下安装Steam顶级在线游戏平台

    Ubuntu 18.04下安装Steam顶级在线游戏平台 原创: 聆听世界的鱼 Linux公社 今天 Steam是由Valve公司开发的顶级在线游戏平台,是目前全球最大的综合性数字发行平台之一.它让你 ...

  9. Ubuntu 18.04修改默认源为国内源

    安装Ubuntu 18.04后,使用国外源太慢了,修改为国内源会快很多. 修改阿里源为Ubuntu 18.04默认的源 备份/etc/apt/sources.list 备份 cp /etc/apt/s ...

随机推荐

  1. 自己写了个Java RMI(远程方法调用)的实现案例

    自己简单写了个Java RMI(远程方法调用)的实现案例. 为了更好理解RMI(远程方法调用).序列化的意义等等,花费三天多的时间肝了一个Java RMI的实现案例. !!!高能预警!!! 代码量有点 ...

  2. ImageView和使用第三方库加载网络图片

    1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android: ...

  3. Python:matplotlib.cm 色表

    官网:Choosing Colormaps in Matplotlib - Matplotlib 3.5.0 documentation Colormap与matplotlib.cm 我们以等高区域函 ...

  4. IIS部署vue项目页面刷新404,url重写问题解决办法

    这里需要用到URL重写工具 --URL Rewrite(默认没有,需要自己下载安装) 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS在管理 ...

  5. JZ-001-二维数组中的查找

    二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数 ...

  6. 函数式组件中实现Antd打开Modal后其Input框自动聚焦(focus)到文字的最后

    目前React使用函数式组件已经成为趋势, 如何把React函数式组件用好, 提高性能, 从而实现业务需求也成为了一种能力的体现......咳咳咳, 进入正题: 现实场景需求 我想实现这一个需求, 父 ...

  7. laravel8 登录功能的实现

    1.选择合适的框架,渲染出如上图所示的登录视图,视图有样式即可,可使用BootStrap或layUI去布局实现(10分) 2.正确显示出验证码(10分) 3.验证码要求无杂点.无干扰线,4位纯数字(1 ...

  8. think php 验证器及验证场景的使用

    1:在需要验证的模块名下建一个validate文件夹 ,文件夹下建议个验证的 名称   Goods.php 2:打开Goods.php <?php namespace app\api\valid ...

  9. SoftwareTeacher直播自我感想

    今天老师发布了一个链接直播是关于:同学们聊聊学习软件工程,CS 课程的问题下面是我的个人感悟和笔记 一.编程技术的提升 编程并不是一件很难的事情,就如开车一样,只有多加练习,自己的技术才能提升上去.拿 ...

  10. Java UDP 编程

    1.客户端代码 1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSo ...