죽은 Linux PC를 VM으로 어떻게 되살릴 수 있나요?

죽은 Linux PC를 VM으로 어떻게 되살릴 수 있나요?

현재 Linux PC가 마더보드 오류로 인해 사망했습니다. 그러나 하드디스크는 여전히 작동 중입니다. 디스크를 다른 Linux 시스템에 이식해 보니 모든 내용을 읽을 수 있는 것으로 나타났습니다.

이제 기존 PC를 VM으로 부활시키고 싶습니다. 먼저 디스크를 이미지 파일로 변환하지 않고도, 즉 기존 디스크로 실행하는 것이 가능합니까? KVM이 더 나은 선택인지 LXC가 더 나은 선택인지는 아직 알 수 없지만 호스트 PC가 다소 느리기 때문에 LXC를 선호합니다. 이것이 가능한가? VM 배포 경험은 다소 제한적입니다.

그런데 두 컴퓨터 모두 Gentoo Linux를 실행합니다.

편집됨

모든 답변에 감사드립니다. 문제를 명확히 하자면, 일종의 가상 머신을 실행하기 위해 하드디스크가 필요한 주된 이유는 이전 컴퓨터가 소규모 coda 클러스터의 주요 coda 서버였기 때문입니다. "원시" 바이스 파티션에서 데이터를 (쉽게) 가져올 수 없으므로 컨테이너를 실행하는 것이 가장 쉬운 방법일 수 있습니다. 호스트 컴퓨터는 하드웨어 기능과 관련하여 매우 제한되어 있으므로 dd를 통해 디스크를 복제하는 것만으로는 작동하지 않습니다. 공간이 충분하지 않습니다(!)(이유는 묻지 마세요 :-/ - 다소 이상한 설정입니다). 게다가 기존 PC도 LVM을 사용하고 있었습니다. 그러나 다양한 파티션과 LVM LV는 새 호스트 컴퓨터에 아주 잘 마운트될 수 있습니다. 데이터가 거기에 있으며 실수로 이전 디스크를 "userland"(새 커널, 이전 userland)로 사용하여 새 호스트 컴퓨터를 부팅한 경우도 있습니다. - 효과가 있었으므로 시스템이 매우 유사했습니다.

LXC 설정의 매력은 많은 리소스가 필요하지 않다는 것입니다. 단점은 CODA 서버가 컨테이너에 있을 때 제대로 실행될지 전혀 알 수 없으므로 전체 VM에 배치하는 것이 더 안전할 수 있다는 것입니다.

답변1

VirtualBox를 사용하면 물리적 하드 드라이브에서 부팅할 수 있습니다.수동: 게스트의 원시 호스트 하드 디스크 사용.

이에 관해 나는 독일어 하우투를 썼습니다:Dualboot-Windows 가상화. 초점은 물리적 창을 부팅하는 것이지만 Linux에서도 작동합니다.

수행해야 할 핵심 사항은 다음과 같습니다.

  • 버추얼박스를 설치하세요. 이후 반드시 그룹의 구성원이 되어주세요 vboxusers.
  • 새 하드 디스크의 장치 파일 찾기(예 /dev/sdb:)
  • VirtualBox에서 VM 생성없이가상 하드 디스크(나는 그것을 부른다 oldsys)
  • 루트로: 새 하드 디스크를 가리키는 vmdk 파일 생성

VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/oldsys/oldsys.vmdk -rawdisk /dev/sdb

  • 의 소유자를 oldsys.vmdk루트에서 귀하의 것으로 변경하십시오.

  • 예를 들어 원시 디스크 액세스를 허용하는 udev 규칙을 만듭니다.

    KERNEL=="sdb", OWNER="myusername", MODE="0600"

  • oldsys.vmdkVirtualBox에서 VM oldsys의 가상 SATA 컨트롤러에 연결합니다 .

  • oldsys가 EFI 부팅 시스템인 경우 "system"에서 oldsys의 VM 설정을 "EFI 활성화"로 변경합니다.

  • "IO-APIC"도 활성화해야 할 수도 있습니다.

  • udev 규칙을 활성화하려면 재부팅하세요.

  • VirtualBox에서 oldsys를 실행하세요. 문제 없이 부팅되어야 합니다.

답변2

다음을 사용하여 디스크 이미지를 캡처하는 것이 좋습니다.구출그런 다음 이미지 파일을 사용하여 VM의 스토리지를 백업합니다. 이렇게 하면 가상화 계획에 문제가 발생하더라도 데이터 원본이 손상될 위험이 없습니다.

KVM은 전체 OS를 부팅하므로 확실히 작동합니다. LXC는 시스템이 얼마나 유사한지에 따라 작동할 수 있습니다. LXC의 주요 제한 사항은 컨테이너 내부에서 실행하는 모든 것이 호스트 커널을 공유한다는 것입니다. KVM을 사용하면 게스트 내에서 커널을 실행할 수 있습니다. 데이터 복사본으로 작업하는 한 상황에 가장 적합한 설정을 찾을 때까지 실험해 보는 것이 안전합니다.

답변3

가능하지만 해당 데이터에 관심이 있는 경우 디스크 백업을 만드는 것이 좋습니다.

호스트 PC의 CPU가 가상화를 지원하는 한(Intel의 경우 를 통해 확인 grep vmx /proc/cpuinfo) KVM은 게스트 속도를 크게 저하시키지 않습니다.

/dev/sde일반 사용자로서 다음과 같은 명령을 사용할 수 있으므로 이전 디스크를 사용할 수 있다고 가정합니다 .

$ qemu-system-x86_64 -enable-kvm -drive file=/dev/sde,if=virtio,format=raw \
     -m 2048 \
     -net user,hostfwd=tcp::10022-:22 -net nic,model=virtio

그러면 2GiB RAM이 있는 VM이 ​​부팅됩니다. 이 -net옵션은 일반적으로 게스트 SSHD로의 포트 전달 및 게스트 넷 액세스에 관심이 있는 경우에만 필요합니다.

/dev/sde실제 디스크 대신 이미지 파일을 사용하기로 결정한 경우 해당 이미지 파일의 파일 이름으로 바꾸면 됩니다 .

답변4

VBoxManage를 사용하여 이 문제를 해결했습니다. 기본적으로 새로운 VirtualBox VM을 생성하고 원시 디스크를 교체한 후 올라갔습니다.

처음에는 네트워킹을 올바르게 설정하는 데 문제가 있었습니다(호스트 커널이 VirtualBox 도우미 커널 모듈에 비해 너무 오래되었기 때문에). 그러나 커널 업그레이드 후에 브리짓 네트워크 연결이 가능해졌고 그 이후로는 꽤 순조롭게 항해했습니다.

관련 정보