Ubuntu系统下扩展LVM根目录的方法

前言

最近手头一台运行在 Hyper-V 下面抓数据的服务器 (Ubuntu 16.04) 磁盘空间不够了,之前也没有把数据单独放到一个分区,所以只能想办法把根目录给搞大一点。之前没有处理过这样的问题,网上搜了很多资料,现在把拓展方法记录,分享出来。

建议在操作之前做好备份工作

步骤概览

  1. 调大物理磁盘
  2. 确定要操作的磁盘
  3. 扩展 LVM 逻辑分区所在的物理拓展分区
  4. 新增 LVM 逻辑分区
  5. 新分区合并到相应 Volumn Group
  6. 更新文件系统

调大物理磁盘

虚拟机关机,然后直接在虚拟机管理里面操作。

现在把磁盘从 100G 调整到了 300G

确定要操作的磁盘

先看下磁盘使用情况,运行命令

root@vm003:~# df -h
Filesystem  Size Used Avail Use% Mounted on
udev   3.9G 0 3.9G 0% /dev
tmpfs   798M 8.6M 789M 2% /run
/dev/mapper/Ubuntu-root 94G 88G 1.9G 98% /
tmpfs   3.9G 0 3.9G 0% /dev/shm
tmpfs   5.0M 0 5.0M 0% /run/lock
tmpfs   3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1  472M 382M 66M 86% /boot
tmpfs   100K 0 100K 0% /run/lxcfs/controllers
tmpfs   798M 0 798M 0% /run/user/0

虽然我们已经把物理磁盘调整到了 300G,但是根目录还是100G的样子,已用 98%

运行命令

root@vm003:~# fdisk -l
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 209713151 208711682 99.5G 5 Extended
/dev/sda5 1001472 209713151 208711680 99.5G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Disk /dev/mapper/Ubuntu-root: 95.5 GiB, 102563315712 bytes, 200318976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/Ubuntu-swap_1: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

可以看到 /dev/sda 已经确实被调整到了300GiB,只是系统还没用到。

也知道了我们要操作 /dev/sda

扩大 LVM 逻辑分区所在的物理分区

运行命令

root@vm003:~# parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print # 查看分区
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 322GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 512MB 511MB primary ext2  boot
 2 513MB 107GB 107GB extended
 5 513MB 107GB 107GB logical  lvm

(parted) resizepart 2 # 调整 sda2 分区大小
End? [107GB]? -0 # 直接充满
(parted) print # 再次查看
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 322GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
 1 1049kB 512MB 511MB primary ext2  boot
 2 513MB 322GB 322GB extended
 5 513MB 107GB 107GB logical  lvm

(parted) q # 完成退出
Information: You may need to update /etc/fstab.

现在我们已经把 /dev/sda2 给拓展出来了

新增 LVM 逻辑分区

运行命令

root@vm003:~# fdisk /dev/sda

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p # 查看现在的分区情况
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 629145599 628144130 299.5G 5 Extended
/dev/sda5 1001472 209713151 208711680 99.5G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): n # 新增分区,选择逻辑分区,起止点看情况输入,默认值是填充满整个磁盘

All space for primary partitions is in use.
Adding logical partition 6
First sector (209715200-629145599, default 209715200):
Last sector, +sectors or +size{K,M,G,T,P} (209715200-629145599, default 629145599):

Created a new partition 6 of type 'Linux' and of size 200 GiB.

Command (m for help): p # 查看新增的分区
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device Boot Start End Sectors Size Id Type
/dev/sda1 *  2048 999423 997376 487M 83 Linux
/dev/sda2  1001470 629145599 628144130 299.5G 5 Extended
/dev/sda5  1001472 209713151 208711680 99.5G 8e Linux LVM
/dev/sda6 209715200 629145599 419430400 200G 83 Linux

Partition 2 does not start on physical sector boundary.

