最初の試み

最初の試み

私のDebian 10(buster)XENホストでDebian jessieを使用して、LVMスナップショットのXen-VMを新しいxenゲストにコピーして起動しようとしました。これが私がしたことです:

xen VMをコピーしてメールサーバーのdistアップグレードをテストする

最初の試み

新しいコンピュータを作成し、xen-create-imagersyncを介してすべてのファイルを上書きしました。

これで、次のエラーが表示されます。

libxl: error: libxl_bootloader.c:649:bootloader_finished: Domain 35:bootloader failed - consult logfile /var/log/xen/bootloader.35.log

$ cat /var/log/xen/bootloader.35.log
Traceback (most recent call last):
  File "/usr/lib/xen-4.11/bin/pygrub", line 882, in <module>
    raise RuntimeError, "Unable to find partition containing kernel"
RuntimeError: Unable to find partition containing kernel

正しいブートローダを再作成する必要がありますか?

または、スナップショットを新しいイメージに再同期するときに特定のファイルを除外する必要がありますか?


修正する:

私もこれを試しました:

新しくインストールされたシステムでchrootを実行します。

mount /dev/vg0/vm01.mail-test-disk /media/vm01.mail-test-disk/
mount -t proc none /media/vm01.mail-test-disk/proc
mount --rbind /dev /media/vm01.mail-test-disk/dev
mount -t sysfs sysfs /media/vm01.mail-test-disk/sys
chroot /media/vm01.mail-test-disk/ /bin/bash

chrootシェルから:

apt install grub-pc

-->要求時に/dev/dm-33(622770MB; vg0-vm01.mail--test--disk)を選択して続行します。しかし失敗するようです。

update-grub

新しいエラー:

$ umount -l /media/vm01.mail-test-disk
$ xen create /etc/xen/vm01.mail-test.cfg

Parsing config from /etc/xen/vm01.mail-test.cfg
libxl: error: libxl_aoutils.c:478:libxl__openptys: openpty failed: No such file or directory
libxl: error: libxl_utils.c:1128:libxl__recvmsg_fds: recvmsg got EOF (ptys)
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: openpty child [20919] exited with error status 255
libxl: error: libxl_create.c:1267:domcreate_rebuild_done: Domain 37:cannot (re-)build domain: -3
libxl: error: libxl_domain.c:1034:libxl__destroy_domid: Domain 37:Non-existant domain
libxl: error: libxl_domain.c:993:domain_destroy_callback: Domain 37:Unable to destroy guest
libxl: error: libxl_domain.c:920:domain_destroy_cb: Domain 37:Destruction of domain failed

grub-xen代わりに試してみましたが、grub-pc同じエラーが発生しました。

Parsing config...他の画像を作成する場合でも、常に同じエラーが発生します。

 xen create /etc/xen/...cfg

最初からやり直しましたが、今回は重要なフォルダを除いて

rsync -aAX --del --info=progress2 /media/vm01.mail-disk-snapshot/ /media/vm01.mail-test-disk/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/boot/*,/var/tmp/*,/var/cache/*,/usr/tmp/*}

エラーメッセージは表示されませんが、VMにアクセスできません。

$xen create /etc/xen/vm01.mail-test.cfg

Parsing config from /etc/xen/vm01.mail-test.cfg

$xl console vm01.mail-test

xenconsole: Could not read tty from store: Success

xentop新しく作成したVMのCPU使用率を99%で表示します。

ソリューションのこの部分は次のとおりです。

/ devフォルダをマウントして、実行中のDom0 Xenホストシステムを停止したことを発見しました。

mount --rbind /dev /media/vm01.mail-test-disk/dev

chroot新しい仮想マシンの編集用 (ねえ)。修正された/ devを再起動し、--bindそれを使用してエラーが繰り返されるのを防ぎます。


アップデート2:

もう一度試してみましたフォーマット済みrsyncを起動する前のボリュームなので、除外されたフォルダは空で、Debianシステムを起動するためのコンテンツは含まれていません。

mkfs.ext4 /dev/vg0/vm01.mail-test-disk
rsync -aAX --del --info=progress2 /media/vm01.mail-disk-snapshot/ /media/vm01.mail-test-disk/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/boot/*,/var/tmp/*,/var/cache/*,/usr/tmp/*}

これで、仮想マシンが起動を開始して入力できるようになりましたが、xen-console次のエラーが発生します。


[....] Activating swap...[    6.228541] Adding 8388604k swap on /dev/xvda1.  Priority:-2 extents:1 across:8388604k SSFS
done.                                                     
[    6.282959] EXT4-fs (xvda2): re-mounted. Opts: (null)
[....] Checking root file system...fsck from util-linux 2.25.2
/dev/xvda2 has unsupported feature(s): metadata_csum           
e2fsck: Get a newer version of e2fsck!                               
fsck exited with status code 8                      
failed (code 8).                                    
[....] An automatic file system check (fsck) of the root filesystem failed. A manual fsck must be performed, then the system restarted. The fsck should be performed in maintenance mode with the root filesystem mounted in read-on
[FAILde. ... failed!                                                                                                
[warn] The root filesystem is currently mounted in read-only mode. A maintenance shell will now be started. After performing system maintenance, press CONTROL-D to terminate the maintenance shell and restart the system. ... (war
ning).                                                 

答え1

解決策が見つかりましたここ

jessieホスト上に作成されたext4ファイルシステムには、ストレッチサーバーが実行する機能はありません。

  • メタデータ_csum
  • 64ビット

だからこれは私の最後の問題を解決します。

e2fsck -f /dev/vg0/vm01.mail-test-disk
tune2fs -O ^metadata_csum /dev/vg0/vm01.mail-test-disk
# yes
tune2fs -O ^64bit /dev/vg0/vm01.mail-test-disk
resize2fs -s /dev/vg0/vm01.mail-test-disk

関連情報