您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > linux百科

Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程

时间:2022-04-20 09:37:32  来源:  作者:运维笔记ywbj

一、linux磁盘基本信息查看命令

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

ubuntu@ubuntu:~$ df -h
Filesystem                         Size  Used AvAIl Use% Mounted on
udev                               1.9G     0  1.9G   0% /dev
tmpfs                              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/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              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/21835
tmpfs                              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 MOUNTPOINT
loop0                       7:0    0 61.9M  1 loop /snap/core20/1242
loop1                       7:1    0 70.3M  1 loop /snap/lxd/21029
loop2                       7:2    0 55.5M  1 loop /snap/core18/2253
loop3                       7:3    0 55.4M  1 loop /snap/core18/2128
loop4                       7:4    0 32.3M  1 loop /snap/snapd/12704
loop5                       7:5    0 42.2M  1 loop /snap/snapd/14066
loop6                       7:6    0 67.2M  1 loop /snap/lxd/21835
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  /
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 -f
NAME                      FSTYPE      LABEL UUID                                   FSAVAIL FSUSE% MOUNTPOINT
loop0                     squashfs                                                       0   100% /snap/core20/1242
loop1                     squashfs                                                       0   100% /snap/lxd/21029
loop2                     squashfs                                                       0   100% /snap/core18/2253
loop3                     squashfs                                                       0   100% /snap/core18/2128
loop4                     squashfs                                                       0   100% /snap/snapd/12704
loop5                     squashfs                                                       0   100% /snap/snapd/14066
loop6                     squashfs                                                       0   100% /snap/lxd/21835
sda                                                                                               
├─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:~$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 61.9M  1 loop /snap/core20/1242
loop1                       7:1    0 70.3M  1 loop /snap/lxd/21029
loop2                       7:2    0 55.5M  1 loop /snap/core18/2253
loop3                       7:3    0 55.4M  1 loop /snap/core18/2128
loop4                       7:4    0 32.3M  1 loop /snap/snapd/12704
loop5                       7:5    0 42.2M  1 loop /snap/snapd/14066
loop6                       7:6    0 67.2M  1 loop /snap/lxd/21835
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  /
sdb                         8:16   0   20G  0 disk 

格式化,挂载。

#格式化硬盘
sudo mkfs.ext4 /dev/sdb
#挂载硬盘
sudo mount /dev/sdb /mnt/
#查看挂载信息
df -h
ubuntu@ubuntu:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               1.9G     0  1.9G   0% /dev
tmpfs                              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/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              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/21835
tmpfs                              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): n
Partition 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): 20000000

Created a new partition 1 of type 'Linux' and of size 9.5 GiB.
#w保存分区
Command (m for help): w
The partition table has been altered.
Syncing disks.
#p打印显示已存在分区
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec

Device     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/sdb1
sudo 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): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): e
Partition 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): 30000000

Created a new partition 2 of type 'Extended' and of size 4.8 GiB.
#p查看扩展分区sdb2完成。
Command (m for help): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec

Device     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): n
Partition type
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l

Adding logical partition 5
First 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): p
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfc5ea7ec

Device     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/sdb5
sudo 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.txt
test,mysql,12345678

取消挂载

sudo umount /mysql

重新分区

sudo fdisk /dev/sdb

删除分区,再重新分区

#删除分区,选择所要扩展分区的编号,这里只有1个,默认删除第一个sdb1.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
#重新分区
Command (m for help): n
Partition 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,这里改为大概15G
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 30780000

Created 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: n

Command (m for help): w

The 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)逻辑卷管理。

Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程

 

总结:多个磁盘/分区/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): n
Partition 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): p
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 0EC75B7E-5AD4-4971-B452-57826F74E4FD

Device        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 filesystem

Command (m for help): w
The 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/sda4
Volume 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
#或者逻辑卷扩展至30G
sudo 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 available
ubuntu@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 required
old_desc_blocks = 3, new_desc_blocks = 4
The 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% /

lsblk
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 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 -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                               1.9G     0  1.9G   0% /dev
tmpfs                              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/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                              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/12704
tmpfs                              391M     0  391M   0% /run/user/1000
ubuntu@ubuntu:~$ lsblk 
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 55.4M  1 loop /snap/core18/2128
loop1                       7:1    0 61.9M  1 loop /snap/core20/1242
loop2                       7:2    0 70.3M  1 loop /snap/lxd/21029
loop3                       7:3    0 42.2M  1 loop /snap/snapd/14066
loop4                       7:4    0 67.2M  1 loop /snap/lxd/21835
loop5                       7:5    0 55.5M  1 loop /snap/core18/2253
loop6                       7:6    0 32.3M  1 loop /snap/snapd/12704
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   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
Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程

 

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

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

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



