【Linux】以 CentOS 为例备份与恢复/home分区,并调整分区容量
在 Linux 系统中,这里举例对/home目录进行备份、重建和恢复操作,并调整分区大小、更换文件系统或修复损坏的分区等。
·
在 Linux 系统中,这里举例对 /home
目录进行备份、重建和恢复操作,并调整分区大小、更换文件系统或修复损坏的分区等。
〇、前提条件
-
确认文件系统类型为
xfs
。 -
确认
/home
目录确实没有重要数据,或者已经做好了数据备份。 -
确保在执行这些操作之前,系统处于稳定状态,并且最好是在非生产环境或维护窗口内进行。
-
修改前,可查看
/home
为 241G
# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 9.5M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 7.1G 43G 15% /
/dev/mapper/centos-home 241G 38M 241G 1% /home
/dev/sda1 1014M 234M 781M 23% /boot
tmpfs 1.6G 8.0K 1.6G 1% /run/user/42
tmpfs 1.6G 0 1.6G 0% /run/user/0
一、检查文件系统类型
- 确认
/home
使用的文件系统类型确实是xfs
。- 命令:
lsblk -f | grep centos-home
- 解释:这条命令会列出所有块设备及其文件系统类型,通过 grep 过滤出 centos-home 相关的信息。
- 命令:
# lsblk -f | grep centos-home
└─centos-home xfs edfa708e-d1e3-4bb2-8022-d810edda31a0 /home
二、备份 /home 目录
- 使用 tar 命令备份
- 命令:
tar cvpf /tmp/home_backup.tar /home
- 解释:将
/home
目录的内容压缩并打包成一个名为home_backup.tar
的文件,存放在/tmp
目录中。 - 注意事项:使用
-p
选项保留文件权限。
- 命令:
# tar -cvpf /tmp/home_backup.tar /home
tar: 从成员名中删除开头的“/”
/home/
/home/user01/桌面/
/home/user01/下载/
/home/user01/模板/
/home/user01/公共/
/home/user01/文档/
/home/user01/音乐/
/home/user01/图片/
/home/user01/视频/
三、卸载并删除原有的 /home 逻辑卷(如果需要)
- 卸载 /home 文件系统
- 命令:
umount /home
- 解释:卸载
/home
文件系统,以便进行后续操作。
- 命令:
# umount /home
- 删除原有的 /home 逻辑卷
- 命令:
lvremove /dev/mapper/centos-home
- 解释:删除名为
centos-home
的逻辑卷。请根据实际情况替换卷名。
- 命令:
# lvremove /dev/mapper/centos-home
Do you really want to remove active logical volume centos/home? [y/n]: y
Logical volume "home" successfully removed
四、重建 /home 逻辑卷
- 创建新的 /home 逻辑卷
- 命令:
lvcreate -L <所需大小>G -n home centos
- 解释:创建一个新的逻辑卷,大小为
<所需大小>
GB,卷名为home
,所属卷组为centos
。请根据实际情况替换大小和卷组名。
- 命令:
# lvcreate -L 30G -n home centos
WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/centos/home.
Logical volume "home" created.
- 格式化新的 /home 逻辑卷
- 命令:
mkfs.xfs /dev/mapper/centos-home
- 解释:将新的逻辑卷格式化为 XFS 文件系统。如果使用其他文件系统,请替换相应的格式化命令。
- 命令:
# mkfs.xfs /dev/mapper/centos-home
meta-data=/dev/mapper/centos-home isize=512 agcount=4, agsize=1966080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=7864320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=3840, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
五、挂载新的 /home 逻辑卷
- 命令:
mount /dev/mapper/centos-home /home
- 解释:将新的逻辑卷挂载到
/home
目录。
# mount /dev/mapper/centos-home /home
六、恢复备份的内容
- 使用 tar 命令恢复
- 命令:
tar xvpf /tmp/home_backup.tar -C /
- 解释:将
/tmp/home_backup.tar
文件中的内容解压到/home
目录中,注意tar
中包含home
路径,同时保留文件权限。
- 命令:
# tar -xvpf /tmp/home_backup.tar -C /
/
/home/
/home/user01/桌面/
/home/user01/下载/
/home/user01/模板/
/home/user01/公共/
/home/user01/文档/
/home/user01/音乐/
/home/user01/图片/
/home/user01/视频/
六、验证恢复结果
-
检查 /home 目录内容
- 操作:直接浏览
/home
目录,确认文件已正确恢复。
- 操作:直接浏览
-
检查文件权限
- 命令:
ls -l /home
- 解释:查看
/home
目录下的文件权限,确认与备份前一致。
- 命令:
七、 扩展 / 逻辑卷
- 检查释放的空间
- 命令:
vgs
- 解释:
- 命令:
# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- <299.00g 211.12g
- 接下来,将释放出的空间分配给
/
逻辑卷。- 命令:
lvextend
- 解释:这条命令会将 /dev/mapper/centos-root 逻辑卷扩展 200G。请确保卷组中有足够的空闲空间。
- 命令:
lvextend -L +211G /dev/mapper/centos-root
这条命令会将 /dev/mapper/centos-root
逻辑卷扩展 200G。请确保卷组中有足够的空闲空间。
八、调整 / 文件系统大小
- 命令:
xfs_growfs
- 解释:
/
逻辑卷已经扩展,但我们还需要调整文件系统的大小以使用新添加的空间。这条命令会扩展xfs
文件系统以使用逻辑卷的全部空间。
# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 bloc
- 检查磁盘使用情况
- 命令:
df -lh
- 解释:查看新的
/home
文件系统的磁盘使用情况。 - 命令:
lvs
- 解释:lvs 命令会列出所有逻辑卷的信息,包括它们的大小
- 命令:
# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 9.5M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 261G 7.1G 254G 3% /
/dev/sda1 1014M 234M 781M 23% /boot
tmpfs 1.6G 12K 1.6G 1% /run/user/42
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/centos-home 30G 38M 30G 1% /home
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 30.00g
root centos -wi-ao---- 261.00g
swap centos -wi-ao---- <7.88g
注意事项
- 权限问题:在打包和恢复时,务必使用
-p
或--preserve-permissions
选项保留文件权限,以避免恢复后出现权限错误。 - 备份安全:在执行任何操作前,确保备份文件存放在安全的位置,并验证备份的完整性。
- 权限要求:执行上述操作需要 root 权限或相应的管理员权限。
更多推荐
已为社区贡献1条内容
所有评论(0)