最近刚刚装好了一个系统,但是因为没有分好区,导致home分区过大,所以想把home分区的一大半移动到根分区里面。

1、先说一下我的环境。

安装的是centos6版本的系统,使用的默认文件系统是ext4格式的。

2、查看当前分区的大小

[root@centos6-chaofeng2 src]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 50G .4G 42G % /
tmpfs tmpfs .9G .9G % /dev/shm
/dev/sda2 ext4 477M 39M 413M % /boot
/dev/sda1 vfat 200M 264K 200M % /boot/efi
/dev/mapper/VolGroup-lv_home
ext4 G 24M G % /home

可以看出home分区的是相当大的。但是现在我不想使用这么大的home分区,因此我需要把一大部分size移动到根分区下。接下来我们看一下操作步骤:

3、首先是卸载home分区

[root@centos6-chaofeng2 src]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=,mode=)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda2 on /boot type ext4 (rw)
/dev/sda1 on /boot/efi type vfat (rw,umask=,shortname=winnt)
/dev/mapper/VolGroup-lv_home on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
[root@centos6-chaofeng2 src]# umount /home

mount命令可以查看当前系统设备的挂载信息。

4、强制进行磁盘检测。可以检测坏块等。

[root@centos6-chaofeng2 src]# e2fsck -f /dev/mapper/VolGroup-lv_home
e2fsck 1.41. (-May-)
Pass : Checking inodes, blocks, and sizes
Pass : Checking directory structure
Pass : Checking directory connectivity
Pass : Checking reference counts
Pass : Checking group summary information
/dev/mapper/VolGroup-lv_home: / files (0.0% non-contiguous), / blocks

5、先使用针对ext文件系统的工具调整大小。resize2fs命令专门用来管理ext4文件系统的size大小的工具

[root@centos6-chaofeng2 src]# resize2fs /dev/mapper/VolGroup-lv_home 2000M
resize2fs 1.41. (-May-)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_home is now blocks long.

原来是50G的大小,现在调整为2G大小就够了。

注意:调整后的size大小必须大于原来占用整个home分区的所有文件的总大小,否则,整个home分区的数据全部丢失。

6、接着使用针对lvm管理的磁盘调整大小

[root@centos6-chaofeng2 src]# lvreduce -L 2000M /dev/mapper/VolGroup-lv_home
WARNING: Reducing active logical volume to 1.95 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce VolGroup/lv_home? [y/n]: y
Size of logical volume VolGroup/lv_home changed from 53.30 GiB ( extents) to 1.95 GiB ( extents).
Logical volume lv_home successfully resized.

7、重新挂载home分区。

[root@centos6-chaofeng2 src]# mount /dev/mapper/VolGroup-lv_home /home

8、我们将home分区从50G缩减到2G的大小。那么此时缩减出来的48G的空间怎么查看呢?

[root@centos6-chaofeng2 dev]# vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas
Metadata Sequence No
VG Access read/write
VG Status resizable
MAX LV
Cur LV
Open LV
Max PV
Cur PV
Act PV
VG Size 111.10 GiB
PE Size 4.00 MiB
Total PE
Alloc PE / Size / 59.75 GiB
Free PE / Size / 51.35 GiB
VG UUID R2SyTs-XBry-ULRF-Qnfz-MCS8-p8CW-Cp675N

这一行的”Free  PE/Size“就表示缩减掉的那部分空间。

9、现在我们把这部分空间加到根分区上。

[root@centos6-chaofeng2 dev]# lvextend -L +51.3G /dev/mapper/VolGroup-lv_root
Rounding size to boundary between physical extents: 51.30 GiB.
Size of logical volume VolGroup/lv_root changed from 50.00 GiB ( extents) to 101.30 GiB ( extents).
Logical volume lv_root successfully resized.

10、接着使用resize2fs命令调整ext4的文件系统的size大小

[root@centos6-chaofeng2 dev]# resize2fs /dev/mapper/VolGroup-lv_root
resize2fs 1.41. (-May-)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = , new_desc_blocks =
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now blocks long.

11、到此基本就已经完成磁盘扩容了,此时再来看看各个分区大小

[root@centos6-chaofeng2 dev]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 100G .4G 90G % /
tmpfs tmpfs .9G .9G % /dev/shm
/dev/sda2 ext4 477M 39M 413M % /boot
/dev/sda1 vfat 200M 264K 200M % /boot/efi
/dev/mapper/VolGroup-lv_home
ext4 .8G 24M .7G % /home