Tags:Linux   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08  Search: Linux  点击:(10)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25  Search: Linux  点击:(16)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27  Search: Linux  点击:(54)  评论:(0)  加入收藏
2024 年 Linux 和开源的六大趋势预测
让我们尝试预测未来吧!新的一年快乐,朋友们 ✨2024 年的钟声已经敲过,我们有必要去预见一下将塑造本年度的各种潮流。我们不能预见未来,所以无法精确预知将会发生什么,但根据目前...【详细内容】
2024-01-09  Search: Linux  点击:(95)  评论:(0)  加入收藏
Linux 启动过程详解
第 1 步 - 当我们打开电源时,BIOS(基本输入/输出系统)或UEFI(统一可扩展固件接口)固件从非易失性存储器加载,并执行POST(开机自检)。第 2 步 - BIOS/UEFI 检测连接到系统的设备,包括...【详细内容】
2024-01-02  Search: Linux  点击:(93)  评论:(0)  加入收藏
对 Bash 感到厌倦?教你如何在 Linux 中更改默认 Shell
Bash 并不是唯一可供选择的 Shell。还存在数量众多的 Shell,它们都有一些独特的特性,例如 Zsh、Fish、Ksh 和 Xonsh。在你的系统中,你可以同时安装多个 Shell。要想将另一个 Sh...【详细内容】
2023-12-14  Search: Linux  点击:(206)  评论:(0)  加入收藏
如何解决Linux 服务器性能问题?
Linux 服务器以其稳定性和可靠性而闻名,但与任何系统一样,它们有时也会遇到性能问题。当您的 Linux 服务器的性能开始下降时,必须及时解决问题以确保应用程序和服务的顺利运行...【详细内容】
2023-12-14  Search: Linux  点击:(241)  评论:(0)  加入收藏
适用于 Linux 的 LibreOffice 替代品
LibreOffice 是一个出色的开源文档套件。它预装在许多 Linux 发行版上,应该足以满足大多数用户的需求。然而,有些人可能不喜欢它的用户界面和功能集。某些用户可能想尝试其他...【详细内容】
2023-11-30  Search: Linux  点击:(127)  评论:(0)  加入收藏
十个最佳免费 Linux 防火墙工具
概述防火墙是保护网络边界的关键。防火墙会阻止敏感端口并过滤传入和传出流量,以阻止恶意连接并确保不会发生未经请求的数据交换。在自由开源软件的世界里,有很多防火墙解决方...【详细内容】
2023-11-28  Search: Linux  点击:(175)  评论:(0)  加入收藏
Linux 内核调度器源码解析:从调度入口到挑选下一个进程
在Linux内核中,调度器(scheduler)扮演着至关重要的角色,决定了哪个进程将获得CPU的执行时间。本文将深入剖析内核中调度器的代码实现,从入口函数开始,一步步分析如何选择下一个要...【详细内容】
2023-11-27  Search: Linux  点击:(274)  评论:(0)  加入收藏
▌简易百科推荐
微软 Win11 Linux 子系统(WSL)发布 2.2.2 版本
IT之家 4 月 8 日消息,微软近日更新 Windows Subsystem for Linux(WSL),最新 2.2.2 版本中带来了诸多改进,重点更新了 nft 规则,可以让 IPv6 流量通过 Linux 容器。图源: dev.to,AI...【详细内容】
2024-04-08    IT之家  Tags:Linux   点击:(10)  评论:(0)  加入收藏
从原理到实践:深入探索Linux安全机制
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。前言本文将从用户和权限管理、文件系统...【详细内容】
2024-03-27  凡夫编程  微信公众号  Tags:Linux安全   点击:(24)  评论:(0)  加入收藏
在Linux系统中,如何处理内存管理和优化的问题?
本文对 Linux 内存管理和优化的一些高级技巧的详细介绍,通过高级的内存管理技巧,可以帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。在...【详细内容】
2024-03-26  编程技术汇  微信公众号  Tags:Linux   点击:(18)  评论:(0)  加入收藏
Linux 6.9-rc1 内核发布:AMD P-State 首选核心、BH 工作队列
IT之家 3 月 25 日消息,Linus Torvalds 宣布,Linux 6.9 内核的首个 RC(候选发布)版 Linux 6.9-rc1 发布。▲ Linux 6.9-rc1Linus 表示,Linux 内核 6.9 看起来是一个“相当正常”...【详细内容】
2024-03-25    IT之家  Tags:Linux   点击:(16)  评论:(0)  加入收藏
轻松实现Centos系统的软件包安装管理:yum指令实战详解
yum 是一种用于在 CentOS、Red Hat Enterprise Linux (RHEL) 等基于 RPM 的 Linux 发行版上安装、更新和管理软件包的命令行工具。它可以自动解决软件包依赖关系,自动下载并...【详细内容】
2024-02-27  凡夫贬夫  微信公众号  Tags:Centos   点击:(59)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27    IT之家  Tags:Ubuntu   点击:(54)  评论:(0)  加入收藏
Linux中磁盘和文件系统工作原理解析
在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展...【详细内容】
2024-02-20  王建立    Tags:Linux   点击:(60)  评论:(0)  加入收藏
Linux子系统概览
inux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。以下是Linux...【详细内容】
2024-02-01    简易百科  Tags:Linux   点击:(85)  评论:(0)  加入收藏
Linux内核:系统之魂与交互之源
内核,作为任何基于Linux的操作系统的心脏,扮演着至关重要的角色。它不仅是计算机系统软件与硬件之间的桥梁,更是确保系统稳定、高效运行的关键。内核提供了一系列核心功能,为上...【详细内容】
2024-02-01  松鼠宝贝    Tags:Linux内核   点击:(73)  评论:(0)  加入收藏
如何确保Linux进程稳定与持久
在Linux系统中,进程的稳定性与持久性对于维持系统的持续运行至关重要。然而,由于各种原因,进程可能会面临崩溃或系统重启的情况。为了确保关键进程能够持续运行,我们必须采取一...【详细内容】
2024-01-19  松鼠宝贝    Tags:Linux进程   点击:(93)  评论:(0)  加入收藏
站内最新
站内热门
站内头条