내 Debian 10(buster) XEN 호스트에서 Debian jessie를 사용하여 LVM 스냅샷의 Xen-VM을 새 xen 게스트에 복사하고 부팅을 시도했습니다. 이것이 내가 한 일입니다:
xen VM을 복사하여 메일 서버의 dist 업그레이드 테스트
첫 시도
새 컴퓨터를 만들고 xen-create-image
rsync를 통해 모든 파일을 덮어썼습니다.
이제 다음 오류가 표시됩니다.
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