有扩展就有缩减,我们在前文《LVM : 扩展文件系统的容量》中介绍了通过 LVM 扩展文件系统的方法,本文我们接着前文的 demo 介绍通过 LVM 缩减文件系统的方法。说明:本文的演示环境为 ubuntu 16.04。
前文中我们把文件系统 /dev/mapper/nickvg-nicklv00 的容量从 15G 扩充到了 65G(显示为 64G):

接下来我们再把它重新缩减为 15G,并移除新添加的磁盘 /dev/sde。

卸载文件系统

与扩展文件系统的容量不同,如果是缩减文件系统的容量,需要卸载文件系统后再进行缩减操作。

如果没有卸载文件系统,会有上图中的提示。卸载文件系统本身非常简单,使用 umount 命令就可以搞定,我们要卸载的文件系统的挂载点为 /home/doc:

  1. $ sudo umount /home/doc

使用 resize2fs 命令缩减文件系统

卸载完文件系统就可以使用 resize2fs 命令来缩减其容量了,我们的目标是把它缩回 15G:

  1. $ sudo resize2fs /dev/nickvg/nicklv00 15G

提示先运行 e2fsck -f /dev/nickvg/nicklv00 命令。e2fsck 命令用于检查 ext2/ext3/ext4 文件系统的完整性,通过适当的选项可以尝试修复出现的错误。e2fsck 执行后的传回值及代表意义如下:

  • 0 没有任何错误发生。
  • 1 文件系统发生错误,并且已经修正。
  • 2 文件系统发生错误,并且已经修正。
  • 4 文件系统发生错误,但没有修正。
  • 8 运作时发生错误。
  • 16 使用的语法发生错误。
  • 128 共享的函数库发生错误。
  1. $ sudo e2fsck -f /dev/nickvg/nicklv00

-f 选项表示即使文件系统没有错误迹象,仍强制检查正确性。上图中的 0 表示我们的文件系统没有被检测出错误,我们重新执行 resize2fs 命令,这次就可以成功执行了:

使用 lvreduce 命令缩减 LV

在缩减 LV 前先查看一下其基本信息:

  1. $ sudo lvs nickvg/nicklv00

上图显示 LV nickvg/nicklv00 的容量为 65G,而我们缩减后的文件系统只有 15G,所以我们是可以缩减这个 LV 的,我们直接把它缩减到 15G:

  1. $ sudo lvreduce -L 15G nickvg/nicklv00

  2. $ sudo lvreduce -L 15G /dev/nickvg/nicklv00

查看下结果:

  1. $ sudo lvdisplay nickvg/nicklv00

LV 的容量变成了 15G,Current LE 的数量为 480。

从 VG 中移除 PV

检查名称为 nickvg 的 VG 的信息:

  1. $ sudo vgdisplay nickvg

结果显示 VG 的总容量为 69.94G,已经分配了 15G,还有 54.94G 空闲。接下来通过 pvs 命令来查看 PV 与 VG 的关系:

  1. $ sudo pvs

名称为 nickvg 的 VG 由 /dev/sdd1 和 /dev/sde1 两个 PV 组成,其中 /dev/sde1 完全空闲,我们可以把这个 PV 从 VG 中移除掉。vgreduce 命令可以从 VG 中移除 PV:

  1. $ sudo vgreduce nickvg /dev/sde1

从 VG 中移除 PV /dev/sde1 后再次查看 pv 的状态:

此时 /dev/sde1 已经不属于任何 VG。

移除 PV

所谓的移除 PV,就是使用 pvremove 命令移除 PV 设备上的标签,让 LVM 无法识别该设备是一个 PV。下面我们就来移除 PV /dev/sde1:

  1. $ sudo pvremove /dev/sde1

在 pvremove 命令移除 /dev/sde1 后,pvs 命令输出的结果中就找不到名称为 /dev/sde1 的 PV 了。

删除磁盘分区并移除硬盘

查看设备文件:

  1. $ ls /dev/sde*

其中的 /dev/sde1 就是磁盘分区的设备文件,让我们先用 gdisk 命令查看这个分区的信息:

  1. $ sudo gdisk /dev/sde

然后再删除它:

再去查看 sde 开头的设备文件,发现 /dev/sde1 已经不见了:

最后关机移除硬盘就可以了。
如果没有设置开机自动挂载文件系统,还需要在开机后重新手动挂载文件系统 /dev/mapper/nickvg-nicklv00 到 /home/doc 目录。

总结

与扩展文件系统容量不同,在 Ubuntu 16.04 中使用 resize2fs 命令缩减文件系统的容量需要事先卸载文件系统。其实实际使用中缩减文件系统的时候并不多,大家往往宁愿牺牲一些存储空间也不愿看到折腾丢数据的情况。

参考:
缩小 LVM 空间
鸟哥的私房菜:缩小 LV 容量

