![죽은 Linux PC를 가상 머신으로 복원하는 방법은 무엇입니까?](https://linux55.com/image/101083/%EC%A3%BD%EC%9D%80%20Linux%20PC%EB%A5%BC%20%EA%B0%80%EC%83%81%20%EB%A8%B8%EC%8B%A0%EC%9C%BC%EB%A1%9C%20%EB%B3%B5%EC%9B%90%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
Linux PC는 현재 마더보드 오류로 인해 정지되었습니다. 하지만 하드 드라이브는 여전히 작동 중입니다. 디스크를 다른 Linux 시스템으로 이식한 결과 모든 내용을 읽을 수 있는 것으로 나타났습니다.
이제 이전 컴퓨터를 가상 머신으로 복원하고 싶습니다. 먼저 디스크를 이미지 파일로 변환하지 않고(즉, 기존 디스크로 실행) 이 작업을 수행할 수 있습니까? KVM이 더 나은 선택인지 LXC가 더 나은 선택인지는 아직 알 수 없지만 호스트 PC가 상당히 느리기 때문에 LXC를 선호합니다. 가능합니까? 가상 머신 배포 경험은 다소 제한적입니다.
그런데 두 컴퓨터 모두 Gentoo Linux를 실행합니다.
편집하다
이제 모든 답변에 감사드립니다. 명확히 하자면, 일종의 가상 머신을 실행하기 위해 하드 드라이브가 필요한 주된 이유는 이전 머신이 소규모 coda 클러스터의 주요 coda 서버이기 때문입니다. "원시" 보조 파티션에서 데이터를 (쉽게) 가져올 수 없으므로 컨테이너를 실행하는 것이 아마도 가장 쉬운 방법일 것입니다. 호스트는 하드웨어 기능 측면에서 매우 제한되어 있으므로 dd를 통해 디스크를 복제하는 것만으로는 작동하지 않습니다. 공간이 충분하지 않습니다(!)(이유는 묻지 마세요 :-/ - 다소 이상한 설정입니다). 또한 구형 PC에서도 LVM을 사용합니다. 그러나 다양한 파티션과 LVM LV가 새 호스트에 잘 설치되었습니다. 데이터는 모두 거기에 있었으며 실수로 이전 디스크를 "userland"(새 커널, 이전 userland)로 사용하여 새 호스트를 부팅한 경우에도 작동합니다. 시스템은 매우 유사합니다.
LXC 설정의 장점은 많은 리소스가 필요하지 않다는 것입니다. 단점은 CODA 서버가 컨테이너에서 제대로 작동하는지 알 수 없다는 것입니다. 따라서 전체 가상 머신에 배치하는 것이 더 안전할 것입니다.
답변1
VirtualBox를 사용하여 물리적 하드 드라이브에서 부팅할 수 있습니다.수동: 게스트의 원래 호스트 하드 드라이브 사용.
나는 이것에 관해 독일어 가이드를 썼습니다:듀얼 부팅 - Windows 가상화. 물리적 Windows 부팅에 중점을 두고 있지만 Linux에서도 작동합니다.
수행해야 할 핵심 사항:
- 버추얼박스를 설치하세요.
vboxusers
나중에 이 그룹의 회원이 되어 보세요 . - 새 하드 드라이브의 장치 파일을 찾습니다(예
/dev/sdb
: ) - VirtualBox에서 가상 머신 생성아니요가상 하드 드라이브(제가 부르는 이름
oldsys
) - 루트로: 새 하드 드라이브를 가리키는 vmdk 파일을 생성합니다.
VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/oldsys/oldsys.vmdk -rawdisk /dev/sdb
소유자를
oldsys.vmdk
루트에서 사용자의 소유자로 변경합니다.예를 들어, 원시 디스크 액세스를 허용하는 udev 규칙을 만듭니다.
KERNEL=="sdb", OWNER="myusername", MODE="0600"
oldsys.vmdk
VirtualBox에서 VM oldsys의 가상 SATA 컨트롤러를 연결합니다 .oldsys가 EFI 부팅 시스템인 경우 "시스템"에서 oldsys의 VM 설정을 "EFI 활성화"로 변경합니다.
"IO-APIC"을 활성화해야 할 수도 있습니다.
udev 규칙을 활성화하려면 재부팅하세요.
VirtualBox에서 oldsys를 실행합니다. 정상적으로 시작되어야 합니다.
답변2
캡처 디스크 이미지를 사용하는 것이 좋습니다구조하다그런 다음 이미지 파일은 가상 머신의 스토리지를 지원하는 데 사용됩니다. 이렇게 하면 가상화 계획에 문제가 발생하더라도 데이터의 원본이 위험에 빠지지 않습니다.
KVM은 전체 운영 체제를 부팅할 수 있으므로 확실히 작동합니다. 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이 있는 가상 머신이 시작됩니다. -net
이러한 옵션은 게스트 SSHD에 대한 포트 전달 및 일반 게스트 네트워크 액세스에 관심이 있는 경우에만 필요합니다.
실제 디스크 대신 이미지 파일을 사용하기로 결정한 경우 /dev/sde
이미지 파일의 파일 이름을 바꾸면 됩니다.
답변4
VBoxManage를 사용하여 이 문제를 해결했습니다. 기본적으로 새 VirtualBox VM을 만들고 원본 디스크를 교체하고 부팅했습니다.
처음에는 네트워크를 올바르게 설정하는 데 문제가 있었습니다(호스트 커널이 내 VirtualBox 도우미 커널 모듈에 비해 너무 오래되었기 때문입니다). 그러나 커널 업그레이드 후에 브리짓 네트워킹이 생겼고 그 이후로 모든 것이 잘 진행되고 있습니다.