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
即使在 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了.