나는 다음의 솔루션을 사용했습니다.이 스레드하지만 난 항상
VirtualBox error: The medium 'lvol.vmdk' can't be used as the requested device type (0x80004005)
SATA, SCSI, IDE 및 SAS 컨트롤러를 모두 사용해 보았지만 여전히 작동하지 않습니다.
호스트 SO: Ubuntu 12.04.1 amd64 VirtualBox 4.1
lvol.vmdk는 다음 명령으로 생성되었습니다.
vboxmanage internalcommands createrawvmdk -filename /VDK/lvlol.vmdk -rawdisk /dev/vg/lv
원본 디스크에는 다음이 포함됩니다.
1 primary ext3 156MB
2 primary swap 2147MB
3 primary ext3 4137MB
답변1
udev를 사용하여 Ubuntu 12.10과 동등한 시스템을 실행하는 경우 Virtualbox에 할당하려는 논리 볼륨에 적절한 권한을 할당하도록 udev에 지시해야 합니다.
논리 볼륨의 현재 권한을 확인하려면:
$ ls -lL /dev/mapper/vg_usbraid-vm_webserver
brw-rw---- 1 root disk 252, 8 Oct 26 09:26 vg-lv
id
uid=1000(username) gid=1000(groupid) groups=1000(groupid),4(adm),20(dialout),24(cdrom),46(plugdev),115(lpadmin),117(admin),122(sambashare)
그리고 명령어를 통해 해당 장치의 그룹 ID가 그룹 목록에 있는지 확인합니다 id
.
위 예의 문제는 "root"나 "disk"가 id
출력 목록에 없다는 것입니다. 사용자의 그룹 목록을 확장하는 것은 쉽지만 사용자 계정에 추가 root
하거나 추가하는 것은 실제로 원하는 것이 아닙니다.disk
기본보안 위험. 일반 사용자로 쓸 수 있습니다어느디스크의 수준이 매우 낮습니다. 더 나은 솔루션은 아래에 설명되어 있습니다.
현재 사용 가능한 정보가 제한되어 자세히 설명할 수는 없지만, 내 사용자 이름으로 논리 볼륨에서 실행되는 Vbox 가상 머신을 구현하기 위해 수행한 작업은 다음과 같습니다.
다음 파일을 만듭니다. /etc/udev/rules.d/65-vmdmsetup.rules
내용:
SUBSYSTEM!="block", GOTO="vm_device_mapper_end"
KERNEL!="dm-*", GOTO="vm_device_mapper_end"
ACTION!="add|change", GOTO="vm_device_mapper_end"
# Obtain device status
IMPORT{program}="/sbin/dmsetup export -j%M -m%m"
ENV{DM_NAME}!="?*", GOTO="vm_device_mapper_end"
ENV{DM_NAME}=="vg_usbraid-vm_webserver", GROUP="groupid"
LABEL="vm_device_mapper_end"
어디:
vg_usbraid
볼륨 그룹의 이름입니다.vm_webserver
논리 볼륨의 이름입니다.groupid
사용자 이름과 함께 제공되는 그룹 ID입니다. "gid="에 대한 출력을 확인하세요.id
물론 udev를 다시 로드해야 하지만 udev 규칙에 실수가 있으면 시스템이 충돌할 수 있습니다. 따라서 가능한 한 많은 응용 프로그램을 닫고 sync
가능한 한 많은 데이터를 디스크에 플러시하는 프로그램을 실행하십시오. 작동하지 않는 경우를 대비해 최소한 문제가 발생하는 이유를 찾을 수 있도록 로그 수준을 높이는 것이 좋습니다.
$ udevadm control --log-priority=info
$ sudo udevadm control --reload
Ubuntu에서는 로깅이 /var/log/syslog
.
udev가 설정된 후에만 논리 볼륨을 생성해야 합니다. 그렇지 않으면 udev에 이벤트가 표시되지 않습니다. LV가 이미 존재하는 경우 다음을 실행하십시오.
$ sudo udevadm trigger --subsystem-match=block
그런 다음 마지막으로 다음 명령을 사용하여 권한이 올바르게 설정되었는지 확인합니다.
$ ls -lL vg_usbraid-vm_webserver
brw-rw---- 1 root groupid 252, 8 Oct 26 09:26 vg_usbraid-vm_webserver
^^^^^^^
그리고 로깅 레버를 기본 설정으로 복원합니다.
$ sudo udevadm control --log-priority=err