가상 상자에서 실제 하드 디스크 사용


답변:


88

이 질문이 처음 게시되고 몇 개월 후 동일한 답변을 찾는이 페이지에서 저를 발견했을 때 스 매그 댓글 ( "Straight forward")을 만들었습니다.


간단한 지시 사항

오늘은 물리 드라이브에서 부팅 할 수있었습니다. 이 업적이 필요했습니다.

  • 60 분 연속 읽기
  • 이것을 쓰는 30 분
  • VirtualBox에서 다른 옵션을 시도하는 20 분

    독자 여러분, 디스크에 이런 방식으로 액세스 할 때 데이터를 죽이는 것도 똑같이 진행됩니다. 이것을 달성하는 방법에 대한 절차는 연습으로 남겨 둡니다 ...

사진 (일어났다 :)

그럽 2

1. 실제 드라이브에서 읽는 vmdk 드라이브 생성

Linux 호스트에서 전체 실제 하드 디스크 (실제 데이터를 포함하지 않으며 실제 디스크에 저장되므로)를 나타내는 이미지를 작성하려면 다음 명령을 사용하십시오.

VBoxManage internalcommands createrawvmdk \
    -filename /path/to/file.vmdk \
    -rawdisk /dev/sda

실제 디스크 장치 파일에 대한 읽기 액세스 권한이 있어야합니다 /dev/sda. 이를 위해 장치 파일의 소유자와 액세스 권한을 변경하거나 VBoxManage internalcommands createrawvmdk…를 루트 ( sudo명령 앞에 입력)로 실행하십시오.

위의 장치 사양 대신 Windows 호스트에서 예를 들어 \\. \ PhysicalDrive0을 사용하십시오. Mac OS X 호스트에서는 / dev / disk1을 사용하십시오 (disk1의 모든 파티션을 마운트 해제하십시오).

(all on one line)
C:\VirtualBoxDrives>"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
    internalcommands createrawvmdk
    -filename C:\VirtualBoxDrives\raw-0.vmdk 
    -rawdisk \\.\PHYSICALDRIVE0

(output)
RAW host disk access VMDK file C:\VirtualBoxDrives\raw-0.vmdk created successf..

 

2. vmdk 드라이브를 VM에 할당

VM-> 설정-> 스토리지-> IDE / SATA 추가-> 기존 디스크 선택-> 찾아보기

양수인

 

3. Writethrough 모드 중 하나를 설정하십시오.

파일-> Virtual Media Manager-> 예 : raw-0.vmdk-> [수정]-> (o) 쓰기

  • 모든 드라이브에 대해 반복

쓰루 쓰루 설정

 

3. 부팅 우선 순위 재정렬 (세미 옵션)

VM-> 설정-> 시스템-> 부팅 순서

[./] Hard Disk
[./] CD/DVD
[  ] Floppy
[  ] Network

VM-> 설정-> 스토리지-> 컨트롤러 : SATA-> 예 : raw-5.vmdk-> 하드 디스크 : Sata Port 0

 

관련 장 ( 매뉴얼 )

  • 제 9 장. 고급 주제

    • 9.9. 고급 스토리지 구성
      • 9.9.1. 게스트의 원시 호스트 하드 디스크 사용
      • 9.9.1.1. 전체 물리적 하드 디스크에 액세스
         
  • 제 5 장 가상 스토리지

    • 5.2. 디스크 이미지 파일 (VDI, VMDK, VHD, HDD)
    • 5.3. 가상 미디어 관리자
    • 5.4. 특수 이미지 쓰기 모드

Windows에서 실제 드라이브 열거 :

C:\Users\win7>wmic diskdrive list brief

Caption                               DeviceID            Model                                 Partitions  Size
Samsung SSD 840 EVO 250GB ATA Device  \\.\PHYSICALDRIVE3  Samsung SSD 840 EVO 250GB ATA Device  6           250057228288
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE1  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE2  ST1000DM003-1CH162 ATA Device         5           1000202273280
ST1000DM003-1CH162 ATA Device         \\.\PHYSICALDRIVE0  ST1000DM003-1CH162 ATA Device         5           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE5  WDC WD1000DHTZ-04N21V0 ATA Device     6           1000202273280
WDC WD1000DHTZ-04N21V0 ATA Device     \\.\PHYSICALDRIVE4  WDC WD1000DHTZ-04N21V0 ATA Device     5           1000202273280
ST1000DM 003-1CH162 SCSI Disk Device  \\.\PHYSICALDRIVE6  ST1000DM 003-1CH162 SCSI Disk Device  5           1000202273280

PowerShell을 사용하여 드라이브 번호를 얻을 수도 있습니다.

PS C:\ Get-Disk

