CentOS 7下为/var/www分配空间的分区调整方案咨询
先解答你关于最后两个tmpfs的疑问:
/run/user/1000和/run/user/1002是用户专属临时文件系统,分别对应UID为1000和1002的普通用户。它们用来存储用户会话的临时数据(比如桌面应用缓存、进程临时文件),用户注销或会话结束后会自动清空,完全不影响你的分区调整操作,不用在意它们。
接下来针对你的核心需求——给/var/www扩容,同时保留原路径、避免SELinux权限问题,分两种情况处理(取决于你的/home分区文件系统类型):
情况1:/home是ext4文件系统(支持缩小)
先通过blkid /dev/mapper/centos-home查看TYPE字段确认,如果是ext4,按以下步骤操作:
备份/home数据(重要!避免操作失误丢失数据):
tar -zcvf /tmp/home_backup.tar.gz /home如果你/tmp空间不够,可以把备份文件存到外部存储(比如U盘)。
卸载/home分区:
umount /home如果提示"target is busy",先杀掉占用/home的进程:
fuser -km /home或者切换到单用户模式操作(更安全):
systemctl isolate multi-user.target检查并缩小/home文件系统:
先检查文件系统完整性:e2fsck -f /dev/mapper/centos-home然后将文件系统缩小到32GB:
resize2fs /dev/mapper/centos-home 32G缩小/home逻辑卷:
lvreduce -L 32G /dev/mapper/centos-home出现确认提示时输入
y。重新挂载/home并验证:
mount /home df -h /home此时/home应该显示为32GB左右,剩余空间已释放到LVM卷组。
扩容根分区(/var/www在根分区下):
把所有释放的空闲空间加到根逻辑卷:lvextend -l +100%FREE /dev/mapper/centos-root然后扩容根分区的文件系统(CentOS7根分区默认是XFS,用以下命令):
xfs_growfs /dev/mapper/centos-root完成后用
df -h /验证根分区空间已增大,/var/www的可用空间也会随之增加,且路径完全不变,SELinux上下文也不会受影响(因为没移动文件)。
情况2:/home是XFS文件系统(CentOS7默认,不支持缩小)
XFS文件系统只能扩容,无法直接缩小,所以需要删除原/home逻辑卷,重建一个32GB的/home,再用剩余空间创建新逻辑卷挂载到/var/www:
备份/home和/var/www数据:
# 备份/home tar -zcvf /tmp/home_backup.tar.gz /home # 备份/var/www tar -zcvf /tmp/www_backup.tar.gz /var/www确保备份文件存储在安全位置(比如外部存储)。
卸载/home分区:
umount /home若提示忙,用
fuser -km /home杀进程或切换到单用户模式。删除原/home逻辑卷:
lvremove /dev/mapper/centos-home输入
y确认删除。创建32GB的新/home逻辑卷并格式化:
# 创建逻辑卷(centos是默认卷组名,可用vgs命令确认) lvcreate -L 32G -n home centos # 格式化为XFS mkfs.xfs /dev/mapper/centos-home挂载新/home并恢复数据:
mount /home # 恢复/home数据 tar -zxvf /tmp/home_backup.tar.gz -C /创建新逻辑卷用于/var/www:
把卷组中所有空闲空间分配给新逻辑卷:lvcreate -l +100%FREE -n www centos # 格式化为XFS mkfs.xfs /dev/mapper/centos-www挂载新逻辑卷到/var/www并恢复数据:
# 先挂载到临时目录恢复数据 mount /dev/mapper/centos-www /mnt/www # 恢复/var/www数据 tar -zxvf /tmp/www_backup.tar.gz -C /mnt/www # 调整文件权限(假设网站用apache用户,nginx则替换为nginx:nginx) chown -R apache:apache /mnt/www # 恢复SELinux上下文(避免权限问题) restorecon -R /mnt/www设置开机自动挂载/var/www:
编辑/etc/fstab文件,添加以下一行:/dev/mapper/centos-www /var/www xfs defaults 0 0然后挂载到原路径:
mount /var/www验证结果:
用df -h /var/www查看空间,确认已扩容,且路径完全不变。SELinux方面,因为我们用restorecon恢复了上下文,不会出现权限问题。
重要注意事项
- 所有操作前必须备份数据,分区操作有风险,一旦失误可能导致数据丢失。
- 操作过程中如果遇到文件系统忙的问题,优先切换到单用户模式操作,避免损坏文件系统。
- 如果你的网站用的是其他用户(比如nginx),调整权限时要替换对应的用户组。
内容的提问来源于stack exchange,提问作者SeniorDeveloper

