小知识 - 迁移 /home 到新分区以及复原
1 备份/home 目录
[root@CentOS8 ~]#cp -av /home /data/backup
'/home' -> '/data/backup'
'/home/dawn' -> '/data/backup/dawn'
'/home/dawn/.bash_logout' -> '/data/backup/dawn/.bash_logout'
'/home/dawn/.bash_profile' -> '/data/backup/dawn/.bash_profile'
'/home/dawn/.bashrc' -> '/data/backup/dawn/.bashrc'
2 创建新分区
[root@CentOS8 ~]#fdisk /dev/sdb
Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x2dffab79.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-104857599, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): +5G
Created a new partition 1 of type 'Linux' and of size 5 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
3 查看分区并给新分区创建文件系统
#3.1 此步骤为查看
[root@CentOS8 ~]#lsblk
#3.2 创建文件系统,并给这个文件系统加了卷标名,为/home
[root@CentOS8 ~]#mkfs.ext4 /dev/sdb1 -L /home
mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1310720 4k blocks and 327680 inodes
Filesystem UUID: 3703d4de-c940-4632-844d-9dbbd2cd6581
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
4 创建挂载目录,并挂载分区(临时挂载)
#4.1 创建挂载目录
[root@CentOS8 ~]#mkdir /mnt/home
#4.2 挂载分区
[root@CentOS8 ~]#mount /dev/sdb1 /mnt/home
#4.3 查看是否挂载成功(确认挂载没问题,此步骤可省略)
[root@CentOS8 ~]#lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 50G 0 disk
└─sdb1 8:17 0 5G 0 part /mnt/home
5 发送通知告知其他用户或切换到单用户模式
注意:切换到单用户模式后,会处于网络断开的状态
[root@CentOS8 ~]#init 1
6 复制/home 中的所有数据到挂载目录中,并删除/home 目录中的记录(数据已备份的情况下)
[root@CentOS8 ~]#cp -av /home/* /mnt/home
'/home/dawn' -> '/mnt/home/dawn'
'/home/dawn/.bash_logout' -> '/mnt/home/dawn/.bash_logout'
'/home/dawn/.bash_profile' -> '/mnt/home/dawn/.bash_profile'
'/home/dawn/.bashrc' -> '/mnt/home/dawn/.bashrc'
[root@CentOS8 ~]#rm -rf /home/*
7 将分区条目信息保存在分区表(即:/etc/fstab)中,持久生效
#7.1 获取/dev/sdb1 的UUID
[root@CentOS8 ~]#blkid /dev/sdb1
/dev/sdb1: LABEL="/home" UUID="3703d4de-c940-4632-844d-9dbbd2cd6581" TYPE="ext4" PARTUUID="2dffab79-01"
#7.2 方式1:将UUID 信息追加到/etc/fstab 中(请注意格式)
[root@CentOS8 ~]#echo "UUID=3703d4de-c940-4632-844d-9dbbd2cd6581 /home ext4 defaults 0 0" >> /etc/fstab
#7.2 方式2:直接在/etc/fstab 文件中修改
[root@CentOS8 ~]#vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Aug 6 20:09:34 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=023f28a6-d096-4212-be36-d967bd2438b4 / xfs defaults 0 0
UUID=7f19b937-01fc-4567-9f80-bdcf5f48f77b /boot ext4 defaults 1 2
UUID=749e066f-ee5c-4a70-a306-94ff1de989c7 /data xfs defaults 0 0
UUID=89c08ea3-ce6f-496b-9757-33826a48b5c4 swap swap defaults 0 0
#7.3 查看/etc/fstab 是否填写正确(此步骤可省略)
[root@CentOS8 ~]#cat /etc/fstab
……注释信息已省略……
UUID=023f28a6-d096-4212-be36-d967bd2438b4 / xfs defaults 0 0
UUID=7f19b937-01fc-4567-9f80-bdcf5f48f77b /boot ext4 defaults 1 2
UUID=749e066f-ee5c-4a70-a306-94ff1de989c7 /data xfs defaults 0 0
UUID=89c08ea3-ce6f-496b-9757-33826a48b5c4 swap swap defaults 0 0
UUID=3703d4de-c940-4632-844d-9dbbd2cd6581 /home ext4 defaults 0 0
8 建议查看下分区对比,确保此前步骤没有问题
[root@CentOS8 ~]#ls /home /mnt/home
/home:
dawn lost+found
/mnt/home:
dawn lost+found
9 取消临时挂载,并删除挂载目录
[root@CentOS8 ~]#umount /mnt/home
[root@CentOS8 ~]#rm -rf /mnt/home
10 如果是切换到了单用户模式,需切换到原来的模式
[root@CentOS8 ~]#init 5
配置成功
[root@CentOS8 ~]#lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 50G 0 disk
└─sdb1 8:17 0 5G 0 part /home
复原过程
1 取消挂载
[root@CentOS8 ~]#umount /home
[root@CentOS8 ~]#lsblk
2 删除在/etc/fstab 中挂载的条目信息
3 刷新挂载项
[root@CentOS8 ~]#mount -a
4 将备份文件还原到/home 中
[root@CentOS8 ~]#cp -av /data/backup/* /home