7
명확한 단계별 지침에 대해 대단히 감사합니다. 그러나 내가 가진 한 가지 문제는 가상 .vmdk 파일을 사용자가 소유 할 수 있지만 VirtualBox를 시작하고 액세스하려고하면 오류가 생성된다는 것입니다. 이것은 물리적 / dev / sda가 root가 소유하고 있기 때문입니다. 소유권 변경을 시도했지만 기쁨은 없습니다. 여전히 같은 오류입니다. 루트로 VirtualBox를 시작하면 작동합니다 (항상 모든 응용 프로그램을 루트로 실행하는 것에 대해 신중하고, 너무 많이 잘못 될 가능성이있는 것과 같은 것은 어리석은 일입니다).

대부분의 배포판에는 "디스크"또는 "블록"과 같은 특수 그룹이 있습니다. / dev / sd에 장치를 넣었습니까? 해당 그룹 중 하나에 속한 사용자가 쓰기 가능해야합니다. 배포판에 대한 문서를 확인하십시오.
Ярослав Рахматуллин

1
아무도 Windows 10에서 작동합니까? The I/O cache encountered an error while updating data in medium "ahci-0-0" (rc=VERR_ACCESS_DENIED).VirtualBox를 관리자로 실행할 때도이 오류가 발생 합니다.
szx

2
@szx 나는 다음 단계에
Epigene

1
원시 디스크 액세스를 통해 실수로 데이터를 죽이는 방법은 무엇입니까? 나는 무엇을 알고 피겨 없는 문제가 발생하지 않도록 도움이 할 수 있습니다. 지시 사항은 매우 간단 해 보입니다.
Wowfunhappy

6

VirtualBox 설명서는 원시 하드 디스크에 액세스하는 것을 말합니다.

http://www.virtualbox.org/manual/ch09.html#rawdisk

Linux 호스트에서 전체 실제 하드 디스크 (실제 데이터를 포함하지 않으며 실제 디스크에 저장되므로)를 나타내는 이미지를 작성하려면 다음 명령을 사용하십시오.

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda

이것은 /path/to/file.vmdk 이미지를 생성하며 (절대이어야 함) / dev / sda에서 모든 데이터를 읽고 씁니다.

Linux 호스트에서 원시 파티션 지원 (작은 양의 데이터를 포함 할 것임)을위한 특수 이미지를 작성하려면 다음 명령을 사용하십시오.

VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
  -rawdisk /dev/sda -partitions 1,5

VirtualBox는 Linux 호스트와 동일한 파티션 번호를 사용합니다. 결과적으로 위의 예에서 제공된 숫자는 각각 확장 파티션의 첫 번째 기본 파티션과 첫 번째 논리 드라이브를 나타냅니다.

경고 및 Windows 관련 지침은 설명서를 참조하십시오.


8
링크 전용 답변은 최적보다 적으며 더 나은 답변을 사용할 수있을 때 수락 할 가치가 없습니다. * 윙크 윙크 *
Ярослав Рахматуллин

0

맥 OS 10.14 :

  1. 실제 디스크에 해당하는 가상 디스크 파일을 작성하십시오.

    # First, find the device you want to use inside Virtual Box:
    diskutil list  
    
    # Create the virtual disk
    sudo VBoxManage internalcommands createrawvmdk \
            -filename ~/realdisk.vmdk \
            -rawdisk /dev/disk2
    
  2. 수퍼 유저로 VirtualBox를 시작합니다.

    sudo VirtualBox
    
  3. 추가 ~/realdisk.vmdk에서 Storage --> Controller: Sata.


0

나는 이것을 Windows 10에서 가장 오랫동안 작동시키지 못했습니다. VERR_ACCESS_DENIEDVMDK를 연결하려고 할 때 계속 오류가 발생합니다.

그러나 나는 (마지막으로) 몇 가지 트릭 으로이 작업을 수행 할 수있었습니다.

  1. 관리자 권한으로 PowerShell을 엽니 다 (이유는 확실하지 않지만 일부 명령을 관리자 명령 프롬프트에서 작동시키지 못했습니다)

  2. 다음 명령을 실행하여 VMDK를 작성하십시오.

    VBoxManage.exe internalcommands createrawvmdk \
        -filename "path\to\physical\disk\file.vmdk" \
        -rawdisk \\.\PhysicalDrive[n]
    

    ... 곳 path\to\physical\disk\file.vmdk입니다 디스크를 표현하기 위해 생성 될 파일[n]디스크 번호입니다 (이 번호를 얻기 위해 디스크 관리를 사용)

  3. 다음 명령을 실행하여 VMDK를 연결하십시오.

    VBoxManage.exe storageattach [VM NAME] \
        --storagectl [CONTROLLER] \
        --device 0 \
        --port 0 \
        --type hdd \
        --medium "path\to\physical\disk\file.vmdk"
    

    ... 어디에 접속 [CONTROLLER]중인 디스크 컨트롤러의 이름은- "IDE"입니다.

  4. 다음 명령을 실행하여 VM을 시작하십시오.

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