使用Parted工具对磁盘分区进行无损扩容(即保留数据扩容分区)。
数据无价 ,请操作前规划好需求和操作流程,测试并备份数据。
首先查看一下当前分区状态,明确需求1 2 3 4 5 6 7 8 9 10 11 12 13 root@localserver:~# df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 394M 6.6M 387M 2% /run /dev/mmcblk0p2 ext4 59G 20G 40G 33% / tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 2.0G 20K 2.0G 1% /tmp /dev/mmcblk1p1 ext4 223M 79M 140M 37% /boot /dev/sda1 ext4 125G 82G 37G 69% /root/wxedge /dev/sda2 ext4 343G 28K 325G 1% /root/userdata0 /dev/zram1 ext4 49M 24M 22M 53% /var/log tmpfs tmpfs 394M 8.0K 394M 1% /run/user/0
在本次示例中,由于dev/sda1
分区容量较小;而/dev/sda2
业务较为不重要,因此想将/dev/sda2
的容量转移到/dev/sda1
中。 停用欲扩容分区业务,卸载欲扩容分区:1 2 umount /dev/sda1 umount /dev/sda2
使用parted进入磁盘操作模式: 此时应有返回:1 2 3 4 5 root@armbian:~# parted /dev/sda GNU Parted 3.4 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
查看当前分区表:1 2 3 4 5 6 7 8 9 10 (parted) p Model: NVME USB 3.2 (scsi) Disk /dev/sda: 512GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 137GB 137GB ext4 2 137GB 512GB 375GB ext4
记下当前输出的所有信息 ,后面会用到,最好是复制出来到另外的地方。 删除2号分区和1号分区:1 2 3 4 5 6 7 8 9 10 (parted) rm 2 (parted) rm 1 (parted) p Model: NVME USB 3.2 (scsi) Disk /dev/sda: 512GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags
重建分区:1 2 3 4 5 6 7 8 9 (parted) mkpart # 输入上面记下的1号分区的Name值,如果输出的时候就没有就直接回车 Partition name? []? # 输入上面记下的1号分区的分区格式值 File system type? [ext2]? ext4 # 输入上面记下的起始点 Start? 1049KB # 输入终点,注意,这个值只能比上面记下的End值大 End? 240GB
退出parted,命令是quit
resize一下扩容的分区1 2 3 4 root@localserver:~# resize2fs -f /dev/sda1 resize2fs 1.46.2 (28-Feb-2021) Resizing the filesystem on /dev/sda1 to 58593536 (4k) blocks. The filesystem on /dev/sda1 is now 58593536 (4k) blocks long.
扩容完成后进行挂载,查看文件是否存在、扩容是否成功,重启业务查看业务运行是否正常 (此处省略了新建2号分区的过程。)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 root@localserver:~# mount /dev/sda1 wxedge/ root@localserver:~# mount /dev/sda2 userdata0/ root@localserver:~# df -Th Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 394M 6.5M 387M 2% /run /dev/mmcblk0p2 ext4 59G 20G 40G 33% / tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs tmpfs 2.0G 20K 2.0G 1% /tmp /dev/mmcblk1p1 ext4 223M 79M 140M 37% /boot /dev/zram1 ext4 49M 24M 22M 53% /var/log tmpfs tmpfs 394M 8.0K 394M 1% /run/user/0 /dev/sda1 ext4 219G 82G 127G 40% /root/wxedge /dev/sda2 ext4 249G 28K 236G 1% /root/userdata0
我这里测试扩容成功,且业务运行正常,流程结束。