Debian在LVM下ext4文件系统调整/和/home分区大小

Author Avatar
落影汐雾 7月 06, 2023
  • 在其它设备中阅读本文章

更新于:A.D.2023.07.06


安装系统时给/home分配的空间过大,/空间太小,重新进行分配。

环境

shiokiri@thinkpad-e15:~$ neofetch
       _,met$$$$$gg.          shiokiri@thinkpad-e15 
    ,g$$$$$$$$$$$$$$$P.       --------------------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 11 (bullseye) x86_64 
 ,$$P'              `$$$.     Host: 20YG001YCD ThinkPad E15 Gen 3 
',$$P       ,ggs.     `$$b:   Kernel: 5.10.0-23-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 27 mins 
 $$P      d$'     ,    $$P    Packages: 2191 (dpkg) 
 $$:      $$.   -    ,d$$'    Shell: bash 5.1.4 
 $$;      Y$b._   _,d$P'      Resolution: 3840x2160 
 Y$$.    `.`"Y$$$$P"'         DE: GNOME 3.38.6 
 `$$b      "-.__              WM: Mutter 
  `Y$$                        WM Theme: Adwaita 
   `Y$$.                      Theme: Ant [GTK2/3] 
     `$$b.                    Icons: Adwaita [GTK2/3] 
       `Y$$b.                 Terminal: gnome-terminal 
          `"Y$b._             CPU: AMD Ryzen 5 5500U with Radeon Graphics (12) @ 2.100GHz 
              `"""            GPU: AMD ATI 04:00.0 Lucienne 
                              Memory: 1064MiB / 14868MiB

过程

使用recovery mode启动

在GRUB启动页面选择即可

查看文件系统使用情况

# df -hT

示例(非操作过程中数据):

文件系统                    类型      容量  已用  可用 已用% 挂载点
udev                        devtmpfs  7.2G     0  7.2G    0% /dev
tmpfs                       tmpfs     1.5G  9.9M  1.5G    1% /run
/dev/mapper/debian--vg-root ext4      222G   23G  190G   11% /
tmpfs                       tmpfs     7.3G   12M  7.3G    1% /dev/shm
tmpfs                       tmpfs     5.0M  4.0K  5.0M    1% /run/lock
/dev/nvme0n1p2              ext2      471M  117M  330M   27% /boot
/dev/nvme0n1p1              vfat      511M  5.8M  506M    2% /boot/efi
/dev/mapper/debian--vg-home ext4      246G   39G  196G   17% /home
tmpfs                       tmpfs     1.5G  144K  1.5G    1% /run/user/1000

查看LVM元数据

查看卷组

# vgdisplay

示例(非操作过程中数据):

  --- Volume group ---
  VG Name               debian-vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  11
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               475.96 GiB
  PE Size               4.00 MiB
  Total PE              121846
  Alloc PE / Size       121846 / 475.96 GiB
  Free  PE / Size       0 / 0   
  VG UUID               oU51kj-3uiu-4nPI-1OTp-K4NN-i4IG-gqsZrE

查看逻辑卷

# lvdisplay

卸载/home

不能在线缩减,需要先卸载

# umount /home 卸载挂载的lv
# mount 查看挂载的lv是否卸载成功

缩减/home大小

不得更改顺序!!!必须先缩减逻辑卷的逻辑边界,再缩减物理边界

确保缩减后的空间大小依然能存储原有的所有数据

  1. e2fsck 在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态
  2. resize2fs 对lv逻辑卷的文件系统首先尽可能缩小
  3. lvreduce 对lv逻辑卷的物理边界缩减到需要的值
  4. resize2fs 扩展文件系统到物理边界大小

缩减行为非常危险,缩减文件系统时要尽可能缩小,缩减逻辑卷物理边界时缩减到需要的值,然后再次调整文件系统(使用一段时间后,文件系统df -hT要比逻辑卷fdisk -l / lvdisplay小,硬盘元数据需要占用空间),这点所有的中文教程叙述都不正确,非常危险!

# e2fsck -f /dev/mapper/debian--vg-home
# resize2fs /dev/mapper/debian--vg-home 200GG 调整逻辑卷的文件系统大小为200G
# lvreduce -L 250G /dev/mapper/debian--vg-home 对逻辑卷的物理边界缩减为250G
# resize2fs -p /dev/mapper/debian--vg-home 扩展文件系统到物理边界大小

挂载/home

挂载lv逻辑卷

# mount /dev/mapper/debian--vg-home /home

扩充/大小

不得更改顺序!!!必须先扩展逻辑卷的物理边界,再调整文件系统

  1. lvextend 扩展逻辑卷的物理边界

    • lvextend -L [+]# /PATH/TO/LV_NAME 指定扩展后的容量,+表示在目前容量上直接增加#容量,不用+表示,扩展后的容量为#
    • lvextend -l +100%FREE /PATH/TO/LV_NAME 把所有空余容量进行分配
  2. resize2fs 调整逻辑卷的文件系统

    • resize2fs /PATH/TO/LV # 调整文件系统到#,该值不能超过物理边界

    • resize2fs -p /PATH/TO/LV -p 表示打印已完成的百分比进度条

# lvextend -l +100%FREE /dev/mapper/debian--vg-root
# resize2fs -p /dev/mapper/debian--vg-root

检查结果

# df -hT

扩充交换空间大小

# free -m
# swapoff /dev/VolGroup/lv_swap
# lvextend -l +100%FREE /dev/mapper/debian--vg-swap_1
# mkswap /dev/VolGroup/lv_swap
# swapon /dev/VolGroup/lv_swap
# free -m

注意事项

  • ext4才可以缩减,xfs不能缩减

  • 扩充空间一定是先lvresize后resize2fs!!!

  • 缩减空间一定是先resize2fs后lvresize!!!

本文由 落影汐雾 原创,采用 保留署名-非商业性使用-禁止演绎 4.0-国际许可协议
本文链接:https://x.lyxw.xyz/2023/linux-lvm/