Hello! 欢迎来到MI Blog!

解决:甲骨文 ARM DD后磁盘变小的的问题


avatar
MI 2023-08-26 388

首先,先查看磁盘的情况

dh -f
# Filesystem                      Size  Used Avail Use% Mounted on
# devtmpfs                        5.8G     0  5.8G   0% /dev
# tmpfs                           5.8G  256K  5.8G   1% /dev/shm
# tmpfs                           5.8G   45M  5.7G   1% /run
# tmpfs                           5.8G     0  5.8G   0% /sys/fs/cgroup
# /dev/mapper/centos_centos-root  8.0G  6.3G  1.6G  79% /
# /dev/sda2                       976M  152M  758M  17% /boot
# /dev/sda1                       599M  9.0M  590M   2% /boot/efi
# tmpfs                           1.2G     0  1.2G   0% /run/user/0
# 在以上结果中 devtmpfs 和 tmpfs 是临时的文件系统,虽然空闲显示占用大,但是对其进行压缩可能并不会产生明显的效果

查看磁盘分区

lsblk
# NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
# sda                      8:0    0 46.6G  0 disk 
# ├─sda2                   8:2    0    1G  0 part /boot
# ├─sda3                   8:3    0  8.5G  0 part 
# │ └─centos_centos-root 253:0    0  8.5G  0 lvm  /
# └─sda1                   8:1    0  600M  0 part /boot/efi
# 针对上述结果,明显还有将近 35G 空间未分配,推荐使用如 parted 和 gdisk 来查看未分配空间,fdisk 是不能显示剩余多少未分配空间的

parted -l         <em>注有些机器会提示一些错误需要修复执行两次fix就行了</em>
# Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 76705792 blocks) or continue with the current setting?
# 可见硬盘的GPT分区表中仍然有 76705792 块空间未被分配
# 76705792 块 × 512 字节/块 = 39,307,776,384 字节
# 大约是 39.31 GB(千兆字节)或 36.55 GiB(吉比字节)

分配磁盘空间

parted /dev/sda 	# 进入磁盘分区工具脚本模式
# Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)# 再此输入以下命令 

print 				# 查看当前分区情况。
resizepart			# 调整分区大小
quit 				# 退出工具

调整磁盘分区大小(resizepart)

(parted) resizepart # 调整分区大小命令
Partition number? 3 # 输入待调整大小的分区,我这里选择调整分区3
End? [8.5GB]? 42G # 输入调整后的大小并回车,小于8.5则为压缩,大于8.5则为扩容,我这里扩容至42G,注意单位G

提示 Information: You may need to update /etc/fstab. # 退出后在处理

(parted) p # 输入 p 等同于 print 查看分区命令
Model: ORACLE BlockVolume (scsi)
Disk /dev/sda: 50.0GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 630MB 629MB fat32 EFI System Partition boot
2 630MB 1704MB 1074MB ext4
3 1704MB 42.0GB 40.3GB lvm

(parted) quit # 退出,然后 reboot 重启系统
————————————————

扩容逻辑卷

[root@CentOS ~]# lsblk
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                      8:0    0 46.6G  0 disk 
├─sda2                   8:2    0    1G  0 part /boot
├─sda3                   8:3    0 37.5G  0 part 
│ └─centos_centos-root 253:0    0  8.5G  0 lvm  /
└─sda1                   8:1    0  600M  0 part /boot/efi
# sda3 分区的大小为 37.5G,并且它包含一个 LVM 逻辑卷(logical volume)centos_centos-root,大小为 8.5G。这意味着在 sda3 分区中还有剩余的空间可供利用

确认 sda3 分区剩余空间

# 查找 PV Size 列中与 /dev/sda3 相关的信息,确保有剩余空间可用
sudo pvdisplay

扩展物理卷(Physical Volume)

# 先将 sda3 分区的剩余空间添加到物理卷
sudo pvresize /dev/sda3

扩展 sda3 的逻辑卷(Logical Volume)

# 逻辑卷 centos_centos-root 扩展到使用所有可用空间,并自动调整文件系统大小
sudo lvextend -r -l +100%FREE /dev/mapper/centos_centos-root

parted 命令补充

用法:parted <指令>
指令:
-h   # 显示此求助信息
-l   # 列出系统系统中所有的磁盘设备,和 fdisk -l 命令的作用差不多。
-m   # 进入交互模式,如果后面不加设备则对第一个磁盘进行操作
-s   # 脚本模式
-v   # 显示版本

如果没有给出“指令”,则 parted 将进入交互模式运行
常用命令:
align-check				# 检查分区N的类型(min|opt)是否对齐
help					# 打印通用求助信息,或关于[指令]的帮助信息
mklabel					# 创建新的磁盘标签 (分区表)
mkpart					# 创建一个分区
name					# 给指定的分区命名
print					# 打印分区表,或者分区
quit					# 退出程序
rescue					# 修复丢失的分区
resizepart				# 调整分区大小
rm						# 删除分区
select					# 选择要编辑的设备,默认只对指定的设备操作,这里可以改变指定的设备
disk_set				# 更改选定设备上的标志
disk_toggle				# 切换选定设备上的标志状态
set						# 更改分区的标记
toggle					# 设置或取消分区的标记
unit					# 设置默认的单位
version					# 显示版本信息