之前公司现场用的centos系统老机器,500G的机械硬盘实际只用了10多G,就买了240G的SSD。之前再生龙做的镜像是500G,那么现在的问题来了,再生龙还原硬盘不支持大到小。不想重新装系统再配置,从网上看了很多资料,分享下我的迁移过程。
fdisk -l 查看系统硬盘的挂载情况
我的旧硬盘是/dev/sda ,新硬盘是 /dev/sdb 这个根据自己的实际情况
之前设备是做了LVM分区
fdisk /dev/sdb 对于新硬盘进行分区
Command (m for help): n 创建新分区
p 主分区 1 号分区 1 起始扇区(这里可以默认值)结束扇区+800M --建立800M的1号分区
p ,2号分区 其余都是默认值 --将剩余的空间建立成2分区
t ,2 ,8e --将之前的2号分区改成LVM格式
a ,1 --将1号分区做引导激活
w保存分区
pvcreate /dev/sdb2 --将sdb2创建物理卷
vgcreate lvmgv01 /dev/sdb2 --组卷
lvcreate -L 4G -n lv_swap lvmgv01 --从lvmgv01里面建立交换分区lv_swap
lvcreate -l 100%free -n lv_root lvmgv01 --将剩余的空间给根分区
mkfs.ext4 /dev/sdb1--格式化引导分区/boot
mkfs.ext4 /dev/lvmgv01/lv_root --格式化根分区/
mkswap -f /dev/lvmgv01/lv_swap --格式化交换区
vgscan --nknodes
vgchange -ay lvmgv01--激活VG卷组lvmgv01
mkdir /mnt/oldboot /mnt/oldroot /mnt/newboot /mnt/newboot --创建4个文件夹
mount /dev/sda1/ /mnt/oldboot/--挂载
mount /dev/sdb1/ /mnt/newboot/
mount /dev/vg_localhost/lv_root/ /mnt/oldroot/
mount /dev/lvmgv01/lv_root/ /mnt/newroot/
cp -aur /mnt/oldboot/* /mnt/newboot/ --复制sda1的数据到sdb1
cp -aur /mnt/oldroot/* /mnt/newroot/ --复制根目录下数据
-----------------------------------完成数据的cp---------------------------------------------------
1.修改mnt/newboot/grub/grub.conf,
我们主要修改的就是下面这段
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=/dev/mapper/lvmgv01-lv_root(加粗为实际的路径,这是笔者的)rd_NO_LUKS rd_NO_DM rd_LVM_LV=lvmgv01/lv_swap= auto.LANG=zh_CN.UTF-8 rd_LVM_LV=lvmgv01/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD rhgb quiet
2.修改mnt/newroot/etc/fstab,
主要是将现在的路径替换,UUID需要用blkid来查看
3.grub引导
笔者一开始没有引导,导致开机画面只有光标,没有进入系统
这边笔者通过启动盘的resume来进入grub命令的,后面我就不赘述了,网上都有。
进入后直接grub,因为之前我们grub.conf和fstab都已经修改过了,这边就直接引导
root (hd0,0)
setup(hd0)
quit
------------------------------------------现在就完成啦--------------------------------
可以拔下之前的硬盘就reboot,不行的话就先poweroff,后面就是见证奇迹的时刻了。
--------------------------------------网络设置问题(网卡不能修改或配置错误)--------------------------------
由于克隆,只是修改了机器的名字等信息,并没有修改虚拟硬盘中的任何信息,导致克隆后网卡的MAC地址和操作系统中记录的mac地址不符,导致eth0启动不起来。操作系统记录了一个新网卡的添加,新网卡的名字eth1,mac地址就是vmware分配给的新的mac地址
解决方法:
修改 /etc/udev/rules.d/70-persistent-net.rules 文件
删除掉 关于 eth0 的信息。修改 第二条 eth1 的网卡的名字为 eth0.
修改 /etc/sysconfig/network-scripts/ifcfg-eth0 中mac地址为 /etc/udev/rules.d/70-persistent-net.rules 修改后的eth0的mac地址。