在VMware虚拟机中,安装了Centos7,安装时分配的磁盘容量是80,后期不够用,如何进行扩展呢?
只有关闭虚拟机电源后,才能对磁盘进行扩展。
开机,查看磁盘:df -h
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 16K 3.9G 1% /dev/shm tmpfs 3.9G 13M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 48G 6.7G 42G 14% / /dev/sda1 1014M 254M 761M 26% /boot /dev/mapper/centos-home 24G 39M 24G 1% /home tmpfs 797M 8.0K 797M 1% /run/user/42 tmpfs 797M 24K 797M 1% /run/user/0
用于查看文件系统的磁盘使用情况并以易于阅读的方式显示
-h:以人类可读的格式显示磁盘空间大小。例如,使用 GB、MB、KB 等单位代替字节。
文件系统名称或挂载点(例如 /、/home、/mnt/usb 等)
容量(文件系统的总容量)
已用空间(已分配给文件和其他数据的空间)
可用空间(剩余可使用的空间)
使用百分比(已用空间占总空间的百分比)
挂载点(文件系统在目录树中的挂载位置)
查看磁盘分区:fdisk -l
[root@localhost ~]# fdisk -l 磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x00095d48 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 167772159 82836480 8e Linux LVM 磁盘 /dev/mapper/centos-root:51.3 GB, 51308920832 字节,100212736 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:8455 MB, 8455716864 字节,16515072 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-home:25.1 GB, 25052577792 字节,48930816 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
fdisk 是一个用于磁盘分区的命令行工具。fdisk -l 则用于列出所有可用的磁盘及其分区信息
-l:列出所有磁盘和分区的信息,不对磁盘进行任何更改
当你插入一个新的 USB 闪存驱动器后,你可以通过以下步骤查找对应的块设备:
插入 USB 设备。
运行 fdisk -l 前后的对比:在插入 USB 设备之前,先运行一次 sudo fdisk -l,记录输出。然后,插入 USB 设备,再次运行 sudo fdisk -l。对比两次输出,新增的磁盘信息就是你的 USB 设备。
使用 dmesg 命令:插入 USB 设备后,运行 dmesg | tail 查看系统日志的最新输出,这通常会显示新设备的分配情况。例如,它可能会显示 USB 设备被识别为 /dev/sdc 或其他类似的设备名。
对磁盘进行分区操作:fdisk /dev/sda
对新加的磁盘进行分区操作(选择新增的磁盘)。我们是虚拟机,只有一块硬盘,所以选择这块硬盘即可。
[root@localhost ~]# fdisk /dev/sda 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):p 磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x00095d48 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 167772159 82836480 8e Linux LVM 命令(输入 m 获取帮助):n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p 分区号 (3,4,默认 3):3 起始 扇区 (167772160-209715199,默认为 167772160): 将使用默认值 167772160 Last 扇区, +扇区 or +size{K,M,G} (167772160-209715199,默认为 209715199): 将使用默认值 209715199 分区 3 已设置为 Linux 类型,大小设为 20 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: 设备或资源忙. 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@localhost ~]# partprobe
重新读取磁盘分区表并更新内核中的分区信息,这个命令通常在使用fdisk、parted或其他磁盘分区工具对磁盘进行分区或修改分区表后使用,以确保操作系统能够正确地识别和访问新的或更改后的分区。
为新加磁盘创建文件系统:mkfs.ext4 /dev/sda3
[root@localhost ~]# mkfs.ext4 /dev/sda3 mke2fs 1.42.9 (28-Dec-2013) 文件系统标签= OS type: Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242880 blocks 262144 blocks (5.00%) reserved for the super user 第一个数据块=0 Maximum filesystem blocks=2153775104 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: 完成 正在写入inode表: 完成 Creating journal (32768 blocks): 完成 Writing superblocks and filesystem accounting information: 完成
命令用于在指定的磁盘分区上创建一个新的ext4文件系统。这里的命令可以分为几个部分来理解:
mkfs:是“make filesystem”的缩写,用于创建文件系统。
.ext4:指定了要创建的文件系统类型,这里是ext4。ext4是第四代扩展文件系统,它是Linux系统中常用的一种文件系统,提供了良好的性能、可靠性和数据完整性。
/dev/sda3:指定了要创建文件系统的目标分区。在Linux中,/dev/目录包含了系统中的所有设备和分区。sda通常表示第一个SCSI或SATA硬盘,而sda3则表示该硬盘上的第三个主分区或扩展分区中的第一个逻辑分区。
因此,mkfs.ext4 /dev/sda3命令的意思是:在/dev/sda3分区上创建一个ext4文件系统。
初始化物理卷:pvcreate /dev/sda3
[root@localhost ~]# pvcreate /dev/sda3 WARNING: ext4 signature detected on /dev/sda3 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/sda3. Physical volume "/dev/sda3" successfully created.
该命令的主要功能是在指定的物理分区或磁盘上初始化一个物理卷(Physical Volume,简称PV)。
执行pvcreate /dev/sda3命令后,/dev/sda3分区将被LVM识别为一个物理卷。这意味着该分区现在可以作为LVM卷组(Volume Group,简称VG)的一部分,进而在其中创建逻辑卷(Logical Volume,简称LV)。逻辑卷则可以被格式化为文件系统,并挂载到系统的目录结构中供日常使用。
查看物理卷信息:pvdisplay
[root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <79.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 20223 Free PE 1 Allocated PE 20222 PV UUID BZWfwI-S3mr-aJB7-4Ait-m2qI-3FrN-dyqxsz "/dev/sda3" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Q7B3FI-yxtZ-obCC-TX1e-sm28-TzGd-IDSquG
pvdisplay命令用于显示有关物理卷(Physical Volume,简称PV)的详细信息。
当你执行pvdisplay命令时,它会从LVM的元数据中检索信息,并以易于理解的格式显示这些信息。这对于管理LVM配置、监控存储空间使用情况以及故障排除非常有用。
可以看到,/dev/sda3是新增的硬盘空间,20GB.现在还是未分配的状态。
分配物理卷:vgextend centos /dev/sda3
[root@localhost ~]# vgextend centos /dev/sda3 Volume group "centos" successfully extended [root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size <79.00 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 20223 Free PE 1 Allocated PE 20222 PV UUID BZWfwI-S3mr-aJB7-4Ait-m2qI-3FrN-dyqxsz --- Physical volume --- PV Name /dev/sda3 VG Name centos PV Size 20.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 5119 Free PE 5119 Allocated PE 0 PV UUID Q7B3FI-yxtZ-obCC-TX1e-sm28-TzGd-IDSquG
用于将新的物理卷(Physical Volumes,PVs)添加到现有的卷组(Volume Group,VG)中。通过这种方式,可以动态地扩展卷组的容量,从而为逻辑卷提供更多的可用空间。
注意:这里centos 是取pvdisplay的结果的“VG Name”的数据值。根据实际情况来替换。
加载该物理卷:lvextend -L +19.9G /dev/mapper/centos-root
[root@localhost ~]# lvextend -L +19.9G /dev/mapper/centos-root Rounding size to boundary between physical extents: 19.90 GiB. Size of logical volume centos/root changed from <47.79 GiB (12233 extents) to <67.69 GiB (17328 extents). Logical volume centos/root successfully resized. [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- 23.33g root centos -wi-ao---- <67.69g swap centos -wi-ao---- <7.88g
注意:/dev/mapper/centos-root是取df-h中显示的结果。根据实际情况来修改。
注意:扩展的磁盘是20G,但是有几兆是被占用的,实际可用应该是小于20,这里写19.9。
让系统动态加载新加的物理卷容量:xfs_growfs /dev/mapper/centos-root
[root@localhost ~]# xfs_growfs /dev/mapper/centos-root meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3131648 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=12526592, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=6116, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 12526592 to 17743872
xfs_growfs命令用于调整XFS文件系统的大小,以充分利用其底层存储设备(如分区或逻辑卷)上可用的额外空间。
执行xfs_growfs /dev/mapper/centos-root命令时,系统会检查centos-root逻辑卷上的XFS文件系统,并自动调整其大小以匹配逻辑卷的新大小(假设逻辑卷已经被扩展)。这样,你就可以在不重新挂载文件系统或重启系统的情况下,利用新增加的存储空间。
验证
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 16K 3.9G 1% /dev/shm tmpfs 3.9G 13M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 68G 6.7G 62G 10% / /dev/sda1 1014M 254M 761M 26% /boot /dev/mapper/centos-home 24G 39M 24G 1% /home tmpfs 797M 32K 797M 1% /run/user/0 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 79G 0 part │ ├─centos-root 253:0 0 67.7G 0 lvm / │ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP] │ └─centos-home 253:2 0 23.3G 0 lvm /home └─sda3 8:3 0 20G 0 part └─centos-root 253:0 0 67.7G 0 lvm / sr0 11:0 1 1024M 0 rom
可以看到sda3已经分配给centos-root,被加载到了 / 下面