欢迎来到电脑知识学习网,专业的电脑知识大全学习平台!

手机版

扩容盘量产工具-(扩容盘量产工具怎么用)

网络知识 发布时间:2022-11-23 04:26:13
扩容盘量产工具 (扩容盘量产工具怎么用) 一、Linux磁盘基本信息查看命令

df -h 查看已经在使用或挂载的磁盘信息。查看的是文件系统的大小

ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop1 71M 71M 0 100% /snap/lxd/21029/dev/sda2 976M 107M 803M 12% /boot/dev/loop0 62M 62M 0 100% /snap/core20/1242/dev/loop2 56M 56M 0 100% /snap/core18/2253/dev/loop4 33M 33M 0 100% /snap/snapd/12704/dev/loop3 56M 56M 0 100% /snap/core18/2128/dev/loop5 43M 43M 0 100% /snap/snapd/14066/dev/loop6 68M 68M 0 100% /snap/lxd/21835tmpfs 391M 0 391M 0% /run/user/1000/dev/sdb2 1.8G 5.6M 1.7G 1% /mnt

关键是重要的系统分区挂载:

/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% //dev/sda2 976M 107M 803M 12% /boot

lsblk 查看所有存在的磁盘及分区(不管使用挂载是否),查看的是磁盘的大小

在此sda为默认磁盘,系统也在这块磁盘之中,操作需谨慎在谨慎,尤其是sda3分区。

ubuntu@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 61.9M 1 loop /snap/core20/1242loop1 7:1 0 70.3M 1 loop /snap/lxd/21029loop2 7:2 0 55.5M 1 loop /snap/core18/2253loop3 7:3 0 55.4M 1 loop /snap/core18/2128loop4 7:4 0 32.3M 1 loop /snap/snapd/12704loop5 7:5 0 42.2M 1 loop /snap/snapd/14066loop6 7:6 0 67.2M 1 loop /snap/lxd/21835sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 99M 0 part └─sdb2 8:18 0 1.9G 0 part /mnt

lsblk -f 查看磁盘分区格式,有格式才能挂载成功。

ubuntu@ubuntu:~$ lsblk -fNAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINTloop0 squashfs 0 100% /snap/core20/1242loop1 squashfs 0 100% /snap/lxd/21029loop2 squashfs 0 100% /snap/core18/2253loop3 squashfs 0 100% /snap/core18/2128loop4 squashfs 0 100% /snap/snapd/12704loop5 squashfs 0 100% /snap/snapd/14066loop6 squashfs 0 100% /snap/lxd/21835sda ├─sda1 ├─sda2 ext4 d5001b8f-61a9-4256-a0b9-a80655679a94 802.7M 11% /boot└─sda3 LVM2_member AHD2gO-JnY7-HtBk-fazX-yTYH-9oBh-venh4n └─ubuntu--vg-ubuntu--lv ext4 e5f6d371-d930-4ff3-a798-b01e0ba04d9a 10.9G 36% /sdb ├─sdb1 ext4 ae939992-ca1f-4acc-878e-500f6ce2371b └─sdb2 ext4 e9278c58-39b8-4825-99f6-d055ca818ad0 1.7G 0% /mnt

分区无格式的,通过以下命令格式化分区格式。

#格式化/dev/sdb2为ext4格式。sudo mkfs.ext4 /dev/sdb2#或者sudo mkfs -t ext4 /dev/sdb2二、添加新硬盘直接挂载,或分区后挂载

1:直接挂载整个硬盘

添加一块新硬盘,注:是添加一块新硬盘,不是扩容硬盘。

添加后的硬盘名字信息为:sdb,sbc,sdd....以此类推。

如这里添加一块sdb,没有任何操作,是没法挂载。

