电源故障后,我今天遇到了这个问题。
我有2 vms,其中一个将无法启动,并正在使用100%的CPU和100%的内存。
由于解决这个问题非常困难(至less对我而言),我想在这里详细介绍我为解决这个问题所做的一些步骤,并混合了很多教程。
我也有这个问题。 这帮助了我 :
问题可能是GRUB不发送信号video。
我已经看到了很多关于这个的话题,而且我的虚拟机很可能被卡在这个GRUB屏幕上,你必须select要引导的操作系统 ( 通过按回车 来引导它们)。
https://askubuntu.com/questions/372164/how-to-load-ubuntu-server-automatically-in-grub
因为这也发生在断电后,在一个非虚拟化的电脑。
只需点击空白区域,按回车,然后开始启动。
首先,我尝试使用Ubuntu服务器安装CD,然后重新启动一个损坏的系统,然后尝试重新安装GRUB,但是失败了。
然后我用Force Shutdownclosures失败的虚拟机。
其次,在XenCenter控制台中列出VM
[root@xen01 ~]# xe vm-list uuid ( RO) : d56d5ae8-62de-5e7e-41f9-1bd707d727d9 name-label ( RW): fdev-appgw power-state ( RO): halted uuid ( RO) : 87aba275-0e05-4160-bebf-efc85fe93386 name-label ( RW): fdev-tracker power-state ( RO): halted uuid ( RO) : c81439c2-a345-4f04-947e-34554718ce7e name-label ( RW): Control domain on host: fdev-xen01 power-state ( RO): running
fdev-tracker是一个失败的。
列出它的磁盘。 我必须承认我不知道为什么我在这里有两个磁盘,因为我对Linux比较陌生。 但是我使用了第一个,那就是Device:hdb
[root@xen01 ~]# xe vbd-list vm-name-label=fdev-tracker uuid ( RO) : d461e06d-9cc3-7762-f141-0b3d2abe7b3c vm-uuid ( RO): 87aba275-0e05-4160-bebf-efc85fe93386 vm-name-label ( RO): fdev-tracker vdi-uuid ( RO): 92dd9489-b450-4766-8853-b8b2fc9597ad empty ( RO): false device ( RO): hdb uuid ( RO) : 969fc0c8-1fcf-ed2c-ed6e-a71dc3c359d9 vm-uuid ( RO): 87aba275-0e05-4160-bebf-efc85fe93386 vm-name-label ( RO): fdev-tracker vdi-uuid ( RO): ba9e2ed8-c9db-4f95-8f14-2d51c99ea992 empty ( RO): false device ( RO): hdd
之后,我把这个命令能够挂载在我的其他Linux VM的磁盘。 我不知道他们到底做了什么,但是这正是教程所说的。 请注意,d56d5ae8-62de-5e7e-41f9-1bd707d727d9是工作虚拟机的UUID。 之前我遇到过问题,因为这个教程没有明确说明。 92dd9489-b450-4766-8853-b8b2fc9597ad是发生故障的机器VDI的UUID。
[root@xen01 ~]# xe vbd-create vm-uuid=d56d5ae8-62de-5e7e-41f9-1bd707d727d9 vdi-uuid=92dd9489-b450-4766-8853-b8b2fc9597ad device=autodetect 91022555-2b86-4faf-cce1-eb62efc8aab7
它输出一个UUID。 我用它把它插到工作机器上。
[root@xen01 ~]# xe vbd-plug uuid=91022555-2b86-4faf-cce1-eb62efc8aab7
之后,我把工作的虚拟机ssh'ed并进入parted
:
jsivil@appgw:/proc$ sudo parted GNU Parted 2.3 Using /dev/xvda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print devices /dev/xvda (10,7GB) /dev/xvdb (21,5GB) (parted) quit
/dev/xvdb
这一个21 GB的是虚拟机的磁盘。
我试图做一个fsck:
jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/xvdb fsck from util-linux 2.20.1 fsck.ext2: Bad magic number in super-block while trying to open /dev/xvdb /dev/xvdb: The superblock could not be read or does not describe a valid ext2/ext3/ext4 filesystem. If the device is valid and it really contains an ext2/ext3/ext4 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock: e2fsck -b 8193 <device> or e2fsck -b 32768 <device>
但是我记得当我格式化时,它有2个分区,一个用于整个文件系统(ext4),另一个用于swap(我想是ext3)。 所以也许这是造成麻烦。
然后我看到另一个教程,它使用了一个名为kpartx
的程序。 我没有,所以我做了:
sudo apt-get install kpartx
然后我做了:
jsivil@appgw:/proc$ sudo kpartx -a /dev/xvdb
它似乎使分区可见或类似的东西。 他们现在在/ dev / mapper /
jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/mapper/ #tab press control xvdb1 xvdb2 xvdb5 So I made the fsck on all xvdb*: jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/mapper/xvdb1 fsck from util-linux 2.20.1 /dev/mapper/xvdb1: Updating bad block inode. 126881 inodes used (10.05%, out of 1262320) 65 non-contiguous files (0.1%) 120 non-contiguous directories (0.1%) # of inodes with ind/dind/tind blocks: 0/0/0 Extent depth histogram: 117890/29 778957 blocks used (15.43%, out of 5047040) 0 bad blocks 1 large file 99695 regular files 17528 directories 55 character device files 25 block device files 0 fifos 28 links 9564 symbolic links (8869 fast symbolic links) 5 sockets ------------ 126900 files jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/mapper/xvdb xvdb1 xvdb2 xvdb5 jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/mapper/xvdb2 fsck from util-linux 2.20.1 fsck.ext2: Attempt to read block from filesystem resulted in short read while trying to open /dev/mapper/xvdb2 Could this be a zero-length partition? jsivil@appgw:/proc$ sudo fsck -p -c -v -f /dev/mapper/xvdb5 fsck from util-linux 2.20.1 fsck: fsck.swap: not found fsck: error 2 while executing fsck.swap for /dev/mapper/xvdb5
我不知道为什么它在xvdb2上失败(也不知道它是什么,因为对我来说应该只有2个分区)。 xvdb5被交换,所以这不重要。 接下来,我尝试挂载,看看是否能够看到我的文件(我能够使用Ubuntu服务器光盘),但我很好奇。
cd to /run/shm jsivil@appgw:/run/shm$ mkdir /run/shm/a jsivil@appgw:/run/shm$ sudo mount -t ext4 /dev/mapper/xvdb1 a
我cd'ed到“一个”,一切都在那里。 我下载了它。
接下来,我回到了关于XenServer的主要指南,并尝试从VM中拔出它
[root@xen01 ~]# xe vbd-unplug uuid=91022555-2b86-4faf-cce1-eb62efc8aab7 The VM rejected the attempt to detach the device. type: VBD ref: 91022555-2b86-4faf-cce1-eb62efc8aab7 msg:
看起来,正在运行的虚拟机中的一些先前的步骤使磁盘处于“正在使用”状态或什么东西。
所以我重新启动了工作的虚拟机。 试图再次这样做,但虚拟机仍在重新启动。 所以我得到了另一个错误。 等到它完成,并能够做到这一点。
[root@xen01 ~]# xe vbd-unplug uuid=91022555-2b86-4faf-cce1-eb62efc8aab7 You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected. vm: d56d5ae8-62de-5e7e-41f9-1bd707d727d9 (fdev-appgw) [root@xen01 ~]# xe vbd-unplug uuid=91022555-2b86-4faf-cce1-eb62efc8aab7 [root@xen01 ~]# xe vbd-destroy uuid=91022555-2b86-4faf-cce1-eb62efc8aab7
所有这一切,我试图启动失败的机器,但我没有运气:(同样的问题是在那里,100%的CPU和100%的内存。
我把Ubuntu服务器安装光盘(我有ISO存储),并强制重新启动。 inputRescue Broken System,并将xvdb1安装为我的根文件系统。 之后,我去“重新安装GRUB”。 记得之前没有,但这一次它成功了。
我popup了CD并重新启动。
我的虚拟机再次工作!
这似乎是一个罕见的问题,因为我无法find关于这个的很多信息,只有一个人在ServerFault,但没有工作的答案(如破坏VM域或类似的东西)。
我希望它能帮助别人,并且随意编辑,并清除我不知道的概念。