virtualbox VM에서 Windows 7이 설치된 실제 파티션을 사용하는 방법은 무엇입니까?


37

My Ubuntu 12.04는에 설치 /dev/sda5 되고 Windows 7 은에 설치 됩니다 /dev/sda1. Ubuntu를 실행할 때 Virtualbox를 사용하여 VM에서 Windows 7을 실행하고 싶습니다. Windows 7 파티션은 1TB이고 절반이 꽉 찼습니다. 즉, 가상 하드 디스크에 복사하고 싶지 않습니다.

Virtualbox VM에 실제 하드 디스크를 사용할 수 있다는 것을 읽었지만 찾은 다양한 지침이 서로 다르므로 작동하지 않는 것 같습니다. 누구든지 Ubuntu 12.04 및 Virtualbox 2.1.12_Ubuntu r77245 (최신 Ubuntu가 repos를 설치 함)에서 작동하게 만드는 방법을 알고 있습니까?

작동 할 수있는 방법을 다시 시도하고 싶을 때 어떻게 작동하는지 게시하십시오.


MSWIN 파티션이 1TiB 인 이유는 무엇입니까? 비록 완전한 해결책은 아니지만 : 가능하다면, 거기에있을 필요가없는 모든 것 (데이터 ... 미디어 파일?)을 옮기고 파티션 크기를 조정하면 접근이 더 쉬워집니다. 이미지 경로로 이동하려면 해당 파티션을 지우고 축소하면 더 작은 새 파티션의 전체 이미지를 만들기에 충분한 공간이 남습니다. :-)
Alastair

답변:


27

당신이 원하는 명령은

VBoxManage internalcommands createrawvmdk -filename Win7.vmdk -rawdisk /dev/sda -partitions 1

이렇게하면 실제로 호스트 디스크 파티션에 대한 포인터 인 특수 VMDK 가상 디스크 파일 (Win7.vmdk)이 생성됩니다 /dev/sda1.

이론적으로이 디스크를 실제 디스크 파티션에서 직접 실행할 수 있도록 디스크 파일로 사용할 수 있습니다.

  • (a) 나는 이것을 시도한 적이 없으므로 그것이 얼마나 신뢰할 수 있는지 모른다
  • (b) 라이센스 키와 감지 된 '하드웨어'가 크게 변경되었다고 Windows가 결정하는지에 따라 Windows 정품 인증에 문제가 발생할 수 있습니다.

감사합니다. 활성화 문제에 대해서는 생각조차하지 않았습니다. 그것은 나의 계획을 멈추게 할 것입니다.
재즈

1
또한 그것이 작동하더라도 (의문의 여지없이) 부팅과 VM 모두에서 실행할 때 Windows가 심각하게 손상 될 수 있습니다.
Takkat

@ ubnewbie2 : 아마도 이것을 실험으로 시도하거나 볼륨 라이센싱 키를 사용할 때 일회성 작업으로 볼 것입니다. 즉, 당신은 그것을 바꾸려고 더 많은 어려움을 겪을 것입니다. 실제로 Windows 7을 실행하고 Ubuntu와 함께 VirtualBox VM을 종종 전체 화면 모드로 사용하므로 PC는 Linux 만 실행하는 것처럼 보이고 원시 디스크 파티션에서 Ubuntu를 실행하는 데 더 자신감이 있습니다.
StarNamer

참고로, 나는 이것을 반대로 시도했습니다. Ubuntu를 실행하는 컴퓨터를 Win 7로 변경해야하므로 파티션 크기를 조정하고 새 파티션을 생성하고 Win 7을 설치하여 공간을 확보했습니다. 이렇게하면 grub2가 Windows 부트 로더로 바뀌어 VirtualBox를 설치하고 새 VM을 만들었습니다. 예약 할 최소 가상 디스크. 기존 '원시'파티션을 사용하여 실행합니다. 메모리가 줄어들고 CPU 코어가 4 개가 아닌 1 개만 표시되기 때문에 약간 느리지 만 정상적으로 작동합니다.
StarNamer