磁盘大小基本就调整完毕了。

lvm管理卷之缩减卷大小的更多相关文章

  1. LVM管理之减少LV的大小

    LVM管理之减少LV的大小 规定动作 1.umount filesystem 2.e2fsck filesystem 3.resize2fs filesystem 4.lvredure 实例演示——— ...

  2. GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除

    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...

  3. LVM管理及扩容(转)

    LVM磁盘管理 一、LVM简介... 1 二、 LVM基本术语... 2 三、 安装LVM... 3 四、 创建和管理LVM... 4 2、 创建PV.. 6 3、 创建VG.. 7 4、 创建LV. ...

  4. Redhat 平台下 LVM 管理说明

    Redhat 平台下  LVM 管理说明 LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力.LVM 可以帮助系统管理员为应用与用 ...

  5. Linux权限及归属管理 磁盘管理 文件系统 LVM管理

    第五六七章   alias 查看系统别名   67 chmod 设置文件或目录的权限 -R表示以递归的方式设置目录及目录下的所有子目录及文件的权限 u:属主 g:属组 o:其他人 a:所有人 +:添加 ...

  6. lvm - Logical Volume Manager - 逻辑卷管理

    下午突然感觉 lvm 相关的知识忘记了,恰好机房里的fedora服务器上 挂了4个500GB的HDD 硬盘没有使用,就拿来操作了一番: 下面有几篇关于lvm不错的文章,进行了链接,网上也有很多不错的博 ...

  7. Linux LVM Logical Volume Management 逻辑卷的管理

    博主是一个数据库DBA,但是一般来说,是不做linux服务器LVM 逻辑卷的创建.扩容和减容操作的,基本上有系统管理员操作,一是各司其职,专业的事专业的人做,二是做多了你的责任也多了,哈哈! 但是li ...

  8. LVM(2)逻辑卷的扩展、缩减、快照卷

    一.扩展逻辑卷:lvextend   扩展逻辑卷物理边界    -L [+]# /PATH/TO/LV2G, +3G5G

  9. 自学Linux Shell8.2-linux逻辑卷LVM管理

    点击返回 自学Linux命令行与Shell脚本之路 8.2-linux逻辑卷LVM管理 Linux逻辑卷管理器软件包用来通过将另外一个硬盘上的分区加入已有文件系统,动态地添加存储空间. 1. 逻辑卷L ...

随机推荐

  1. 7z 程序打包 Demo

    最近准备做一个用户端 异常收集的程序  需要收集用户机器的程序日志和相关信息 准备打包发回来  所以研究了一下7Z 文件压缩 做一个笔记吧 遇到的问题: 1:VS2008 遇到 loadlibrary ...

  2. interface21 - web - Log4jConfigListener(Log4j加载流程)

    前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...

  3. 从零开始学 Web 之 JavaScript(三)函数

    大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...

  4. 自己动手实现java数据结构(二) 链表

    1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表.今天,要介绍的是线性表的另一种实现方式---链表. 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构.但是, ...

  5. vue 周期函数

    先简单说说vue中周期函数 beforeCreate(创建前) created(创建后) beforeMount(载入前) mounted(载入后) beforeUpdate(更新前) updated ...

  6. kali linux安装中文输入法

    1.先安装VMware虚拟机,再安装kali linux ------------------------------------------------------------------ 2.安装 ...

  7. Maven教程(2)--Maven的配置,MyEclipse与Eclipse的配置

    1.修改Maven的 repository的路径 2.找到mirrors 使用阿里云镜像 <mirror> <id>alimaven</id> <name&g ...

  8. OOP 面向对象的理解

    概念 面向对象编程(OOP)是一种编程语言模型,围绕对象是行为.数据.逻辑. 从历史上看,程序被视为一种逻辑程序,它接收输入数据,处理数据并生成输出数据. 基础 面向对象的3大核心思想:封装.继承.多 ...

  9. DotNetCore学习-3.管道中间件

    中间件是用于组成应用程序管道来处理请求和响应的组件.管道内的每个组件都可以选择是否将请求交给下一个组件,并在管道中调用下一个组件之前和之后执行一些操作. 请求委托被用来建立请求管道,并处理每一个HTT ...

  10. 远程登陆Linux服务器

    Xshell 强大的ssh客户端,通过互联网到远程主机.下载:http://www.netsarang.com/download/down_form.html?code=622 1.安装完,新建会话 ...