Primeiro, tentei usar o CD de instalação do servidor Ubuntu e ir para Recue a Broken System, depois tentei reinstalar o GRUB, mas ele falhou.
Em seguida, encerrei a VM com falha com o encerramento forçado.
Em segundo lugar, listamos as VMs no XenCenter Console
[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
O fdev-tracker foi o que falhou.
Listados são discos. Devo admitir que não sei porque tenho 2 discos aqui, pois sou relativamente novato no Linux. Mas eu usei o primeiro, o que diz 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
Depois eu coloquei estes comandos para poder montar o disco na minha outra VM Linux. Eu não sei exatamente o que eles fazem, mas é o que os tutoriais dizem.
Por favor, note que d56d5ae8-62de-5e7e-41f9-1bd707d727d9 é o UUID da VM funcionando . Eu tive problemas antes porque o tutorial não esclareceu isso.
92dd9489-b450-4766-8853-b8b2fc9597ad é o UUID da máquina VDI com falha .
[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
Produz um UUID. Eu usei para ligá-lo à máquina de trabalho.
[root@xen01 ~]# xe vbd-plug uuid=91022555-2b86-4faf-cce1-eb62efc8aab7
Depois, ssh'ed a VM que está funcionando e inseri 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
este, de 21 GB, é o disco da VM com falha.
Eu tentei fazer um fsck nele:
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>
Mas eu lembrei que quando eu formatava, tinha 2 partições, uma para o sistema de arquivos inteiro (ext4) e outra para swap (ext3 eu acho). Então talvez isso estivesse causando problemas.
Então eu vi outro tutorial, ele estava usando um programa chamado kpartx
. Eu não tinha, então eu fiz:
sudo apt-get install kpartx
Eu então fiz:
jsivil@appgw:/proc$ sudo kpartx -a /dev/xvdb
Parece que torna as partições visíveis ou algo parecido. Eles estão agora em / 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
Eu não sei porque falhou no xvd2 (nem o que é, porque para mim deveria ter apenas 2 partições). O xvdb5 era swap, então isso não era importante.
Em seguida, eu tentei montar para ver se eu era capaz de ver meus arquivos (eu era capaz de usar o CD do Ubuntu Server), mas fiquei curioso.
cd to /run/shm
jsivil@appgw:/run/shm$ mkdir /run/shm/a
jsivil@appgw:/run/shm$ sudo mount -t ext4 /dev/mapper/xvdb1 a
Eu gravei para "a" e tudo estava lá. Eu desisto disso.
Em seguida, voltei ao guia principal sobre o XenServer e tentei desconectá-lo da 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:
Parece que algumas das etapas anteriores da VM funcional tinham o disco em estado "em uso" ou algo assim.
Então, reiniciei a VM funcional. Tentei fazer isso de novo, mas a VM ainda estava reiniciando. Então eu tenho outro erro. Esperou até terminar e foi capaz de fazê-lo.
[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
Depois de tudo isso, eu tentei inicializar a máquina com falha , mas eu não tive sorte :(
O mesmo problema estava lá, 100% de CPU e 100% de memória.
Eu coloquei o CD de instalação do servidor Ubuntu (eu tenho em armazenamento ISO) e force a reinicialização. Entrou no Rescue Broken System e montou o xvdb1 como meu sistema de arquivos raiz. Depois disso, fui para "Reinstalar o GRUB". Lembre-se que estava falhando anteriormente, mas desta vez ele conseguiu.
Eu ejetei o CD e reiniciei.
Minha VM está funcionando novamente
Este parece ser um problema raro, porque eu não consegui encontrar muita informação sobre isso, apenas um cara no ServerFault, mas sem resposta de trabalho (como destruir o domínio vm ou algo parecido).
Espero que ajude alguém e sinta-se à vontade para editá-lo e esclarecer os conceitos que não conheço.