P2V后LINUX 处理


/boot/

sh-3.2# mkinitrd -v -f initrd-2.6.18-164.el5.img $(uname -r)

                要打包的内核文件名     内核版本号


##更新当前虚拟机的内核;

#如果修复光盘与系统不一至的情况: $(uname -r)这里直接敲虚拟机的内核版本号;


问题集:

开机出现“Error loading operating system”的提示信息,只需要利用光盘进入恢复模式,修复一下grub就可以开机了,确保你的虚拟机硬盘类型为SCSI LSI Logic。  进入到恢复模式 


># fdisk -l  #查看第几块硬盘上的第几分区挂载到了/boot上,对应到下面的root (hd0,0)这里。  

># chroot /mnt/sysp_w_picpath/ 

># grub  

># root (hd0,0) 

># setup (hd0) 

># quit 

># exit 

># reboot 


重启后如果能看到grub,开机过程中出现“Kernel panic – not syncing: Attempted to kill init!”,而无法开机时,需要继续恢复模式下修改支持scsi驱动。  


上面两种原因是因为ESXI的虚拟机只支持scsi虚拟硬盘,当p2v完linux后,原来的IDE硬盘被换成虚拟的scsi硬盘,但linux仍然是ide设置,所以必须手工修改。就linux系统系统标准流程来说,修改ide为scsi有两种方法:一是修复grub。二是开机加载scsi驱动. 再次进入到恢复模式  


># chroot /mnt/sysp_w_picpath/ 

># vim /etc/modprobe.conf *添加下面一行   

alias scsi_hostadapter mptscsih 

># cd /boot/  

># mkinitrd -v -f initrd-`uname -r`.img `uname -r` 

># exit 

># reboot



###其它P2V转换教程

#http://demo.netfoucs.com/zhaoxu0312/article/details/23278035

1. Advanced options 中, Post-conversion的Reconfigure destination virtual machine不要選.

2. Virtual machine version 請選擇Version 7.

我選擇8跟9都發生以下轉換錯誤

FAILED: A general system error occurred:

Network error. Host key can’t be retrieved. (return code 2)


即使在 Hosts.allow 中加入了 ALL:ALL 也沒用.

先打開你的vShpere Client登入你的虛擬機器把它開機, 我發生的不是kernel panic, 是 error loading operating system.


這是因為grub掛掉了, 此時必須使用救援模式進去改.


開機選擇救援(rescue)並進入 shell 模式後, 先用 fdisk -l 看一下你現在是用哪顆硬碟開機. 像我的是 /dev/sda1 所以是第1顆硬碟, 指定就是


sh>chroot/mnt/sysp_w_picpath

sh>grub

grub>root (hd0,0)

grub>setup (hd0)

grub>quit

然後就可以重開機了, 如果你跟我一樣發生了 fsck.ext4 的錯誤訊息, 那是因為 /etc/fstab 中, 分割區的UUID跑掉了. 系統會停在詢問 root 帳號密碼的地方.


登入, 先執行mount指令, 不然 /etc/fstab 是唯讀的.

mount -o remount,rw /

用指令 blkid 去看一下 /boot 所在位置的UUID, 把這一串記起來, 我比較懶得記, 所以我是用


blkid>>/etc/fstab

把 blkid 的結果先存到 fstab裡面去, 然後再複製我要的那一行到 /boot 的 mount 那一行.



最後是網卡掛掉, 出現 no device found for connection ‘System eth0′.


到 /etc/sysconfig/network-scripts/ 看ifcfg-eth0, 再到 /etc/udev/rules.d/70-persistent-net.rules 看一下MAC是不是跑掉了.


我的狀況是, eth0綁定了原來實體機器的網卡MAC, 轉換後多了一張 eth2, eth2使用的是虛擬機器配置的MAC, 所以我把除了 ifcfg-eth2 之外的eth都砍光光, 把ifcfg-eth2改名為ifcfg-eth0, 然後去改 /etc/udev/rules.d/70-persistent-net.rules 的內容, 把eth0網卡MAC正確對映到. 這樣網路就OK了.