VirtualBox로 원시 장치 액세스를 수행하는 방법은 무엇입니까?


6

그래서 Mac OS X에서 ext4 / linux 디스크를 게스트 OS로 사용하기 위해 VirtualBox를 사용하여 원시 장치 액세스를 설정하려고했지만 아직 성공하지 못했습니다.

VirtualBox 문서에 따라 9.9.1.1 장, https://www.virtualbox.org/manual/ch09.html#rawdisk Mac OS X에서 VM에 대한 원시 디스크 액세스를 허용합니까? 이것을 어떻게 설정합니까?

지금까지 수행 한 작업 : (집에서 시도하지 마십시오)

원시 vmdk 파일을 생성했습니다 :

$ sudo VBoxManage internalcommands createrawvmdk -filename /Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk -rawdisk /dev/disk0
RAW host disk access VMDK file /Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk created successfully.

저를 주인으로 만드십시오 :

$ sudo chown me /Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk

VirtualBox가 Xub_raw_disk.vmdk 파일에서 무엇이든 볼 수 있는지 확인하십시오.

$ VBoxManage internalcommands listpartitions -rawdisk /Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk
Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)

섹터 나 파티션에 대해서는 아무것도 표시되지 않으므로 문제의 증상이어야합니다.

문제는 GUI에서 또는 아래 명령으로 .vmdk 파일을 추가하려고 할 때 오류가 발생한다는 것입니다.

$ VBoxManage storageattach "Xub_raw_testing" --storagectl "SATA" --port 0 --type hdd --medium /Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk 
VBoxManage: error: Could not find file for the medium '/Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp
VBoxManage: error: Invalid UUID or filename "/Users/me/VirtualBoxVMs/Xub_raw_disk.vmdk"

업데이트 : 여기에서 disk0은 전용 Linux 드라이브입니다. disk1 (사용되지 않음)은 Mac OS X 용입니다. 자신을 / dev / disk0 및 / dev / disk0s2의 소유자로

$ chown $USER /dev/disk0
$ chown $USER /dev/disk0s2

Froggard사용법 에 따라 이미지를 VM에 추가 할 수 있습니다. 또한 /dev/disk0이제 VBoxManage에서 읽을 수 있습니다.

$ VBoxManage internalcommands listpartitions -rawdisk /dev/disk0
Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)
1       0x00  0   /0  /0   0   /0  /0            976         2048
2       0x00  0   /0  /0   0   /0  /0         227959      2000896

이제 Linux 게스트 OS를 시작하면 FATAL: No bootable medium found! System halted.메시지가 나타납니다. 어떤 생각이 잘못 되었나요?


SATA 포트 0이 VM에서 이미 사용 중인지 확인 했습니까? 아니면 이미 IDE 컨트롤러와 같은 다른 컨트롤러를 선택하려고 했습니까?
klanomath 2016 년

OS X가 내부 디스크 0에서 실행중인 경우 전체 디스크 0에 액세스 할 수 없습니다. 그러나 ext4 형식의 파일 시스템이 포함 된 파티션에 액세스 할 수 있습니다. Froggard의 답변에 제공된 6-12 단계를 따르십시오 . 그는 Windows 형식의 파티션에 대해이 작업을 수행합니다. Linux 파티션을 대신 사용하십시오.
David Anderson

실제 머신에서 어떤 운영 체제를 실행하고 있습니까? 이 머신은 어떤 물리 분할을 설치합니까? 가상 머신에서 어떤 운영 체제를 실행 하시겠습니까? 가상 머신이 가상 또는 물리적 파티션에 설치됩니까? 물리적 인 경우 어느 것입니까?
David Anderson

답변:


7

나는 오늘 이것을해야 할 필요가 있었고 당신의 질문을 보았습니다. 그래서 여기에 내가 취한 단계의 프로토콜이 있습니다.

장치 번호 찾기

diskutil list나머지 지시 사항가정 와 같이 2를 예로들 수 있습니다./dev/disk2 2

가상 머신 VMDK 생성

VBoxManage internalcommands createrawvmdk -filename "$HOME/dev-disk2.vmdk" -rawdisk /dev/disk2

이 단계 전에 장치를 꺼내십시오. 그렇지 않으면 오류가 발생 VERR_RESOURCE_BUSY합니다.. OS가 드라이브를 다시 마운트하지 못하도록 fstab추가 된 매개 변수와 함께 항목을 추가 할 수 있습니다 noauto.

rdisk-disk2.vmdk이 가상 머신은이 장치에 대한 포인터이므로 이름으로 사용 합니다. 재부팅 후 상황이 바뀔 수 있습니다. 예를 들어 장치를 분리하고 움직일 경우 특히 장치에 다른 번호가 할당 될 수 있습니다.

루트 권한으로 Virtual Box Manager 시작

sudo /Applications/VirtualBox.app/Contents/MacOS/VirtualBox

장치는 모두 루트가 소유하므로 루트 권한으로 VirtualBox를 시작해야합니다. 결과가 발생합니다. 홈 컨텍스트 (홈 폴더 및 환경 설정)가 루트로 변경됩니다. 다른 가상 머신은 보이지 않습니다. 파일 브라우저를 열면 기본적으로 루트의 홈 폴더가 나타납니다.

다른 옵션은 장치의 권한을 변경하는 것입니다 (권장하지 않음).

장치의 권한을 확인하기 위해 ls -l /dev/disk*

  1. 새 머신 추가, 이름 : / dev / disk2, 유형 : linux, 버전 : arch linux (64 비트)를 제공하십시오.
  2. 약간의 기억을주십시오 (무엇을 할 수 있든지)
  3. 위에서 생성 한 VMDK를 사용하여 기존 드라이브를 선택하십시오. ( 중요 , 그렇지 않으면 당신은 얻을 것이다, 드라이브가 다시 마운트되지 않은 보장 VERR_RESOURCE_BUSY, NS_ERROR_FAILURE)

새로운 시스템 설치

광 디스크 파일 (예 : 원하는 부팅 가능한 Linux ISO)을 추가하고 Live CD / DVD 옵션을 켜서 부팅하십시오.

VirtualBox에서 시스템 부팅 가능

특히 EFI 설정을 사용하는 경우에는 그렇게 명확하지 않습니다. 를 사용 grub-mkconfig하는 경우 efi 파일의 이름은 grubx64.efi입니다 (64 비트 가정). VirtualBox는 부팅 파일을 찾는 위치가 매우 까다 롭습니다. 디폴트는하지 않습니다.

이름 바꾸기 grubx64.efibootx64.efi

/boot/EFI/BOOT/bootx64.efi


노트

  • 팁 : 자신을 iterm 2 받기
  • 기본 ISO는 무선 랜 카드 드라이버를로드하지 않기 때문에 이것은 아치 리눅스를 설치할 때 맥북에 매우 유용합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.