ubuntu@ubuntu:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 61.9M 1 loop /snap/core20/1242loop1 7:1 0 70.3M 1 loop /snap/lxd/21029loop2 7:2 0 55.5M 1 loop /snap/core18/2253loop3 7:3 0 55.4M 1 loop /snap/core18/2128loop4 7:4 0 32.3M 1 loop /snap/snapd/12704loop5 7:5 0 42.2M 1 loop /snap/snapd/14066loop6 7:6 0 67.2M 1 loop /snap/lxd/21835sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /sdb 8:16 0 20G 0 disk

格式化,挂载。

#格式化硬盘sudo mkfs.ext4 /dev/sdb#挂载硬盘sudo mount /dev/sdb /mnt/#查看挂载信息df -h

ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop1 71M 71M 0 100% /snap/lxd/21029/dev/sda2 976M 107M 803M 12% /boot/dev/loop0 62M 62M 0 100% /snap/core20/1242/dev/loop2 56M 56M 0 100% /snap/core18/2253/dev/loop4 33M 33M 0 100% /snap/snapd/12704/dev/loop3 56M 56M 0 100% /snap/core18/2128/dev/loop5 43M 43M 0 100% /snap/snapd/14066/dev/loop6 68M 68M 0 100% /snap/lxd/21835tmpfs 391M 0 391M 0% /run/user/1000/dev/sdb 20G 45M 19G 1% /mnt

最简单的方式,挂载成功,完成。

2:硬盘分区后挂载分区

注:分区前,确保此硬盘没有重要数据,或者数据已备份。

先取消挂载,取消挂载后再分区。不取消挂载,也可以分区,但是一旦分区保存完成,此硬盘格式为无格式状态,虽然你还可以在原来挂载目录操作,但机器重启后,挂载自动取消,无法在挂载整个硬盘上去,原整个硬盘数据也全部没有了。分区也只有硬盘取消挂载的情况下,格式化分区才能生效,同时才能挂载上去。

sudo umount /mnt/

分区命令为 fdisk , fdisk -l 可查看所有已分区

#对sdb硬盘分区sudo fdisk /dev/sdb

相关操作参数输入:

#输入m查看命令操作Command (m for help): m#输入n添加新分区Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)#输入P,类型主分区,只能4个主分区,扩展分区一般作用多为创建逻辑分区。扩展分区无法直接被使用的。Select (default p): p#主分区号码,默认即可,从1到4的顺序Partition number (1-4, default 1): #分区开始扇区,默认2048,不要小于2048,否则有些功能异常,不支持2048以下First sector (2048-41943039, default 2048): 2048#接受扇区,即多大空间的分区,自己换算,这里20000000大概为9.5G左右。Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 20000000Created a new partition 1 of type 'Linux' and of size 9.5 GiB.#w保存分区Command (m for help): wThe partition table has been altered.Syncing disks.#p打印显示已存在分区Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux#q退出

有些系统需要重启生效,可以不重启生效的命令

#更新内核分区表sudo partprobe


分区后的名称,以此类推为sdb1,sdb2,sdb3,sdb4.......

格式化,挂载分区

sudo mkfs.ext4 /dev/sdb1sudo mount /dev/sdb1 /mnt/

分区挂载完成,可以操作写入数据了

3:注意事项(扩展)

注:请不要在分区下(如sdb1,sdb2),在创建子分区。虽然创建出来分区有名称类似sdb2p1,sdb2p2,sdb2p3,sdb2p4的名称,保存也成功,但是系统不识别sudo fdisk -l,或者lsblk,都查看不到,没有生效。唯一的作用就是将此分区,格式变成无格式状态,需重新格式化挂载。数据也完了。

本人曾经小白失败经历分享:

一次查看硬盘,觉得sda(主硬盘,系统分区都在这里)下面分区挺大的,尤其是sda3,如下:

sda 8:0 0 500G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 499G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 499G 0 lvm /

觉得可以从sda3中在分区出来一点空间挂载, sudo fdisk /dev/sda3 然后一顿操作。

重启后,玩完,进不了系统,因为ubuntu--vg-ubuntu--lv根目录 / 被分区后,无法识别了,只能格式化此分区。如果格式化此分区,数据也全没了,关键还进不去系统了。当时一身冷汗,还好此服务器没部署服务。所以重装系统了。

