硬盘扩容, PVE, Archlinux
硬盘扩容 PVE ext4 disk resize (parted) 理论上 parted 可以在根分区正在被使用的情况下扩容根分区,但实际操作中发现根分区无法卸载,导致 parted 报错 Error: /dev/sda: unrecognised disk label,解决方法是直接进入 parted,parted 会提示修复,输入 Fix 即可修复分区表,然后就可以正常扩容了。 [Online Lossless Expansion of EXT4 Partition](https://tech.he-sb.top/posts/online-lossless-expansion-of-ext4-partition/) 在 pve 里给硬盘扩容: vm>hardware> Hard Disk> Disk Action> resize: 填写新增的容量 ### 查看分区表类型 ```bash parted -l 回显有可能是以下其中一种 Partition Table: msdos Partition Table: gpt Partition Table: loop msdos: MBR gpt: GPT loop: loop 设备(虚拟磁盘) 查看磁盘的分区信息 lsblk # 回显 # sda2 挂载到了根目录 / NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 13G 0 disk ├─sda1 8:1 0 200M 0 part /boot └─sda2 8:2 0 7.8G 0 part / 停掉写磁盘的服务(如果是扩容非根分区) systemctl stop service0 非根分区扩容, 建议先卸载磁盘分区 umount /dev/sda2 确认磁盘分区的卸载结果 lsblk # 回显 # vdb 没有挂载 vdb 253:16 0 200G 0 disk 进入 parted # 进入 parted 分区工具, 参数要传整个硬盘(sda), 不要传某一个分区(sda2) parted /dev/sda # 输入"p" 然后回车,查看当前磁盘分区情况。 (parted) p # 如果提示需要修复,执行Fix Fix # 扩容, 使用所有剩余空间,在分区层面扩容 (parted) resizepart 2 100% # 查看分区 (parted) p # 退出 parted (parted) q 检查磁盘分区文件系统的正确性, 文件系统扩容 # 执行以下命令,检查磁盘分区文件系统的正确性, 如果是要分区分显示正在使用, 检查不了 # 可能会提示 Inode 262714 extent tree (at level 1) could be narrower. Optimize<y>? yes e2fsck -f /dev/sda2 # 其它分区如果回显 /dev/vdb is in use, 停掉读写硬盘的服务重试 # 执行以下命令,扩展磁盘分区文件系统的大小,在文件系统层面扩容 resize2fs /dev/sda2 # 查看分区容量(只能查看已挂载的分区容量, 如果是扩容非根分区, 需要先挂载分区才能看到扩容后的容量) df -TH # 查看分区大小(分区层) fdisk -l /dev/sda # 查看文件系统大小(文件系统层,Block count × Block size) dumpe2fs -h /dev/sda2 | grep -E "Block count|Block size" pve ext4 根分区磁盘扩容 (fdisk) 虚拟机关机 ...