硬盘在线扩容
非LVM,在线扩容硬盘分区实例
1.云服务器扩容
2.本地vmware平台虚拟机扩容
3.virtualBox虚拟机扩容
一.扩容云服务器根目录
环境:
swift@XXX-001:/$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 200G 0 disk
└─vda1 253:1 0 100G 0 part /vda盘下的vda1分区挂载在根目录,vda盘已经新增100G磁盘空间,由于不是lvm类型,需要扩容磁盘分区
可以参考:
1.检查文件系统的状态
ext*:e2fsck -n 磁盘分区
xfs:xfs_repair -n 磁盘分区
以“ext4” 为例:
e2fsck -n /dev/vdb1查看分区文件系统类型可以使用 lsblkl -f 命令
回显类似如下信息:
swift@XXX-001:/$ sudo e2fsck -n /dev/vda1
e2fsck 1.42.13 (17-May-2015)
Warning! /dev/vda1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/vda1: clean, 207205/6553600 files, 8398438/26214139 blocks
文件系统状态为clean表示状态正常,若不是clean,请先修复问题后执行扩容操作。
2.执行以下命令,指定系统盘待扩容的分区,通过growpart进行扩容
growpart 系统盘 分区编号
命令示例:
growpart /dev/vda 1
回显类似如下信息:
swift@XXX-001:/$ sudo growpart /dev/vda 1
CHANGED: partition=1 start=2048 old: size=209713119 end=209715167 new: size=419428319,end=419430367
此时:分区已经扩容,但文件系统未扩容,通过 lsblk 和 df -h 命令可查看
swift@XXX-001:/$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 200G 0 disk
└─vda1 253:1 0 200G 0 part /
swift@XXX-001:/$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 99G 39G 56G 41% /3.执行以下命令,扩展磁盘分区文件系统的大小。
resize2fs 磁盘分区
命令示例:
resize2fs /dev/vda1
回显类似如下信息:
swift@XXX-001:/$ sudo resize2fs /dev/vda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
The filesystem on /dev/vda1 is now 52428539 (4k) blocks long.4.检查分区
swift@XXX-001:/$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 197G 39G 151G 21% /二.扩容本地vmware虚拟机机器硬盘
1.检查文件系统的状态
ext*:e2fsck -n 磁盘分区
xfs:xfs_repair -n 磁盘分区
以“ext4” 为例:
e2fsck -n /dev/sda1
回显类似如下信息:
root@LOCAL-PG-TEST-001:/home/swift# e2fsck -n /dev/sda1
e2fsck 1.42.13 (17-May-2015)
Warning! /dev/sda1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda1: clean, 289242/13049856 files, 43632851/52178432 blocks
文件系统状态为clean表示状态正常,若不是clean,请先修复问题后执行扩容操作。2.执行以下命令,指定系统盘待扩容的分区,通过growpart进行扩容
growpart 系统盘 分区编号
命令示例:
growpart /dev/sda 1
回显类似如下信息:
root@LOCAL-PG-TEST-001:/home/swift# growpart /dev/sda 1
CHANGED: partition=1 start=2048 old: size=417427456 end=417429504 new: size=629143519,end=6291455673.执行以下命令,扩展磁盘分区文件系统的大小。
resize2fs 磁盘分区
命令示例:
resize2fs /dev/sda1
回显类似如下信息:
root@LOCAL-PG-TEST-001:/home/swift# resize2fs /dev/sda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 13, new_desc_blocks = 19
The filesystem on /dev/sda1 is now 78642939 (4k) blocks long.4.检查分区大小和文件系统大小,发现已经成功扩容。
swift@LOCAL-PG-TEST-001:~$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 4fe08fcf-d73a-462c-8c44-e2248bd0e4fe /
sr0
swift@LOCAL-PG-TEST-001:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 16M 1.6G 1% /run
/dev/sda1 296G 122G 160G 44% /
tmpfs 7.9G 1.4M 7.9G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/1001
tmpfs 1.6G 0 1.6G 0% /run/user/1002问题
1.执行growpart /dev/sda 1报错
root@LOCAL-PG-TEST-001:/home/swift# growpart /dev/sda 1
NOCHANGE: partition 1 could only be grown by 2046 [fudge=2048]磁盘分区情况
root@LOCAL-PG-TEST-001:/home/swift# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 199G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 975M 0 part
sr0 11:0 1 1024M 0 rom
root@LOCAL-PG-TEST-001:/home/swift# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 4fe08fcf-d73a-462c-8c44-e2248bd0e4fe /
├─sda2
└─sda5 swap 9269e2f8-018e-48a1-9463-efed33a46096
sr0 进入fdisk查看
root@LOCAL-PG-TEST-001:/home/swift# fdisk /dev/sda
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
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: 0xe241a164
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 417429503 417427456 199G 83 Linux
/dev/sda2 417431550 419428351 1996802 975M 5 Extended
/dev/sda5 417431552 419428351 1996800 975M 82 Linux swap / Solaris
Command (m for help): q
原因
存在多余块设备
root@LOCAL-PG-TEST-001:/home/swift# blkid
/dev/sda1: UUID="4fe08fcf-d73a-462c-8c44-e2248bd0e4fe" TYPE="ext4" PARTUUID="e241a164-01"
/dev/sda5: UUID="9269e2f8-018e-48a1-9463-efed33a46096" TYPE="swap" PARTUUID="e241a164-05"解决方法:
删除多余分区,再次执行growpart扩容,就好了
root@LOCAL-PG-TEST-001:/home/swift# fdisk /dev/sda
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
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: 0xe241a164
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 417429503 417427456 199G 83 Linux
/dev/sda2 417431550 419428351 1996802 975M 5 Extended
/dev/sda5 417431552 419428351 1996800 975M 82 Linux swap / Solaris
Command (m for help): d
Partition number (1,2,5, default 5): 5
Partition 5 has been deleted.
Command (m for help): p
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
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: 0xe241a164
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 417429503 417427456 199G 83 Linux
/dev/sda2 417431550 419428351 1996802 975M 5 Extended
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): p
Disk /dev/sda: 300 GiB, 322122547200 bytes, 629145600 sectors
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: 0xe241a164
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 417429503 417427456 199G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
删除分区后,提示内核使用旧的分区表,执行partprobe刷新后即可。
root@LOCAL-PG-TEST-001:/home/swift# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 4fe08fcf-d73a-462c-8c44-e2248bd0e4fe /
├─sda2
└─sda5 swap 9269e2f8-018e-48a1-9463-efed33a46096
sr0
root@LOCAL-PG-TEST-001:/home/swift# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 300G 0 disk
├─sda1 8:1 0 199G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 975M 0 part
sr0 11:0 1 1024M 0 rom
root@LOCAL-PG-TEST-001:/home/swift# partprobe
root@LOCAL-PG-TEST-001:/home/swift# partprobe
root@LOCAL-PG-TEST-001:/home/swift# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
└─sda1 ext4 4fe08fcf-d73a-462c-8c44-e2248bd0e4fe /
sr0 三.virtualBox虚拟机硬盘扩容
一.前提条件
已经为虚拟机内的磁盘进行扩容
二.更新磁盘分区和调整文件系统大小
# 查看磁盘,可以看到vda大小为200G,而vda3分区及其余分区总计50G,现在将剩余空间,添加到/dev/vda3这个分区中
swift@swift-None:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 252:0 0 200G 0 disk
├─vda1 252:1 0 1M 0 part
├─vda2 252:2 0 513M 0 part /boot/efi
└─vda3 252:3 0 49.5G 0 part /var/snap/firefox/common/host-hunspell
/1.检查文件系统状态
swift@swift-None:~$ sudo e2fsck -n /dev/vda3
e2fsck 1.46.5 (30-Dec-2021)
警告!/dev/vda3 已被挂载。
警告:跳过日志恢复流程,因为正在进行只读的文件系统检查。
/dev/vda3:没有问题,225369/3244032 文件,2571720/12975104 块2.使用growpart对分区扩容,若无该命令,则需要安装(sudo apt install cloud-guest-utils)
swift@swift-None:~$ growpart
Command 'growpart' not found, but can be installed with:
sudo apt install cloud-guest-utils
# 操作
swift@swift-None:~$ sudo growpart /dev/vda 3
CHANGED: partition=3 start=1054720 old: size=103800832 end=104855552 new: size=418375647 end=419430367
3.刷新文件系统
swift@swift-None:~$ sudo resize2fs /dev/vda3
resize2fs 1.46.5 (30-Dec-2021)
/dev/vda3 上的文件系统已被挂载于 /;需要进行在线调整大小
old_desc_blocks = 7, new_desc_blocks = 25
/dev/vda3 上的文件系统大小已经调整为 52296955 个块(每块 4k)。