LVM : 缩减文件系统的容量的更多相关文章

  1. LVM : 扩展文件系统的容量

    如果发现文件系统的容量不足了,可以通过 LVM 轻松的进行扩展(当然也可以进行缩减操作).本文将紧接前文中的 demo 详细的介绍扩展文件系统的操作过程.说明:本文的演示环境为 ubuntu 16.0 ...

  2. CentOS7使用LVM缩减/home空间,扩大/空间

    CentOS7使用LVM缩减/home空间,扩大/空间方法:把/home里的内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/文件系统.新建/home,恢复/home的原内容1.查看默认分区[ ...

  3. 004.LVM缩减

    一 缩减步骤 卸载挂载点 检查文件系统 调整分区大小 缩减LV大小 重新挂载并检查 注意: 1 减少文件的大小一定需要按照上面提高的4个规定动作顺序来做,在缩减LV大小前,首先要缩减filesyste ...

  4. Centos 7 LVM xfs文件系统修复

    Centos 7 LVM xfs文件系统修复 今天一大早,zabbix开始报警了,一台linux主机出现问题. 登陆控制台查看,报如下错误. 解决方法如下: ls -l /dev/mapper xfs ...

  5. 十三、LVM 逻辑卷管理

    http://note.youdao.com/noteshare?id=0252cd5dcf7f2e5f11de5b3672779201&sub=ED011464ADA3467D9424271 ...

  6. LVM基本应用,扩展及缩减实现!

    LVM概述 [百度百科] LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁 ...

  7. Linux系统——文件系统与LVM 逻辑

    格式化命令 mkfs. mkswap mkfs格式化数据磁盘 # mkfs -t ext4 /dev/sdb1 # mkfs.ext4 /dev/sdb1 -t 指定格式化文件类型 -b 指定bloc ...

  8. linuxLVM之LV扩大和缩小容量(非xfs文件系统)

    LVM的基础请见:https://www.cnblogs.com/wxxjianchi/p/9698089.html 一.放大LV的容量.放大容量是由内而外来操作的. 1.设置新的lvm分区:用fdi ...

  9. 1.1 关于LVM的创建、删除、扩容和缩减

    一.新建LVM的过程 1.使用fdisk 新建分区 修改ID为8e 3.使用 pvcreate 创建 PV  4.使用 vgcreate 创建 VG  5.使用 lvcreate 创建 LV  6.格 ...

随机推荐

  1. Microsoft .NET Core 1.0.0 VS 2015 Tooling Preview 2 Uninstall Failed

    卸载过程中总是卸载失败报0x80070001:函数不明确错误.转遍了各大论坛和QQ,最终还是在stackoverflow上找到了答案... 原因是我卸载时选择的DotNetCore.1.0.0-VS2 ...

  2. [20180413]热备模式相关问题2.txt

    [20180413]热备模式相关问题2.txt --//上午测试热备模式相关问题,就是如果打开热备模式,如果中间的归档丢失,oracle在alter database end   backup ;时并 ...

  3. Nginx日志格式log_format详解

    PS:Nginx日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径.类型.缓存大小等,一般放在Nginx的默认主配置文件/ ...

  4. 18LaTeX学习系列之---LaTeX的参考文献

    目录 目录 前言 (一)简单的参考文献 1.说明 2.源代码 3.输出效果 (二)以文件管理的方式 1.说明: 2.源代码: 3.输出效果 (三)直接从源网站获取 1.说明 2.操作 目录 本系列是有 ...

  5. Linux 小知识翻译 - 「Shell 脚本」

    这次说说「Shell 脚本」. 根据上回的介绍,Shell就是「作为联系Linux和用户的接口而存在的软件」.在Linux环境中,通过Shell来操作系统很普遍. 这里,考虑到有时候可能想要「多次的进 ...

  6. January 04th, 2018 Week 01st Thursday

    Just do what works for you, because there will always be someone who think differently. 就做你自己所能做的,因为 ...

  7. python五十七课——正则表达式(元字符)

    1).匹配单个字符(数字.英文.其它) 符号位: []:表示一个字符位 [0123456789]:表示一位,取值范围:[0,9]之间的任何一个值 [0-9]:表示一位,取值范围:[0,9]之间的任何一 ...

  8. Python向上取整,向下取整以及四舍五入函数

    import math f = 11.2 print math.ceil(f) #向上取整 print math.floor(f) #向下取整 print round(f) #四舍五入 #这三个函数的 ...

  9. Android 的窗口管理系统 (View, Canvas, WindowManager)

    http://blog.csdn.net/ritterliu/article/details/39295271 From漫天尘沙 在图解Android - Zygote 和 System Server ...

  10. Zabbix安装 Grafana安装

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 前提: 先需要安装好 lamp环境. 官方文档: https://www.zabbix.com ...