这次经历注意两点:

1:不要轻易操作sda主硬盘下的分区。 2:不要在分区下,在创建子分区 三、扩展分区与逻辑分区

分区的时候有主分区(primary)和扩展分区(extended),主分区都知道,那扩展分区什么时候用呢?

主分区只能存在4个,无法再创建了,如果想创建多于4个主分区,这时候就需要创建扩展分区,通过扩展分区创建逻辑分区就可以使用了,和主分区使用没啥区别。注:extended无法直接使用,不可格式化,不可挂载,必须创建逻辑分区后才能使用。扩展分区下可创建多个逻辑分区。

创建扩展分区和逻辑分区

#分区sudo fdisk /dev/sdb

创建扩展分区,Partition type选择e即可,其他步骤一致。

Command (m for help): nPartition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions)Select (default p): ePartition number (2-4, default 2): First sector (20000001-41943039, default 20000768): Last sector, +/-sectors or +/-size{K,M,G,T,P} (20000768-41943039, default 41943039): 30000000Created a new partition 2 of type 'Extended' and of size 4.8 GiB.#p查看扩展分区sdb2完成。Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended

创建逻辑分区,Partition type选择这时只有p和l选择,选择l(逻辑分区),其他步骤一致

Command (m for help): nPartition type p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5)Select (default p): lAdding logical partition 5First sector (20002816-30000000, default 20002816): Last sector, +/-sectors or +/-size{K,M,G,T,P} (20002816-30000000, default 30000000): Created a new partition 5 of type 'Linux' and of size 4.8 GiB.#p查看逻辑分区sdb5完成。Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended/dev/sdb5 20002816 30000000 9997185 4.8G 83 Linux

扩展分区默认sdb5开始命名,表示在4个主分区以后。逻辑分区好后,可以格式化挂载了。

sudo mkfs.ext4 /dev/sdb5sudo mount /dev/sdb5 /mnt/df -h

查看结果如下,挂载成功,可以使用了。

sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 9.5G 0 part ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 4.8G 0 part /mnt四、标准分区扩容(非LVM)

在同一块硬盘下的标准扩容,相对比较简单。步骤为删除需要扩容的分区编号,重新分区编号,重新挂载即可。

这里以sdb1为例,已挂载至/mysql路径,总共有20G,还有将近10G空闲,将空闲的分配给sdb1。

sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 9.8G 0 part /mysql

为了测试数据完整性,在sdb1创建一个文件test.txt,

cd /mysql/sudo vim test.txt

内容为test,mysql,12345678。

ubuntu@ubuntu:/$ cat /mysql/test.txttest,mysql,12345678

取消挂载

sudo umount /mysql

重新分区

sudo fdisk /dev/sdb

删除分区,再重新分区

#删除分区,选择所要扩展分区的编号,这里只有1个,默认删除第一个sdb1.Command (m for help): dSelected partition 1Partition 1 has been deleted.#重新分区Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)#选择主分区Select (default p): p#编号1,还是原来的sdb1.Partition number (1-4, default 1): First sector (2048-41943039, default 2048): #结束大小不要小于原来的大小,否则容易造成数据改变或丢失,原来时10G,这里改为大概15GLast sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 30780000Created a new partition 1 of type 'Linux' and of size 14.7 GiB.Partition #1 contains a ext4 signature.#按 N 保留 xfs 签名,移除的话分区的 UUID 会变更。Do you want to remove the signature? [Y]es/[N]o: nCommand (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.

扩容完成,注:不需要重新格式化,否则数据丢失,直接挂载使用即可。

挂载查看原来数据是否还在,原来数据还在,没有改变。至于为什么,涉及到磁盘的构成,有柱面,扇区,簇,编号之类的,有兴趣自己可以研究。

ubuntu@ubuntu:/$ sudo mount /dev/sdb1 /mysql/ubuntu@ubuntu:/mysql$ cat mysql/test.txt test,mysql,12345678