-파티션 끝에 가상 상자에 "볼"파티션 (사용하려는 파티션 번호가 아님) 목록 VBoxManage internalcommands --help이 표시되면 내부 명령으로 수행 할 수있는 다른 작업과 옵션의 의미가 표시됩니다.
보트 코더

16

예를 내부로 그렇게 할 수 createrawvmdk것입니다 명령 하지 전체 디스크 이미지를 만들 수 있지만 실제 하드웨어에 대한 포인터.

두 가지 방법이 있습니다

  • A. 전체 디스크 이미지 (/ dev / sdb)

    sudo VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb
    
  • B. 파티션 이미지

    @StarNamer에서 알 수 있듯이 하나 또는 몇 개의 파티션 만 사용합니다.

    하나의 (/ dev / sda1) 파티션의 이미지를 만들려면 :

    sudo VBoxManage internalcommands createrawvmdk -filename sda1.vmdk -rawdisk /dev/sda -partitions 1
    

    / dev / sda2 및 / dev / sda1을 순서대로 매핑 할 사용자 정의 파티션 테이블을 만들려면

    sudo VBoxManage internalcommands createrawvmdk -filename sda2_1.vmdk -rawdisk /dev/sda -partitions 2,1
    

가장 큰 차이점은 전체 디스크 이미지가 디스크에있는 그대로 부트 로더와 파티션 테이블을 사용한다는 것입니다. 따라서 이론상 (이전에 qemu에서만 사용 했음) 가상 머신에서 OS를 설정할 수 있습니다. 그리고 제한된 경험으로 전체 디스크 이미지가 정확히 작동한다고 말할 수 있습니다 qemu -hda /dev/sdb.

