오늘은 업그레이드 하기로 했어요Proxmox 가상 환경(PVE) V6.2.4에서 V7.1로. 내가 한 일은 다음과 같습니다.
- 먼저 최신 6.x 버전으로 업그레이드한
apt-get update
다음apt-get upgrade-dist
. - 나는 다음 단계를 따랐습니다.Proxmox VE를 6.x에서 7.0으로 업그레이드
업그레이드하는 동안 "디스크를 찾을 수 없음"이라는 오류가 몇 가지 발생하여 걱정이 되었지만 업그레이드는 계속되었습니다. (아마도 제가 지금 겪고 있는 문제와 관련이 있을 것 같습니다.) 업그레이드가 완료된 후 호스트를 재부팅하여 업그레이드를 완료했습니다. LXC 컨테이너가 문제 없이 시작되었습니다(부팅 시 시작됨). 일부 가상 머신(부팅 시 시작됨)도 직접 작동합니다.
Boot failed: not a bootable disk
일부 가상 머신에서는 콘솔에 오류가 발생하고 계속 다시 시작됩니다. 인터넷 검색 후 가끔 콘솔을 재부팅하는 데 도움이 되는 게시물을 발견하여 다시 시도했습니다.모두가상 머신에서 관련 오류가 발생했습니다. 나는 몇 시간 동안 인터넷 검색을 했고 비슷한 질문을 많이 발견했습니다. 대부분의 가상 머신에서 작동하는 유일한 방법은 백업을 복원하는 것입니다. 불행하게도 이것은 가장 중요한 시스템인 메일 서버에서는 작동하지 않습니다. 여기에는 170GB의 메일이 포함되어 있으며 제가 가지고 있는 유일한 백업은 "proxmox 백업"(images.7x)입니다. 둘 다 동일한 문제를 일으키기 때문에 둘 중 어느 것도 작동하지 않습니다.
질문:
- 가상 머신을 다시 시작하려면 어떻게 해야 하나요? 복구할 수 없는 경우 데이터를 가져올 수 있도록 디스크에 들어갈 수 있는 방법이 있나요?
- 어떻게 이런일이 일어 났습니까? 내 잘못인가요? 이것은 버그입니까? 이것이 알려진 문제입니까?
- 다른 가상 머신도 영구적으로 손상될까 봐 걱정되기 때문에 Proxmox를 다시 시작하는 것이 두렵습니다. 이런 일이 다시는 발생하지 않을 것이라고 어떻게 확신할 수 있나요? 아니면 적어도 백업이 유효한지 확인하세요!
몇 가지 중요한 사실:
- Proxmox 업그레이드 이전에 작동 중인 모든 VM이 발견되었다고 100% 확신합니다.
- 업데이트 관련 명령을 실행하기 전에 각 컴퓨터의 백업을 네트워크 공유(백업 서버)에 생성합니다.
- 백업은 Proxmox 웹 인터페이스를 통해 수행됩니다.
- 메일 서버를 포함하여 모든 가상 머신은 Ubuntu 20.04 LTS에서 실행됩니다.
- BIOS를 UEFI로 설정해 보았습니다(성공하지 않음).
- 저는 Proxmox Pro 사용자가 아니므로 추가 데이터가 필요한 경우 불필요한 게시물을 피하기 위해 데이터를 얻는 방법을 설명해 주세요.
실수:
컴퓨터 UUID a238b981-27dd-4ebd-acee-1a9ee97d66a11 하드 드라이브에서 부팅... 부팅 실패: 부팅 가능한 디스크가 아닙니다.[다음에서 수동으로 전사됨이 사진.]
pveversion -v 출력
root@hv1:/home/axxmin# pveversion -v
proxmox-ve: 7.1-1 (running kernel: 5.13.19-2-pve)
pve-manager: 7.1-8 (running version: 7.1-8/5b267f33)
pve-kernel-helper: 7.1-6
pve-kernel-5.13: 7.1-5
pve-kernel-5.4: 6.4-11
pve-kernel-5.3: 6.1-6
pve-kernel-5.13.19-2-pve: 5.13.19-4
pve-kernel-5.4.157-1-pve: 5.4.157-1
pve-kernel-5.4.41-1-pve: 5.4.41-1
pve-kernel-5.3.18-3-pve: 5.3.18-3
pve-kernel-5.3.18-2-pve: 5.3.18-2
ceph-fuse: 14.2.21-1
corosync: 3.1.5-pve2
criu: 3.15-1+pve-1
glusterfs-client: 9.2-1
ifupdown: residual config
ifupdown2: 3.1.0-1+pmx3
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-1
libknet1: 1.22-pve2
libproxmox-acme-perl: 1.4.0
libproxmox-backup-qemu0: 1.2.0-1
libpve-access-control: 7.1-5
libpve-apiclient-perl: 3.2-1
libpve-common-perl: 7.0-14
libpve-guest-common-perl: 4.0-3
libpve-http-server-perl: 4.0-4
libpve-storage-perl: 7.0-15
libqb0: 1.0.5-1
libspice-server1: 0.14.3-2.1
lvm2: 2.03.11-2.1
lxc-pve: 4.0.11-1
lxcfs: 4.0.11-pve1
novnc-pve: 1.2.0-3
proxmox-backup-client: 2.1.2-1
proxmox-backup-file-restore: 2.1.2-1
proxmox-mini-journalreader: 1.3-1
proxmox-widget-toolkit: 3.4-4
pve-cluster: 7.1-2
pve-container: 4.1-3
pve-docs: 7.1-2
pve-edk2-firmware: 3.20210831-2
pve-firewall: 4.2-5
pve-firmware: 3.3-3
pve-ha-manager: 3.3-1
pve-i18n: 2.6-2
pve-qemu-kvm: 6.1.0-3
pve-xtermjs: 4.12.0-1
qemu-server: 7.1-4
smartmontools: 7.2-pve2
spiceterm: 3.2-2
swtpm: 0.7.0~rc1+2
vncterm: 1.7-1
zfsutils-linux: 2.1.1-pve3
백업을 위한 백업 구성:
balloon: 6144
boot: cdn
bootdisk: sata0
cores: 2
ide2: none,
media=cdrom
memory: 12288
name: axx-mcow-srv01
net0: virtio=4E:86:95:6A:FC:46,bridge=vmbr20,
firewall=1
numa: 0
onboot: 1
ostype: l26
sata0: vm_instances:vm-140-disk-0,size=200G
scsihw: virtio-scsi-pci
smbios1: uuid=a238b981-27dd-4ebd-acee-1a9ee97d66a1
sockets: 1
vmgenid: 971eb84d-7502-4a68-97af-66c595c011b9 #qmdump#map:sata0:drive-sata0:vm_instances:raw:
가상 머신 구성
root@hv1:~# qm config 140
balloon: 6144
boot: cdn
bootdisk: sata0
cores: 2
ide2: none,media=cdrom
memory: 12288
name: axx-mcow-srv01
net0: virtio=4E:86:95:6A:FC:46,bridge=vmbr20,firewall=1
numa: 0
onboot: 1
ostype: l26
sata0: vm_instances:vm-140-disk-0,size=200G
scsihw: virtio-scsi-pci
smbios1: uuid=a238b981-27dd-4ebd-acee-1a9ee97d66a1
sockets: 1
vmgenid: 66102f99-158b-451b-a8e2-187ebed7b183
업데이트 1
페이지를 찾았어요백업 후 - 부팅 실패: 부팅 가능한 디스크가 아닙니다. 이것은 Proxmox 지원 포럼에서 나에게 의미가 있었습니다. 파티션 테이블에 대한 별도의 백업이 없어서 하나 찾았습니다."부팅 복구 디스크". 이로 인해 내 VM이 수정되지는 않았지만 유용할 수 있는 몇 가지 추가 정보가 제공되었습니다.
업데이트 2
GParted live로 부팅한 후 파티션 테이블이 사라진 것을 알 수 있습니다. 다음 명령으로 다시 빌드해 보았습니다.testdisk
손상되었거나 손상된 Linux 파티션 테이블 복구) 그러나 이것은 작동하지 않습니다.
정확히 동일한 구성(디스크 크기 포함)으로 가상 머신을 생성하고 여기에 Ubuntu를 설치하고(항상 기본값을 사용하는 것과 동일한 디스크 설정으로) 해당 파티션 테이블을 "깨진" 서버에 복사할 수 있습니까?
답변1
서버가 다시 시작되도록 파티션 테이블을 "수리"할 수 있습니다. 그 후 모든 것이 제대로 실행되는지 확인하기 위해 모든 것을 새 서버로 마이그레이션할 수 있었습니다. 아래 단계에 따라 수행했습니다.
- 다음 명령을 사용하여 서버를 시작하십시오.부팅 복구 디스크.
- 자동으로 실행되는 도구 "시동 복구"를 끄십시오.
- 터미널 창을 열고 명령을 실행합니다
sudo testdisk /dev/sda
. 그러면 디스크(sda)에서 파티션을 검색하는 (명령줄) 도구가 시작됩니다. - 확인 디스크를 사용하십시오
Proceed
. - 사용할 파티션 테이블 유형을 선택합니다. "BIOS" 디스크가 있으므로 그것이 필요합니다
Intel
. "EUFI" 디스크가 있는 경우 이를 선택합니다EFI GPT
. - 가서
Analyse
디스크를 분석해 보세요. Quick search
빠른 검사를 진행 하세요 . 디스크에 따라 이 작업은 몇 초에서 한 시간 정도 걸릴 수 있습니다.- 어떤 경우에는 a가 도움이 될 것이라고 생각했지만 a가 더 정확하고 디스크 복구 가능성이 높아진다는
quick scan
것을 알았습니다 .deeper search
내가 아는 한 그것만으로는quick scan
충분하지 않습니다.
deep search
여러 파티션이 발견 될 수 있습니다. 를 사용하여 파일을 찾아볼 수 있습니다 P
. 을 선택하거나 ..
눌러 돌아갈 수 있지만 , 너무 많이 누르면 처음부터 다시 시작해야 하므로 Q
주의하세요 !Q
디렉터리가 포함된 파티션을 찾아 etc
화살표 키( 또는 )를 사용하여 해당 파티션을 (기본) 파티션으로 표시합니다. 제 경우에는 두 번째 파티션이 리눅스와 같은 파일 구조를 갖고 있어서 "기본 부팅 가능"으로 설정했는데, 파티션이 항상 발견되지 않는 것을 발견했습니다. 찾을 수 없으면 (내 테스트에서는) 디렉터리가 있는 파티션을 기본으로 표시합니다. (아래 테스트 머신의 스크린샷을 참조하세요.) (계속)을 눌러 설정을 확인한 다음 새 파티션 테이블을 디스크에 씁니다.P
←→*
etc
P
EnterWrite
파티션 테이블을 작성한 후 부팅 복구 도구(처음에는 꺼두었습니다)를 열어 Linux 부트 로더(GRUB)를 복구합니다. 를 사용하여 수리를 수행할 수 있습니다 Recommended repair
. 이 옵션을 사용할 수 없는 경우 파티션 테이블 검색 중에 여전히 활성화되어 있을 수 있으므로 부팅 복구 도구를 다시 시작하십시오.
메일 서버를 이렇게 고칠 수 있습니다. 일부 테스트 머신의 작업 백업에서 (손상된) 머신의 백업을 복원했습니다. 테스트한 기계 5개를 모두 수리할 수 있었습니다.
이 답변이 다른 사람들에게 도움이 되기를 바랍니다.
답변2
솔루션을 게시해 주셔서 정말 감사합니다. 제 생명을 구했습니다!
상황: Proxmox 7.2-7 환경에서 5개의 Debian LAMP VM(CPU 리소스)을 사용하고 다시 시작하여 변경 사항을 적용합니다. 그 중 어느 것도 부팅되지 않으며, 둘 다 부팅에 실패합니다. 잘 알려진 "부팅 가능한 디스크가 아닙니다"라는 오류 때문입니다. 제 경우에는 수리 과정에서 두 가지 세부 사항이 달랐습니다.
sudo testdisk /dev/sda
문제의 장치가 sda인데도 "파일 또는 장치 /dev/sda: 디렉토리가 아님"을 열 수 없다는 메시지와 함께 실패합니다. 해결책: 방금 입력한 sudo testdisk
후 로깅 옵션을 선택할 수 있습니다 /dev/sda
.
빠른 테스트 결과는 다음과 같습니다.
Partition Start End Size in sectors
>*Linux 0 32 33 121 157 36 1951744 [boot]
P Linux 121 157 37 3161 11 50 48828416 [system]
P Linux Swap 3161 11 51 3647 99 36 7813120
L Linux 3647 164 38 13054 10 12 151113728 [data1]
아무것도 변경하거나 전환할 필요가 없습니다. 다음 화면으로 이동하여 Enter"쓰기"를 선택하면 됩니다. 거기에서는 위에 쓰여진 것처럼 작동합니다.
어쩌면 내 작은 팁이 다른 사람들에게도 도움이 될 수 있습니다.
이는 다음과 같이 추적됩니다.프록시목스 오류 2874.