linux/centos 分区调整 root与home

本文详细介绍了一次在CentOS系统上进行硬盘分区调整的实际操作过程,包括如何将home分区从431G减至148G,并将剩余空间添加至root分区,使其由50G扩展至315G。文章提供了具体步骤,如卸载分区、调整分区大小、检查磁盘块、重新挂载等,以及可能遇到的错误提示和解决办法。

通常由于前期主机上线时,管理员对分区使用没有做到准确预测,导致后期该有的分区空间少而不该用的却有多余。重新分区是一件风险性极高的事情,请务必保证在非生产系统中先行验证有效性。
重新分区后,还有可能因为引导分区改变而无法进入系统,请慎重。

一、了解分区

1. 查看当前分区情况 df -h

在这里很明显,root分区只有50G,而home分区却分了431G。
现在想要把home只留下148G,而root拓展到315G。如第二步显示。

Last login: Sun May 31 23:38:01 2020 from 10.38.15.33
[root@SHCTPDB02 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       50G   44G  2.9G  94% /
tmpfs                 5.9G   72K  5.9G   1% /dev/shm
/dev/sda1             477M   41M  411M   9% /boot
/dev/mapper/VolGroup-lv_home
                      431G  7.8G  402G   2% /home

2. 分区调整后的结果

[root@SHCTPDB02 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      315G   44G  256G  15% /
tmpfs                 5.9G   72K  5.9G   1% /dev/shm
/dev/sda1             477M   41M  411M   9% /boot
/dev/mapper/VolGroup-lv_home
                      148G  7.8G  133G   6% /home

二、移除home空间

3.卸载home分区

[root@SHCTPDB02 ~]# umount /home
umount: /home: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

[root@SHCTPDB02 ~]# reboot
Broadcast message from root@SHCTPDB02
	(/dev/pts/0) at 2:52 ...
The system is going down for reboot NOW!

[root@SHCTPDB02 ~]# umount /home
[root@SHCTPDB02 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       50G   44G  2.9G  94% /
tmpfs                 5.9G   72K  5.9G   1% /dev/shm
/dev/sda1             477M   41M  411M   9% /boot

4. 检查磁盘块e2fsck -f /dev/mapper/VolGroup-lv_home

[root@SHCTPDB02 ~]# e2fsck -f /dev/mapper/VolGroup-lv_home
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/mapper/VolGroup-lv_home: 13135/28688384 files (0.9% non-contiguous), 3857219/114741248 blocks


5. 调整home分区空间至150Gresize2fs -p /dev/mapper/VolGroup-lv_home 150G

[root@SHCTPDB02 ~]# resize2fs -p /dev/mapper/VolGroup-lv_home 150G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/mapper/VolGroup-lv_home to 39321600 (4k) blocks.
Begin pass 2 (max = 886057)
正在重定位块                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 3502)
正在扫描inode表               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 4 (max = 1527)
正在更新inode引用             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/VolGroup-lv_home is now 39321600 blocks long.

6. 从逻辑块中移除非挂载空间lvreduce -L 250G /dev/mapper/VolGroup-lv_home

[root@SHCTPDB02 ~]# lvreduce -L 250G /dev/mapper/VolGroup-lv_home
  WARNING: Reducing active and open logical volume to 250.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce VolGroup/lv_home? [y/n]: y
  Size of logical volume VolGroup/lv_home changed from 437.70 GiB (112052 extents) to 250.00 GiB (64000 extents).
  Logical volume lv_home successfully resized.

三、挂载root空间

7. 将空白空间挂载到root即直接拓展 lvextend -L +270G /dev/mapper/VolGroup-lv_root

[root@SHCTPDB02 ~]# lvextend -L +270G /dev/mapper/VolGroup-lv_root
  Size of logical volume VolGroup/lv_root changed from 50.00 GiB (12800 extents) to 320.00 GiB (81920 extents).
  Logical volume lv_root successfully resized.
[root@SHCTPDB02 ~]# resize2fs -p /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 20
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 83886080 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 83886080 blocks long.

四、其它

8.查看当前磁盘情况 fdisk -l

[root@SHCTPDB02 ~]# fdisk -l
Disk /dev/sda: 536.9 GB, 536870912000 bytes
255 heads, 63 sectors/track, 65270 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002c14b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64       65271   523774976   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap: 12.7 GB, 12675186688 bytes
255 heads, 63 sectors/track, 1541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_home: 470.0 GB, 469980151808 bytes
255 heads, 63 sectors/track, 57138 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

9.报错 Insufficient free space: 71680 extents needed, but only 0 available

[root@SHCTPDB02 ~]# lvextend -L +280G /dev/mapper/VolGroup-lv_root
  Insufficient free space: 71680 extents needed, but only 0 available

因为原空间没有从home中卸载出来,执行第五步,从逻辑块中移除非挂载空间lvreduce -L 250G /dev/mapper/VolGroup-lv_home

<think>好的,我现在需要帮助用户解决CentOS系统中/dev/mapper/centos-root分区容量不足的问题。首先,我得回忆一下相关的Linux磁盘管理知识。用户提到了使用LVM(逻辑卷管理),这可能涉及到扩展逻辑卷或调整现有分区的大小。 根据引用内容,用户已经参考了如何从home分区分配空间给root,以及VMware环境下扩展的情况,还有可能遇到的挂载问题。我需要整理出具体的步骤,确保安全有效。 首先,可能需要检查当前磁盘使用情况,使用命令如lsblk、df -h、vgs、lvs等。确认是否有可用的空间可以扩展,比如home分区是否有剩余空间,或者是否需要先调整物理卷。 如果home分区有足够空间(如引用1提到的800G),可以考虑缩小home的逻辑卷,然后将空间分配给root。但要注意数据备份,因为调整分区大小有风险。 另一个情况是如果是在VMware虚拟机里(引用2),可能需要先扩展虚拟磁盘,再在系统中扩展LVM。这可能涉及vgextend和lvextend命令。 另外,引用3提到挂载失败的问题,但用户当前的问题主要是容量不足,可能需要确保在调整过程中正确执行步骤,避免系统无法启动。 可能的步骤包括: 1. 备份数据,防止操作失误导致数据丢失。 2. 检查当前磁盘布局,确认可用空间。 3. 如果使用LVM,调整逻辑卷的大小,可能需要先卸载home分区,缩小它,再扩展root分区。 4. 调整文件系统大小,使用resize2fs或xfs_growfs。 5. 处理过程中可能需要进入救援模式,特别是在调整分区时。 需要注意不同文件系统的处理方式,比如XFS不支持缩小,而ext4可以。因此,确认文件系统类型很重要。 用户可能需要具体命令的指导,比如lvreduce和lvextend的使用,以及正确的顺序。同时,提醒用户在操作前确保有备份,避免数据丢失。 最后,生成相关问题,可能涉及如何检查LVM结构,如何扩展虚拟磁盘,如何处理不同文件系统等情况。</think>### 分步解决方案:扩展或清理 `/dev/mapper/centos-root` 分区容量 #### 1. 检查当前磁盘和逻辑卷状态 **操作命令**: ```bash lsblk # 查看磁盘分区结构 df -h # 查看文件系统使用情况 vgs # 查看卷组剩余空间 lvs # 查看逻辑卷详情 ``` **说明**: - 确认 `/dev/mapper/centos-root` 所在卷组是否有可用空间(例如卷组 `centos`)[^2]。 - 若卷组无剩余空间,需从其他逻辑卷(如 `/dev/mapper/centos-home`)释放空间或扩展物理卷。 --- #### 2. 方案一:从 `/home` 分区转移空间(需 `home` 有冗余空间) **步骤**: 1. **卸载 `/home` 分区**: ```bash umount /home # 卸载分区 e2fsck -f /dev/mapper/centos-home # 检查文件系统 resize2fs /dev/mapper/centos-home 50G # 调整文件系统大小(示例:缩小至50G) lvreduce -L 50G /dev/mapper/centos-home # 缩小逻辑卷大小 ``` **注意**:XFS文件系统不支持缩小,需改用 `xfs_growfs` 或备份后重建分区。 2. **将释放的空间分配给 `/root`**: ```bash lvextend -L +50G /dev/mapper/centos-root # 扩展逻辑卷 resize2fs /dev/mapper/centos-root # 调整文件系统(ext4) # 若为XFS文件系统,则使用: xfs_growfs /dev/mapper/centos-root ``` 3. **重新挂载 `/home`**: ```bash mount /home ``` --- #### 3. 方案二:扩展物理卷(适用于VMware虚拟机或物理磁盘可扩容) **步骤**: 1. **在虚拟机设置中扩展磁盘**(例如从50G扩展至100G)。 2. **在系统中识别新空间**: ```bash echo 1 > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan # 刷新磁盘 pvresize /dev/sda2 # 扩展物理卷(假设原物理卷为sda2) ``` 3. **扩展逻辑卷**: ```bash lvextend -l +100%FREE /dev/mapper/centos-root # 占用全部剩余空间 resize2fs /dev/mapper/centos-root ``` --- #### 4. 清理冗余文件(临时措施) **操作命令**: ```bash # 清理旧内核和缓存 dnf autoremove # 删除旧软件包 journalctl --vacuum-size=100M # 限制日志大小 rm -rf /var/cache/dnf/* # 清理包管理器缓存 ``` --- #### 5. 注意事项 - **备份数据**:调整分区前需备份 `/home` 和关键数据。 - **文件系统类型**:使用 `lsblk -f` 确认文件系统类型(如 `ext4` 或 `xfs`)。 - **系统救援模式**:若操作导致系统无法启动,需通过Live CD或救援模式修复[^3]。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值