Command (m for help): t # 改变分区类型为 Linux LVM
Partition number (1,2,5,6, default 6): 6 # sda6
Partition type (type L to list all types): 8e # LVM 类型的 Id 代码

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): p # 再次查看分区情况
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xa88f1366

Device Boot Start End Sectors Size Id Type
/dev/sda1 *  2048 999423 997376 487M 83 Linux
/dev/sda2  1001470 629145599 628144130 299.5G 5 Extended
/dev/sda5  1001472 209713151 208711680 99.5G 8e Linux LVM
/dev/sda6 209715200 629145599 419430400 200G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): wq # 确认没有问题,保存退出

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

新分区合并到相应 Volumn Group

运行命令

root@vm003:~# vgdisplay
 --- Volume group ---
 VG Name  Ubuntu
 System ID
 Format  lvm2

可以看出我们要操作的VG Name 为 Ubuntu,记录下来。

接着运行命令

root@vm003:~# vgextend Ubuntu /dev/sda6 # /dev/sda6 是刚刚增加的 LVM 分区
 Device /dev/sda6 not found (or ignored by filtering).
 Unable to add physical volume '/dev/sda6' to volume group 'Ubuntu'.

呃,,,提示没有找到 /dev/sda6 这个设备,还是重启一下好了。

root@vm003:~# reboot

重启后再次执行

root@vm003:~# vgextend Ubuntu /dev/sda6 # /dev/sda6 是刚刚增加的 LVM 分区
 Physical volume "/dev/sda6" successfully created
 Volume group "Ubuntu" successfully extended

再查看一下 Volumn Group 的状态,运行命令

root@vm003:~# vgs
 VG #PV #LV #SN Attr VSize VFree
 Ubuntu 2 2 0 wz--n- 299.52g 200.00g

确实加进去了。

然后运行

root@vm003:~# lvdisplay
 --- Logical volume ---
 LV Path  /dev/Ubuntu/root
 LV Name  root
 VG Name  Ubuntu

我们知道了 Ubuntu VG 的 LV Path 是 /dev/Ubuntu/root,记录下来。

然后运行

root@vm003:~# lvresize -l +100%FREE /dev/Ubuntu/root # /dev/Ubuntu/root 是 LV Path
 Size of logical volume Ubuntu/root changed from 95.52 GiB (24453 extents) to 295.52 GiB (75652 extents).
 Logical volume root successfully resized.

这就成功啦。

警告: 如果操作时出现下面这样的 warning,就说明现在 logic volumn 的总大小还不对,resize 不但不增加空间,反而在缩小空间,如果继续操作下去,必将丢失数据。应立即停止!按 n 取消。

WARNING: Reducing active and open logical volume to 32.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce root? [y/n]*

更新文件系统

最后一步,运行命令

root@vm003:~# resize2fs -p /dev/mapper/Ubuntu-root # /dev/mapper/Ubuntu-root 是从 df 命令看到的文件系统信息
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/Ubuntu-root is mounted on /; on-line resizing required
old_desc_blocks = 6, new_desc_blocks = 19

The filesystem on /dev/mapper/Ubuntu-root is now 77467648 (4k) blocks long.

这个过程可能会花几分钟时间,耐心等待就好了。

然后运行 df 命令查看磁盘使用

root@vm003:~# df -h
Filesystem  Size Used Avail Use% Mounted on
udev   3.9G 0 3.9G 0% /dev
tmpfs   798M 8.6M 789M 2% /run
/dev/mapper/Ubuntu-root 291G 88G 191G 32% /
tmpfs   3.9G 0 3.9G 0% /dev/shm
tmpfs   5.0M 0 5.0M 0% /run/lock
tmpfs   3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1  472M 382M 66M 86% /boot
tmpfs   100K 0 100K 0% /run/lxcfs/controllers
tmpfs   798M 0 798M 0% /run/user/0

大功告成!

参考:

http://www.jb51.net/article/139565.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