lsblk查看大小,sdb1由原来的10G左右,扩容为15G左右。扩容完成

sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 14.7G 0 part /mysql五、系统根分区(LVM)扩容

主要扩容系统根分区。如以下的系统的sda3,ubuntu--vg-ubuntu--lv根分区。

需谨慎操作,涉及到系统相关磁盘分区。

sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /

1:物理卷,卷组,逻辑卷

扩展之前。需要了解的三个概率:物理卷,卷组,逻辑卷。引入这个概念,可以解除物理隔离的限制。

物理卷:Physical volume 简称 PV

物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可以是一个完整的硬盘,也可以是硬盘中的某一个分区。

卷组 - Volume group 简称 VG

卷组是建立在物理卷之上,一个卷组中可以包含一个或者多个物理卷。

逻辑卷 - Logical volume 简称 LV

逻辑卷类似于非 LVM 系统中的硬盘分区,在逻辑卷之上可以建立文件系统 (比如 /home 或者 /usr 等)。

加上还有其他元素(有兴趣自己深究),一起构成LVM(Logical Volume Manager)逻辑卷管理。

总结:多个磁盘/分区/raid-->多个物理卷PV-->合成卷组VG-->从VG划分出逻辑卷LV-->格式化LV,挂载使用。

功能

PV管理命令

VG管理命令

LV管理命令

scan 扫描

pvscan

vgscan

lvscan

create 创建

pvcreate

vgcreate

vcreate

display 显示

pvdisplay

vgdisplay

lvdisplay

remove 移除

pvremove

vgremove

lvremove

extend 扩展


vgextend

lvextend

reduce 减少


vgreduce

lvreduc


举个通俗例子:多个磁盘/分区就是多袋小麦,创建物理卷(PV)就是分别磨成面粉,合成卷组(VG)就是把面粉和成一大团面团,逻辑卷(LV)就是分出去的一个个小坨小面团分别做包子饺子之类其他功能的。想要扩容给小面团(LV),就需要从大面条(VG)里面取出来补。需要扩容的根分区就是那一坨小面团。

2:同一块硬盘扩容根分区

如下:总磁盘30G大小,根分区20G,有10G空闲需要分配给ubuntu--vg-ubuntu--lv根分区。

sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /

从根分区的逻辑卷管理(lvm)的名称可以看出,已存在的卷组(VG)为ubuntu--vg,和逻辑卷(LV)为ubuntu--lv,所有想要扩容,只要增加卷组(VG)的空间,然后分配给逻辑卷(LV)即可。

2.1:查看卷组(VG)和逻辑卷(LV)信息

也可以自行查看存在的卷组(VG)和逻辑卷(LV)。

#查看卷组,Free PE 为空闲可分配的空间。ubuntu@ubuntu:~$ sudo vgdisplay [sudo] password for ubuntu: --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <19.00 GiB PE Size 4.00 MiB Total PE 4863 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 0 / 0 VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX#查看逻辑卷 ubuntu@ubuntu:~$ sudo lvdisplay --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv LV Name ubuntu-lv VG Name ubuntu-vg LV UUID XND7LS-kWJL-LISf-HmrN-eK7S-X8ea-2Lazo7 LV Write Access read/write LV Creation host, time ubuntu-server, 2021-11-27 09:39:38 +0000 LV Status available # open 1 LV Size <19.00 GiB Current LE 4863 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0

2.2:创建分配分区(获取小麦原材料)

为了给增加卷组(VG)的空闲可用空间,先创建一个分区,将剩下的分配给分区。

sudo fdisk /dev/sda

n分区,全部默认回车即可,记住主分区为4,即sda4。