참고 : 사용자를 사용하여 디스크에 액세스하는 경우 디스크를 추가 disk하고 vboxusers그룹 에 추가해야합니다 ( 예 :

sudo usermod -aG disk,vboxusers ubuntu

그런 다음 컴퓨터를 다시 로그인하거나 다시 시작하십시오.

더 읽을 거리 :


"전체 디스크 이미지는 디스크에있는 그대로 부트 로더와 파티션 테이블을 사용합니다"– 어떤 시나리오에서 첫 번째 (/ dev / sdb) 또는 두 번째 (파티션이 지정된)?
naught101

1
또한, 버추얼 그렇지 않으면 당신이 얻을, 루트로 실행해야 Permission problem accessing the file for the medium '/home/naught101/sda2_windows.vmdk'
naught101

3
"또한 가상 상자를 루트로 실행해야합니다." 실제로 아니요, 그룹 디스크의 구성원이어야합니다. 루트로 가상 상자를 실행하는 것보다 훨씬 안전합니다.

2
다음은 호스트 시스템으로 Ubuntu 16.04 및 게스트로 Windows 10에서 작동 한 것 sudo VBoxManage internalcommands createrawvmdk -filename sda1_2_3.vmdk -rawdisk /dev/sda -partitions 1, 2, 3입니다.을 사용하여 .vmdk 파일을 만들었습니다 . 그런 식으로 Windows 파티션과 EFI 부트 로더 파티션을 포함 시켰습니다. 그런 다음 virtualbox.org/ticket/7702 에서 shilka의 지침을 따르고 cloverefiboot를 추가했습니다. 매력처럼 작동합니다!
dzmanto

VirutalBox (및 VBoxManage) 명령 앞에 접두사 sudo -g disk를 부여하여 다른 모든 프로세스가 아닌 virtualbox에 대한 액세스 권한을 부여 할 수도 있습니다.
Jan Hudec

0

"Immutable"이라는 디스크 옵션이 있으므로 이론적으로 원시 디스크에 연결하는 vmdk에이 옵션을 선택하면 원래 파티션을 변경하지 않아야합니다.

"파일"아래에있는 "가상 미디어 관리자"를 열려면 이미지를 선택하고 "수정"을 클릭하십시오 (이 이미지가 컴퓨터에 연결되어 있지 않은지 확인해야합니다. 그렇지 않으면 오류가 발생합니다). 이제 용지 종류를 "Immutable"로 설정할 수 있습니다.

나는 이것을 테스트하지 않았다. 누구든지 (물론 테스트 설정을 사용하는 경우) 여기에 다시보고하는 것이 좋습니다.

이 아이디어에 반하는 사람이 있습니까?


0

몇 년 동안 저는 Linux가 아직 마스터하지 않은 터치 스크린 기능을 활용하기 위해 Ubuntu 파티션을 Windows VirtualBox로 부팅하여 이중 부팅 Windows 및 Ubuntu를 실행 해 왔습니다.

아래와 비슷한 지침으로 설정했습니다.

새로운 시스템은 기존 시스템의 단일 시스템보다 두 OS를 동시에 더 잘 처리 할 수 ​​있습니다.

단점 : 업데이트로 인해 VirtualBox 연결이 비활성화되는 경우 설정에 사용하는 지침을 저장해야합니다 (현재 문제).


0

많은 시도 후에 나는 깔끔하고 깨끗한 해결책을 얻었습니다.

  1. 가상화하려는 Windows 파티션을 부팅하십시오.
  2. Sysinternals에서 Disk2VHD 유틸리티 다운로드
  3. 당신이 UEFI 파티션이있는 경우 , 다음 지침을 따르십시오
  4. C 의 VHD (VHD X 아님) 이미지 만들기 : 파티션, 복구, UEFI (있는 경우) 및 원하는 다른 것
  5. Linux로 돌아와서 VirtualBox를 열고 Windows 운영 체제 사양에 따라 VM을 만듭니다.
  6. 지점 4에서 생성 된 VHD 디스크를 해당 VM에 연결
  7. 그게 다야
  8. 이익

UEFI의 경우 문제 해결 :

  1. VM 설정의 VirtualBox에서 시스템 탭 아래의 "EFI 사용"옵션을 확인하십시오.
  2. EFI 셸에 끼어 있으면 다음 명령을 실행하십시오.

    fs0:\EFI\Boot\bkpbootx64.efi
    

downvote에 대한 의견이 있으십니까?
garlix

나는 이것이 며칠 전에 일어났다는 것을 알지만, 적어도 의도적으로 당신에게 downvotes를주는 것을 기억하지 않습니다. 기꺼이 투표를 풀겠습니다. 죄송합니다.
userfuser

0

VirtualBox에는 많은 단점이 있습니다. 나는 몇 년 전에 그것을 떠났다. 이제 qemu-kvm을 사용하고 다른 고급 기능 외에도 디스크 이미지와 같은 방식으로 디스크 장치를 사용하도록 구성 할 수 있습니다. 트릭은 가상 "-드라이브 if = sd, id = sda, format = raw, file = / dev / sda"를 구성하는 것입니다.

그러나! 베어 메탈에서 MSW를 실행하는 동안 가상화를 시도하기 전에 먼저 일부 변경을 수행해야합니다. "드라이버"폴더에서 적절한 드라이버가 있는지, "레지스트리"트리에서 해당 드라이버를 활성화하고 설정하십시오. 다음과 같이 시스템을 시작하기 전에 실행하십시오.

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\msahci] "Start"=dword:00000000

BSOD를 보지 않으려면 가상 머신과 관련하여 적절한 드라이버를 찾아야합니다.

어떤 드라이버를 활성화할지 말하기는 어렵습니다. 가장 좋은 방법은 먼저 테스트 시스템을 설치 한 다음 "Start"= dword : 00000000을 사용하여 레지스터 키에 대한 레지스터를 검색 한 다음 베어 메탈 머신에서이 키를 설정하는 것입니다. 또한 베어 메탈에서 MAC 주소를 확인하여 qemu 구성에 넣는 것이 좋습니다. 시스템이 새로운 활성화를 요청하지 못하게 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.