CentOS7 系统盘备份迁移案例【大硬盘迁移到小硬盘,新思路】
因为原来是500G的机械硬盘,实际使用才几G。所以打算换成容量小的固态硬盘,或者镜像虚拟化云化改造,虚拟磁盘小。
网上搜索的教程,基本上是不支持迁移到小硬盘的,都得比源盘一样大或者更大。
收集源磁盘相关信息
此步骤很重要,后面需要在新的磁盘创建相同的分区表。
fdisk -l
启动CentOS安装盘,按步骤进入命令行
可在官网下载相同大版本的系统安装盘,Minimal或者NetInstall版本都可以。
添加新的虚拟磁盘并挂载(或者挂载U盘、移动硬盘等)
注:新的虚拟磁盘或者U盘都是作为中转磁盘使用。
虚拟磁盘需要格式化(ext4),U盘或者移动硬盘等格式OK只需要挂载。
下面以添加新的虚拟磁盘为例:
fdisk -l #查看一下新添加的磁盘是哪个,本机是/dev/sdb
mkfs.ext4 /dev/sdb #输入y回车确定格式化
mkdir /data && mount /dev/sdb /data #挂载/dev/sdb到/data
mkdir /sda1 /sda2 /centos-root #根据原盘分区创建对应文件夹,准备挂载
mount /dev/sda1 /sda1 #挂载/dev//sda1到//sda1
mount /dev/sda2 /sda2 #挂载/dev/sda2到/sda2
vgchange -ay centos #激活VG卷组centos
mount /dev/centos/root /centos-root #挂载VG卷组centos-root到/centos-root
备份文件到中转的磁盘
cp -aur /sda1/* /data/sda1/ #复制sda1的数据到中转盘
cp -aur /sda2/* /data/sda2/ #复制sda2的数据到中转盘
xfsdump -f /data/centos-root.dump /centos-root #使用xfsdump创建原盘根目录镜像到中转盘
============================= dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> centos-root #指定备份会话标签,此处需要手动输入
session label entered: "centos-root"
--------------------------------- end dialog ---------------------------------
============================= media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> sda3 #指定设备标签,就是对要备份的设备做一个描述
media label entered: "sda3"
--------------------------------- end dialog ---------------------------------
xfsdump: Dump Status: SUCCESS
备份完成后,执行init 0
关机
移除原始盘,添加新磁盘,按原盘进行分区
移除原始盘防止文件分区错乱,也防止误删误格式化原盘。
开机,重新进入到Live CD的SHELL命令行中
#因本文环境中原盘使用的是GPT分区,故需要使用parted来创建GPT分区
parted /dev/sda #注意查看新的磁盘是否是sda
mklabel gpt #然后输入yes确定创建GPT
quit #退出
fdisk /dev/sda #使用fdisk继续创建分区
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #创建分区
Partition number (1-128, default 1): #回车
First sector (34-125829086, default 2048): #回车
Last sector, +sectors or +size{K,M,G,T,P} (2048-125829086, default 125829086): +200M #创建200M,根据原盘大小确定
Created partition 1
Command (m for help): n #创建分区
Partition number (2-128, default 2): #回车
First sector (34-125829086, default 411648): #回车
Last sector, +sectors or +size{K,M,G,T,P} (411648-125829086, default 125829086): +1024M #创建1024M,根据原盘大小确定
Created partition 2
Command (m for help): n #创建分区
Partition number (3-128, default 3): #回车
First sector (34-125829086, default 2508800): #回车
Last sector, +sectors or +size{K,M,G,T,P} (2508800-125829086, default 125829086): #使用剩下空间,直接回车
Created partition 3
Command (m for help): t #修改分区类型
Partition number (1-3, default 3): 1 #选择第一分区
Partition type (type L to list all types): 1 #根据原盘,选择修改为EFI分区
Changed type of partition 'Linux filesystem' to 'EFI System'
Command (m for help): t #修改分区类型
Partition number (1-3, default 3): 2 #选择第二分区
Partition type (type L to list all types): 11 #根据原盘,选择修改为Microsoft basic分区
Changed type of partition 'Linux filesystem' to 'Microsoft basic data'
Command (m for help): t #修改分区类型
Partition number (1-3, default 3): 3 #选择第三分区
Partition type (type L to list all types): 31 #根据原盘,选择修改为Linux LVM分区
Changed type of partition 'Linux filesystem' to 'Linux LVM'
Command (m for help): p #显示分区表
Disk /dev/sdb: 64.4 GB, 64424509440 bytes, 125829120 sectors
Disk label type: gpt
Disk identifier: 20B7D567-3D8C-45D4-9BBF-E0911D5EA883
# Start End Size Type Name
1 2048 411647 200M EFI System
2 411648 2508799 1G Microsoft basic
3 2508800 125829086 58.8G Linux LVM
Command (m for help): w #确定分区无误,输入w保存退出
The partition table has been altered!
根据原盘分区格式,格式化分区
mkfs.vfat /dev/sda1
mkfs.xfs /dev/sda2
创建根目录和swap使用的逻辑卷,并挂载
pvcreate /dev/sda3 #创建PV卷
vgcreate centos /dev/sda3 #创建VG卷
lvcreate -L 48G -n root centos #创建根目录lv卷,注意修改容量大小,不能超过sda3的大小,需要留一部分空间给swap使用
lvcreate -l 100%FREE -n swap centos #使用剩下空间创建swap lv卷
mkfs.xfs /dev/centos/root #格式化根目录分区
mkswap /dev/centos/swap #格式化swap交换分区
挂载新磁盘和中转磁盘
mkdir /centos-root /sda1 /sda2 /data
mount /dev/sdb /data
mount /dev/sda1 /sda1
mount /dev/sda2 /sda2
mount /dev/centos/root /centos-root
还原文件和镜像到新磁盘
cp -aur /data/sda1/ /sda1/* #复制中转盘的sda1数据到新磁盘
cp -aur /data/sda2/ /sda2/* #复制中转盘的sda2数据到新磁盘
xfsrestore -f /data/centos-root.dump /centos-root #使用xfsrestore还原根目录镜像到新磁盘
修改fstab文件磁盘标识方式UUID
blkid #获取磁盘的UUID
vi /centos-root/etc/fstab #对应修改然后保存
修复系统引导
注意系统引导方式是BIOS还是UEFI
#CD下的SHELL更新方法:
grub-mkconfig -o /sda1/boot/grub/grub.cfg #BIOS引导
grub-mkconfig -o /sda1/EFI/centos/grub.cfg #UEFI引导
init 0 #关机
#进入系统后的SHELL更新方法:
grub-mkconfig -o /boot/grub/grub.cfg #BIOS引导
grub-mkconfig -o /boot/efi/EFI/centos/grub.cfg #UEFI引导
扫尾工作,处理网卡UUID问题
移除中转磁盘,调整系统引导方式。
开机后发现网卡UUID有变更,对应修改即可。
nmcli con #查看网卡的UUID信息,记下UUID值
cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0 #修改对应地方,然后重启网络
systemctl restart network
此处评论已关闭