Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程
一、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 typep 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): 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: 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/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 typep 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): 30000000Created 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: 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): n
Partition typep primary (1 primary, 1 extended, 2 free)l logical (numbered from 5)
Select (default p): lAdding 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: 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/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 typep 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): 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 | lvcreate |
display 显示 | pvdisplay | vgdisplay | lvdisplay |
remove 移除 | pvremove | vgremove | lvremove |
extend 扩展 | vgextend | lvextend | |
reduce 减少 | vgreduce | lvreduce |
举个通俗例子:多个磁盘/分区就是多袋小麦,创建物理卷(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-vgSystem ID Format lvm2Metadata Areas 1Metadata Sequence No 4VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 1Act PV 1VG Size <19.00 GiBPE Size 4.00 MiBTotal PE 4863Alloc PE / Size 4863 / <19.00 GiBFree 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-lvLV Name ubuntu-lvVG Name ubuntu-vgLV UUID XND7LS-kWJL-LISf-HmrN-eK7S-X8ea-2Lazo7LV Write Access read/writeLV Creation host, time ubuntu-server, 2021-11-27 09:39:38 +0000LV Status available# open 1LV Size <19.00 GiBCurrent LE 4863Segments 1Allocation inheritRead ahead sectors auto- currently set to 256Block 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-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): 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/sda4Volume group "ubuntu-vg" successfully extended
再次查看卷组VG,Free PE / Size 已经有了10G的空闲空间可分配了。
ubuntu@ubuntu:~$ sudo vgdisplay --- Volume group ---VG Name ubuntu-vgSystem ID Format lvm2Metadata Areas 2Metadata Sequence No 5VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 2Act PV 2VG Size 28.99 GiBPE Size 4.00 MiBTotal PE 7422Alloc PE / Size 4863 / <19.00 GiBFree PE / Size 2559 / <10.00 GiBVG 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-lvInsufficient free space: 2560 extents needed, but only 2559 available
ubuntu@ubuntu:~$ sudo lvextend -L +9.9G /dev/ubuntu-vg/ubuntu-lvRounding 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
添加完成后,只需按下 CTRL+x 或 F10 即可继续启动救援模式。几秒钟后,你将以 root 用户身份进入救援模式(单用户模式)
2、挂载iso或者启动盘进入救援模式
系统不同,进入也不同,本人ubuntu20.04,没有找到合适的方式,其他的系统自行研究
Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程相关推荐
- linux 多块磁盘挂一个文件夹,Linux单目录挂载多块磁盘
Linux将多块磁盘挂载到一个目录,特此记录,方便以后使用. 服务器需要保存大量图片,内含4块2T的磁盘,需要将磁盘挂载到影像目录. 单块磁盘挂载比较简单: 创建分区 格式化分区 挂载 同一目录无法重 ...
- Linux单目录挂载多块磁盘
Linux将多块磁盘挂载到一个目录,特此记录,方便以后使用. 服务器需要保存大量图片,内含4块2T的磁盘,需要将磁盘挂载到影像目录. 单块磁盘挂载比较简单: 创建分区 格式化分区 挂载 同一目录无法重 ...
- Linux编程 8 (挂载mount,查看磁盘df du,搜索grep,压缩zgip,归档tar)
一. 挂载存储媒体 linux文件系统将所有的磁盘都并入一个虚拟目录下,当使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载(mounting) 1.1 mount 命令 在linux上用 ...
- 2013-2014Mac book Air 创建4个分区Macos加win7双系统制作安装详细教程
此方法需格式化全盘,如有资料提早备份.(本文用一个8G U盘)部分资料来源网上,加上自己整理,谢谢大神们 第一部份:制作os u盘系统,重新安装os系统 准备工作: 1.8G空白U盘一只: 2.OS ...
- Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】
http://blog.csdn.net/wendi_0506/article/details/39478369 启动mysql /usr/local/mysql/support-files/mysq ...
- 【B站视频教程笔记】基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装、配置、使用详细教程)(VSCode教程)(CMake教程)(精!)
基于VSCode和CMake实现C/C++开发 | Linux篇 文章目录 目录结构 文件编辑 vim(编辑器之神,linux里可以畅通无阻,必学,但不是现在!) 安装GCC和GDB g++编译过程 ...
- Linux 环境下php5.6,如何正确安装微软Mssql驱动--详细教程
Linux 环境下,如何正确安装微软Mssql驱动 近日,由于公司业务的需要,需要用到PHP连接一个客户的Mssql服务器.于是,开始一番折腾之路.Baidu与Google之后,发现,网上说的各种方法 ...
- Linux系统操作(3):ubuntu安装使用tmux的详细教程
文章目录 1 安装tmu 2 session会话控制 3 控制窗口 3 鼠标的使用 方法一 方法二 4 复原所有设置: 5 tips: 6 查看相关的帮助:查看相关命令 参考文献 1 安装tmu su ...
- ubuntu16.04新建磁盘并挂载
在VMware Workstation 中,给ubuntu16.04虚拟机新建磁盘并挂载使用 添加磁盘 linux磁盘识别 查看磁盘 格式化新硬盘 挂载磁盘 创建你要挂载新硬盘的目录 sudo mkd ...
最新文章
- 初二下册计算机考试试题,2017下半年计算机等级考试二级Java模拟试题及答案(18)...
- Google Chrome 扩展程序开发
- python中文件描述符_Python中的描述符
- java中int,char,string三种类型的相互转换
- 专访iQOO Pro产品经理:以更好的产品 更低的价格推进5G生态普及
- NOI2019游记 —— 夏花般绚烂,繁星般璀璨
- 计算机基础综合知识试题及答案,计算机基础综合知识试题及答案
- java中Executor、ExecutorService、ThreadPoolExecutor介绍(转)
- 国内一些比较大型的IT软件外包公司名单
- python图表制作方法_python图表制作
- 转载-极化码系列(2)-极化码的编码原理
- Java开发规范之常量定义篇
- 7-3 约分最简分式
- 丽江,清晨的小巷在哭泣
- PhraseQuery slop
- 支付宝H5拉起唤醒支付宝APP
- 关于视频录制动态贴纸的问题
- bugku_crypto_这不是摩斯密码
- netcat基本使用方法总结
- 【9106】天使的起誓