您可能感兴趣的文章:

  • linux LVM快照创建详细步骤(使用PE完成)
  • Centos7 利用LVM实现动态扩容的方法
  • linux系统下创建lvm挂载到指定目录的操作步骤
  • linux中Centos7的LVM磁盘扩容问题
  • 动态在线扩容root根分区大小的方法详解
(0)

相关推荐

  • linux中Centos7的LVM磁盘扩容问题

    系统提示我容量不足 就利用LVM的方式进行扩容吧. 系统是RHEL7(centos7差不多一样) 先查看磁盘信息及根目录 fdisk -l 注意:sda为硬盘,需要扩容的是系统的根目录,这里RHEL的系统根目录为/dev/mapper/rhel-root(系统不一样,根目录也不一样) 关闭系统,在vmware->设置->硬盘->扩展->输入数字大于当前系统内存->点击扩展 开机再查看磁盘信息 fdisk -l 注意:可以看出sda磁盘增加了,但是根目录还没有,也就是说增加出来

  • linux系统下创建lvm挂载到指定目录的操作步骤

    1 .背景 在企业中有时我们为方便安装软件.数据的管理,需要把安装软件.数据放到固定目录下,磁盘满了方便扩展,这里假如需要一个/data目录存放数据,并单独进行挂载. 2.操作步骤 2.1  划分磁盘 2.2 创建PV [root@centos-6 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created 扫描系统PV可以使用pvscan查看新建的PV [root@centos-6 ~]# pvsca

  • 动态在线扩容root根分区大小的方法详解

    前言 本文主要介绍了关于动态在线扩容root根分区大小的相关内容,分享出来供大家参考学习,下面话不都说了,来一起看看详细的介绍吧. qemu-img resize yourname.img +10G 首先要用命令增加分区大小,针对qemu-kvm使用以上命令 LVM 情境描述:虚拟机用的磁盘 image 已经扩容,或对应于物理机的话,就是磁盘的容量已经增加了. 然后我们希望把扩大的容量用起来,而且不影响现有的文件系统(不格盘). 实际使用过程中,我们有时候需要对虚拟机镜像的硬盘扩容,比如,一开始

  • Centos7 利用LVM实现动态扩容的方法

    摘要:最近项目组里来了很多新人,对linux分区及各种应用使用的分区不了解,导致测试数据库时突然发现某一个分区被写满了,不得不重装OS.实在看不下去了,特此分享我的一些利用LVM实现动态扩容的心得,希望对大家有帮助. 知识储备: LVM是逻辑盘卷管理(Logical VolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块

  • linux LVM快照创建详细步骤(使用PE完成)

    在VM9的虚拟机下完成操作系统centos5.8 外挂10G硬盘. 1.首先将硬盘sdb分4个区每个区大小200M,分别是sdb{5,6,7,8}.后将四个分区建立pv 2.之后把pv加入vg此处引入PE的概念. 由于vg是多个PE(块)组成的,而且每个vg块的PE最大数量是65534.默认每个PE的大小是4m 也就是说默认的每个vg最大也就是4m乘65534=256G,因此PE块的大小决定了最终vg的大小. 此处我们定义PE块的大小为16m.由于每个pv的大小是200m总共800m因此总共的p

  • Ubuntu系统下扩展LVM根目录的方法

    前言 最近手头一台运行在 Hyper-V 下面抓数据的服务器 (Ubuntu 16.04) 磁盘空间不够了,之前也没有把数据单独放到一个分区,所以只能想办法把根目录给搞大一点.之前没有处理过这样的问题,网上搜了很多资料,现在把拓展方法记录,分享出来. 建议在操作之前做好备份工作 步骤概览 调大物理磁盘 确定要操作的磁盘 扩展 LVM 逻辑分区所在的物理拓展分区 新增 LVM 逻辑分区 新分区合并到相应 Volumn Group 更新文件系统 调大物理磁盘 虚拟机关机,然后直接在虚拟机管理里面操作

  • ubuntu系统下切换python版本的方法

    目录 一.概述 二.使用update-alternatives更新python版本 2.1.查看ubuntu下的所有python版本 2.2.更新update-alternatives替代列表 2.3.查看update-alternatives下的python版本 2.4.切换python版本 2.5.删除python版本 总结 一.概述 在ubuntu环境下进行嵌入式开发,我们在进行不同的项目开发时,可能会遇到python环境不统一的情况.这时,我们可以通过update-alternative

  • ubuntu系统下 python链接mysql数据库的方法

    进入root 权限下 apt-get install mysql-server apt-get install mysql-client 创建数据库 mysql -u root -p passward 链接数据库 create database basename use basename 如果数据库存在要进行改动可以直接使用 mysql -u root -p passward basename 创建表 create table latest_face( id int(11) not null a

  • Ubuntu与windows双系统下共用MySQL数据库的方法

    双系统配置及MySQL数据库存储情境:Windows XP下d:\mysql\data中存有MySQL数据库,Linux系统为Ubuntu Server 9.10. 双系统安装完毕,利用GURB启动到Ubuntu Server 9.10,以管理员身份登录. 1)并读写方式(RW)认方式挂载Windows中D分区至/media/wind. 2)更改/media/wind/mysql/data权限 sudo chow mysql:mysql /media/wind/mysql/data (其中两个m

  • ubuntu系统下使用pm2设置nodejs开机自启动的方法

    1.安装pm2 : npm install pm2 -gd 这时在命令行下执行pm2命令可能找不到,需要执行如下命令 1.创建软链接:ln -s /home/XXX/node-node-v6.11.5-linux-x64/bin/pm2 /usr/local/bin/pm2 2.一下命令需要在root用户下执行: sudo pm2 start ./bin/www sudo pm2 save sudo pm2 startup sudo pm2 save 3.重启系统试一下:如果不行执行 chatt

  • Ubuntu samba下配置共享文件夹的方法

    文件放在ubuntu下,通过samba共享到windows,避免windows下不支持软链接的问题. 虚拟机安装的ubuntu系统,联网方式为NAT # 更新源 sudo apt-get update # 安装samba sudo apt-get install samba samba-common sudo apt-get install cifs-utils<strong> </strong> # 创建共享的目录 sudo mkdir /home/share sudo chmo

  • ubuntu系统下Python虚拟环境的安装和使用教程

    前言:进行python项目开发的时候,由于不同的项目需要使用不同的资源包和相关的配置,因此创建多个python虚拟环境,在虚拟环境下开发就显得很有必要. 安装虚拟环境 •步骤: •打开Linux终端(快捷键Ctrl+Alt+T),输入命令: sudo apt install python-virtualenv sudo easy_install virtualenvwrapper 说明:以上两条命令逐条执行,完成后虚拟环境安装完毕. 或者可以使用pip安装,前提是安装了pip,一般python自

  • ubuntu系统theano和keras的安装方法

    说明:系统是unbuntu14.04LTS,32位的操作系统,以前安装了python3.4,现在想要安装theano和keras.步骤如下: 1,安装pip sudo apt-get install python3-setuptools sudo easy_install3 pip 2,安装g++  sudo apt-get install g++ 采用上述命令安装g++,安装完成后可用g++ -version查看是否安装完成.注意,如果没有安装g++,在import theano时会出现以下错

  • deepin 2014系统下安装mysql数据库的方法步骤

    Deepin 2014下载及安装 Deepin 2014的下载及安装大家可以参考下面这两篇文章,一篇为正式版的下载与安装,另外一篇文章给大家分享了deepin 2014用U盘安装的方法步骤,需要的朋友们可以参考学习: Deepin 2014.2正式版下载 和安装教程 deepin 2014 U盘安装方法及注意事项详解 好了,下面进入本文的重要内容:deepin 2014系统下安装mysql数据库的方法步骤,一起来看看吧. 一:安装mysql 打开deepin terminal: 在此过程中会提示

随机推荐