Command (m for help): nPartition number (4-128, default 4): First sector (41940992-62914526, default 41940992): Last sector, +/-sectors or +/-size{K,M,G,T,P} (41940992-62914526, default 62914526): Created a new partition 4 of type 'Linux filesystem' and of size 10 GiB.Command (m for help): pDisk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: gptDisk identifier: 0EC75B7E-5AD4-4971-B452-57826F74E4FDDevice Start End Sectors Size Type/dev/sda1 2048 4095 2048 1M BIOS boot/dev/sda2 4096 2101247 2097152 1G Linux filesystem/dev/sda3 2101248 41940991 39839744 19G Linux filesystem/dev/sda4 41940992 62914526 20973535 10G Linux filesystemCommand (m for help): wThe partition table has been altered.Syncing disks.

2.3:创建物理卷PV(磨成面粉)

sudo pvcreate /dev/sda4

显示如下:

ubuntu@ubuntu:~$ sudo pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created.

注意:老的Linux在创建PV时,需要将分区类型改为Linux

LVM(8e)。但新的系统已经非常智能,即使默认的Linux分区(83),也可以创建PV。具体过程是fdisk 过程中,选择参数

l:查看所有分区类型代码,及 t:修改分区类型代码,选择代码8e类型即可。

2.4:添加到卷组VG中(大面团)

将物理卷PV添加到卷组VG中(面粉加到大面团中),卷组VG这里已有,上面查询得知名称为ubuntu-vg

sudo vgextend ubuntu-vg /dev/sda4

显示如下:

ubuntu@ubuntu:~$ sudo vgextend ubuntu-vg /dev/sda4Volume group "ubuntu-vg" successfully extended

再次查看卷组VG,Free PE / Size 已经有了10G的空闲空间可分配了。

ubuntu@ubuntu:~$ sudo vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 28.99 GiB PE Size 4.00 MiB Total PE 7422 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 2559 / <10.00 GiB VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX

2.5:分配空间给逻辑卷根LV(小面团)

从卷组VG分配空间给逻辑卷根LV目录(从大面团取出可用的给需要的小面团),上面可查询可知,LV名称为ubuntu-lv,扩容命令及参数参考如下:

#分配10G ,-L指定逻辑卷的大小,单位为“kKmMgGtT”字节sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv#或者100%空闲分配, -l指定逻辑卷的大小(LE数)sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv#或者逻辑卷扩展至30Gsudo lvextend -L 30G /dev/ubuntu-vg/ubuntu-lv #以上都可以加上参数-r ,将逻辑卷的文件系统扩展(如:房子建好了,需要装修,不需要指定大小)

刚开始不够10G,多少有点误差,所有分配9.9G就可以了。显示successfully成功,显示如下:

ubuntu@ubuntu:~$ sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv Insufficient free space: 2560 extents needed, but only 2559 availableubuntu@ubuntu:~$ sudo lvextend -L +9.9G /dev/ubuntu-vg/ubuntu-lv Rounding size to boundary between physical extents: 9.90 GiB. Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to <28.90 GiB (7398 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.

2.6:resize2fs重新计算磁盘大小

执行之后并不会立马生效需要执行,需要重新计算磁盘大小。这时候只能查看lsblk磁盘已增大,但是df -h里面文件系统没有变化,所以需要操作这一步生效。

resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

显示如下成功:

ubuntu@ubuntu:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv resize2fs 1.45.5 (07-Jan-2020)Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing requiredold_desc_blocks = 3, new_desc_blocks = 4The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7575552 (4k) blocks long.

2.7:查看磁盘大小

df -h或者lsblk可查看,已经扩容成功为30G.

df -h/dev/mapper/ubuntu--vg-ubuntu--lv 29G 6.8G 21G 26% /lsblksda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot├─sda3 8:3 0 19G 0 part │ └─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /└─sda4 8:4 0 10G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /

3:添加硬盘扩容根分区

3.1:添加新硬盘sdb

lsblk查看已显示磁盘

sdb 8:16 0 20G 0 disk


3.2:创建物理卷PV

你可以分区后创建物理卷,也可以整块硬盘创建物理卷PV,这里直接将整块创建PV,将所有空间给系统根分区扩容。

sudo pvcreate /dev/sdb

下面步骤与上面添加类似

3.3:添加到卷组VG

sudo vgextend ubuntu-vg /dev/sdb#查看free PE时候添加成功。sudo vgdisplay

3.4:分配空间给逻辑卷根LV

sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv

3.5:重新计算磁盘,分配给系统文件

sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

3.6:查看磁盘大小

df -h 和 lsblk 查看大小

ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 39G 6.9G 30G 19% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop0 56M 56M 0 100% /snap/core18/2128/dev/loop2 71M 71M 0 100% /snap/lxd/21029/dev/loop1 62M 62M 0 100% /snap/core20/1242/dev/sda2 976M 107M 803M 12% /boot/dev/loop3 43M 43M 0 100% /snap/snapd/14066/dev/loop4 68M 68M 0 100% /snap/lxd/21835/dev/loop5 56M 56M 0 100% /snap/core18/2253/dev/loop6 33M 33M 0 100% /snap/snapd/12704tmpfs 391M 0 391M 0% /run/user/1000ubuntu@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 55.4M 1 loop /snap/core18/2128loop1 7:1 0 61.9M 1 loop /snap/core20/1242loop2 7:2 0 70.3M 1 loop /snap/lxd/21029loop3 7:3 0 42.2M 1 loop /snap/snapd/14066loop4 7:4 0 67.2M 1 loop /snap/lxd/21835loop5 7:5 0 55.5M 1 loop /snap/core18/2253loop6 7:6 0 32.3M 1 loop /snap/snapd/12704sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot├─sda3 8:3 0 19G 0 part │ └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /└─sda4 8:4 0 10G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /sdb 8:16 0 20G 0 disk └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm / 六、缩减LVM空间

重要事情说三遍:

正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险

正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险

正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险

xfs类型不可以直接缩减,只扩不减。如果是ext2,ext3,ext4可以在线缩减,如果xfs盘要缩小就要删除后重新添加

1:非系统根分区LVM缩容

四步,这里以名称为 lv 为例子,这里是缩减至多少大小,不是缩减了多少。

1、取消挂载

系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作

系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作

系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作

umount /lv/ #取消挂载目录

2、e2fsck检查修复磁盘完整性

e2fsck -f /dev/vg0/lv0

3、缩小系统文件空间,即df -h查看的空间

不取消挂载,这步会报错,注:一定先减文件系统,再减逻辑卷

resize2fs /dev/vg0/lv0 10G

4、缩小磁盘空间,即lsblk查看的空间

不执行上面的操作,直接执行这步,虽然成功,但是会操作数据丢失,系统无法启动。

lvreduce -L 10G /dev/vg0/lv0

5、重新挂载

mount -a

最后查看lvs空间

lvs

扩展:

加上参数-r 可以一步到位,即将上面的3和4步骤一起执行。

lvreduce命令使用-L选项减少空间,-r选项减少文件系统空间,实现动态调整(这是ext4文件系统)

lvreduce -L 10G -r /dev/vg0/lv0


2:系统根分区LVM缩容

跟上面步骤一致,唯一的区别是没法在线取消挂载,所以需要进入救援模式(单用户模式)

救援模式分两种,一种是正常启动系统进入,另一种是加载镜像是进入。

缩容系统根分区必须是挂载镜像时的救援模式才可以操作。

1、正常启动系统进入救援模式

启动按shift键,出现选择系统界面,按e。找到以单词 linux 开头的行,并在该行的末尾添加以下内容(要到达末尾,只需按下 CTRL+e 或使用 END 键或左右箭头键):

systemd.unit=rescue.target

添加完成后,只需按下 CTRL+x 或 F10 即可继续启动救援模式。几秒钟后,你将以 root 用户身份进入救援模式(单用户模式)

2、挂载iso或者启动盘进入救援模式

系统不同,进入也不同,本人ubuntu20.04,没有找到合适的方式,其他的系统自行研究

责任编辑:电脑知识学习网

网络知识