가상 머신에서 SD 카드에 액세스하는 방법은 무엇입니까?


64

Linux 가상 머신에서 SD 카드를 포맷하고 싶습니다. 노트북에 내장 SD 카드 리더기가 있습니다. VirtualBoxVMware Player를 사용하여 Ubuntu 10.04 게스트를 설치했습니다. 그들 중 어느 것도 SD 카드 리더기를 장치로 표시하지 않습니다. Windows 호스트에서 SD 카드에 액세스 할 수 있습니다.

SD 카드를 하드웨어로 액세스하려는 경우 공유 폴더를 사용하는 솔루션에 관심이 없습니다 (에 표시되어야 함 /dev).

기본적으로 BeagleBoard 용 SD 카드를 설정하고 싶지만 PC에 물리적 우분투를 설치하고 싶지 않습니다.


1
virtualbox guest addons를 설치 했습니까?
tumchaaditya

1
나는 같은 문제가 있었다. 아래의 솔루션은 저에게 효과적이지만 융통성이 없었습니다. 가상 머신에 기본적으로 표시되는 "USB Micro SD 리더"에 투자했습니다. 이를 통해 추가 작업없이 카드를 꽂거나 뽑을 수있었습니다. 솔루션에 대한 또 다른 관점
TheMeaningfulEngineer

답변:


56

최신 MacBook Pro의 SD 카드 슬롯은 더 이상 USB 장치로 노출되지 않습니다. 이 때문에 전체 카드에 대한 원시 액세스 권한을 얻으려면 원시 장치를 VM에 연결해야합니다. 전체 설명서는 VirtualBox 설명서 의 고급 저장소 구성 섹션에 있습니다.

문서에 명확하게 명시된 바와 같이 :

경고 – 원시 하드 디스크 액세스는 전문가 만 사용할 수 있습니다. 오래된 구성을 잘못 사용하거나 사용 하면 실제 디스크의 데이터가 완전히 손실 될 수 있습니다 . 가장 중요한 것은 게스트에서 현재 실행중인 호스트 운영 체제로 파티션을 부팅하지 마십시오. 심각한 데이터 손상이 발생할 수 있습니다.

빠른 안내서로 다음을 장치를 Linux VM에 연결하는 단계입니다.

  1. 호스트 시스템에서 원시 디스크 블록 장치 식별

    1. SD 카드를 슬롯에 삽입
    2. 터미널을 열고 "mount"를 입력하십시오. SD 카드에서 마운트 된 볼륨을 식별하는 출력이 표시됩니다. 내 시스템에서 다음을 얻습니다.

      $ mount
      /dev/disk1 on / (hfs, local, journaled)
      devfs on /dev (devfs, local, nobrowse)
      map -hosts on /net (autofs, nosuid, automounted, nobrowse)
      map auto_home on /home (autofs, automounted, nobrowse)
      /dev/disk2s1 on /Volumes/NO NAME (msdos, local, nodev, nosuid, noowners)`
      
    3. 제 경우에는 "이름 없음"볼륨이 SD 카드이므로 해당 /dev/disk2s1부분 을 기록해 둡니다. 이 특정 s1부분은 원시 장치의 파티션 (슬라이스)을 나타내므로 나중에 사용할 /dev/disk2부분 은 그 부분입니다.

  2. 디스크 유틸리티를 열고 볼륨을 "마운트 해제"하십시오. "꺼내기"하지 마십시오. OSX가 자동으로 무작위로 다시 마운트한다는 것을 알았으므로 다음 단계에서 볼륨을 언 마운트해야 할 수도 있습니다.
  3. 이제 터미널에서 다음 명령을 사용하여 원시 장치를 인식하도록 VirtualBox를 설정했습니다.

    1. (가) 있습니다 /path/to/file.vmdk그것은 같은 게스트 VM 폴더에이를 저장하는 것이 좋습니다하지만, 어디 넣을 수 있습니다~/VirtualBox VMs/guest-vm/sdcard.vmdk
    2. 있습니다 -rawdisk우리의 사용은 전체 파티션 (슬라이스) 만 블록 장치를 참조하지 않습니다.

      $ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
      
  4. 그런 다음 VirtualBox UI 내에서 원시 디스크를 게스트 VM에 연결합니다.

    1. 게스트 VM이 실행되고 있지 않은지 확인하십시오.
    2. 게스트 VM의 설정 영역을 엽니 다.
    3. 툴바에서 "저장소"를 클릭하십시오
    4. 컨트롤러 옆에있는 "하드 디스크 추가"아이콘을 클릭하십시오.
    5. "기존 디스크 선택"을 선택하십시오.
    6. /path/to/file.vmdk3 단계에서 사용한 것으로 이동하여 선택하십시오.
    7. 이제 Storage (저장소) 탭으로 돌아가서 file.vmdk목록에서를 참조하십시오 .
  5. VM 시작
  6. GUI가 있는지 여부에 따라 SD 카드가 자동으로 마운트되거나 마운트되지 않을 수 있습니다. 수동으로 마운트 해야하는 경우 다른 표준 블록 장치로 노출되므로 내 게스트에서는 / dev / sdb로 노출되었습니다.

최신 정보

일부 사람들은 3.2 단계 또는 4.6 단계에서 원시 장치에 액세스하는 데 문제가있는 것 같습니다. 로그인 한 사용자로 VirtualBox가 실행되고 여전히 원시 장치 또는 생성 된 vmdk 파일에 액세스 할 수 없으므로 sudo를 사용하여 일부 명령을 실행해도 도움이되지 않습니다.

테스트하지는 않았지만 다음 단계가 도움이 될 것입니다.

  1. 시스템 환경 설정 / 사용자 섹션에서 OSX에 사용중인 계정에 관리자 권한이 있는지 확인하십시오. 원시 장치 액세스가 작동하려면 시스템의 기본 계정이어야합니다.
  2. 원시 디스크 권한 확인

        $ ls -l /dev/disk2
        brw-r----- 1 jinn staff    14,  5 Aug 26 15:33 /dev/disk2
    

    이 권한은 현재 로그인 한 사용자 계정과 일치해야합니다.

        $ id
        uid=501(jinn) gid=20(staff) ...snip...
    

    장치에 대한 권한은 또한 일반적인 사용자 계정이이 장치에 대한 읽기 (r) 및 쓰기 (w)를 허용해야합니다. 자신이하는 일을 절대적으로 알지 않는 한 장치에 대한 권한을 변경하지 마십시오.


업데이트 # 2

OSX Mountain Lion이 "root : operator"권한과 0640 권한으로 장치를 생성 한 것으로 나타났습니다. 불행히도 현재이 장치에 액세스 할 수있는 유일한 방법은 장치를 삽입 할 때마다 현재 사용자에게 장치를 "sudo chown $ USER"하는 것입니다. Apple이나 VirtualBox가 더 적합한 솔루션을 찾을 수 있기를 바랍니다.


2
Mountain Lion의 경우이를 중지하기 위해 sdcard에서 디스크 중재 장착 파티션을 얻었습니다.$ sudo launchctl list | grep diskarbitrationd 188 - com.apple.diskarbitrationd $ sudo kill -SIGSTOP 188 # pauses diskarbitrationd, disabling automount $ sudo kill -SIGCONT 188 # resumes diskarbitrationd, reenabling automount
ıɾuǝʞ

1
@kenji에게 감사드립니다. Mtn Lion 사용자에게는 유용한 팁입니다 (자동 마운트 문제로 약간 어려움을 겪었습니다). 내 버추얼 포럼에 대한 자세한 설명은 이 글에서 도움이 될; 귀하의 의견에 대한 링크를 여기와 아래에 추가하겠습니다. 다시 감사합니다.
likethesky

1
나는이 안내서를 따르지 만 권한 문제가 있었고 장치에서 chmod 777을 수행했으며 정상적으로 작동했습니다. 더 자세한 사항은 여기에 : balage.blogs.balabit.com/2010/10/...
사만다 카타니아

2
가상 상자에 이미지를 하드 디스크로 추가하려고 할 때 RESOURCE_BUSY가 발생했습니다. OSX가 SD 카드 파티션을 다시 마운트 한 것으로 나타났습니다. 터미널 (호스트에서)에 다음을 입력하여 마운트를 해제하도록합니다.sudo diskutil unmountDisk /dev/<disk path>
Rob

1
1) 마운트 해제 2) chown 3) 가상 디스크 생성 4) 다시 마운트 해제 5) VM에 추가 6) AGAIN 마운트 해제 7) VM을 시작해야합니다. — @JinnKo : 답변에 추가 할 수 있습니까? 아니면 할 수 있습니까?
Erik Allik

42

Windows 사용자를위한 답변

  1. SD 카드 리더의 DeviceID를 가져옵니다.

    드라이브에 Windows로 마운트 된 카드가 필요합니다.

    이 명령을 입력하십시오

    wmic diskdrive list brief
    

    다음과 같이 보일 것입니다 :

    C:\Users\Sandy Scott>wmic diskdrive list brief
    Caption                      DeviceID            Model                        Partitions  Size
    WDC WD7500BPKT-75PK4T0       \\.\PHYSICALDRIVE0  WDC WD7500BPKT-75PK4T0       3           750153761280
    O2Micro SD SCSI Disk Device  \\.\PHYSICALDRIVE1  O2Micro SD SCSI Disk Device  1           3964584960
    

    마지막 장치는 SD 카드 리더이므로 DeviceID는 \\.\PHYSICALDRIVE1

  2. SD 카드에 대한 링크 파일 작성

    관리자 권한으로 명령 창 엽니 다

    "C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk "\\.\PHYSICALDRIVE1"
    

    기본 설치 경로를 가정합니다. 필요한 경우 변경하십시오. 따옴표가 rawdisk 인수 주위에 있는지 확인하십시오.

    .vmdk 파일은 SD 카드에 대한 링크이며 호스트 시스템의 어느 곳에 나 넣을 수 있지만이 명령은 편의상 데스크탑에 넣습니다.

  3. JinnKo의 답변에서 4-6 단계를 따르십시오. 유일한 약간의 조정은 VirtualBox를 관리자로 시작해야한다는 것입니다.

  1. 그런 다음 VirtualBox UI 내에서 원시 디스크를 게스트 VM에 연결합니다.
    1. 게스트 VM의 전원이 꺼져 있는지 확인하십시오.
    2. VirtualBox가 실행되고 있지 않은지 확인
    3. VirtualBox를 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"을 선택하여 VirtualBox를 시작하십시오.
    4. 게스트 VM의 설정 영역을 엽니 다.
    5. 툴바에서 "저장소"를 클릭하십시오
    6. 컨트롤러 옆에있는 "하드 디스크 추가"아이콘을 클릭하십시오.
    7. "기존 디스크 선택"을 선택하십시오.
    8. /path/to/file.vmdk3 단계에서 사용한 것으로 이동하여 선택하십시오.
    9. 이제 Storage (저장소) 탭으로 돌아가서 file.vmdk목록에서를 참조하십시오 .
  2. VM 시작
  3. GUI가 있는지 여부에 따라 SD 카드가 자동으로 마운트되거나 마운트되지 않을 수 있습니다. 수동으로 마운트 해야하는 경우 다른 표준 블록 장치로 노출되므로 내 게스트에서는 / dev / sdb로 노출되었습니다.

cygwin이스케이프 문자 를 감시 하여이를 얻으려고하는 경우 . 올바른 cygwin해결책을 얻지 못했지만 작동하는 명령이에서 작동 cmd하지 않는 것으로 나타났습니다 cygwin.
TheMeaningfulEngineer

VirtualBox를 관리자로 시작하면 컴퓨터가 표시되지 않으므로 설정을 변경할 수 없습니다. 그 이유는 공유 폴더의 링크로 작업해야하기 때문에 관리자가 아니기 때문일 수 있습니다. 계정 유형을 관리자로 변경하고 sdcard 드라이브를 추가하고 VirtualBox를 관리자로 실행 한 후 로그인 화면을 통과 할 수 없습니다. syslog에서 문제를 찾지 못했습니다. sdcard 드라이브가 다시 제거 될 때만 관리자로 VirtualBox를 실행할 때 로그인 할 수도 있지만 물론 sd 카드가 표시되지 않습니다. 그래서 그것은 나를 위해 작동하지 않습니다. :(
Frank Breitling

7

SD 리더가 USB 컨트롤러를 사용하는 경우 확장 기능이 없을 수 있습니다.

여기에 이미지 설명을 입력하십시오

파일> 환경 설정에서 그림을 따르십시오. 다운로드 한 확장을 추가하고 가리 킵니다.

여기에 이미지 설명을 입력하십시오

가상 머신을 다시 시작하면 USB 장치에 액세스 할 수 있어야합니다.


안녕, 나는이 솔루션을 시도하고 virtualbox 확장 팩을 설치했지만 여전히 성공하지 못했습니다. 나는 그것이 차이가 있다면 맥북에서 이것을하고있다. 또한 Macbook 시스템 프로파일 러에서 sd 카드 판독기는 USB 장치 아래에 나열되어 있지 않지만 "카드 판독기"라는 별도의 범주로 표시됩니다. 또한 가상 상자의 USB 아래에 나열된 장치를 볼 수 있습니다.
Punit Soni

4

최신 MacBook Pro의 SD 카드 슬롯이 더 이상 USB 장치로 노출되지 않습니다

이 문제를 해결하려면 내장 카드 판독기 대신 외부 USB 메모리 카드 판독기 (예 : sd 카드 대 USB 어댑터)를 사용하면됩니다. SD 카드를 USB 장치로 표시하므로 USB 장치처럼 쉽게 마운트 할 수 있습니다. 그들은 저렴한 장치이며 다른 방식으로 모든 번거 로움을 고려할 때 수용 가능한 솔루션 일 것입니다.


이것이 가장 현명한 아이디어입니다. 감사합니다! 나는 심지어 USB 카드 리더가 놓여 있지만 그것을 사용할 수 있다는 것을 몰랐다.
marco.m

4

Kubuntu 15.04, VirtualBox 4.3.26을 사용하고 있습니다.

이것은 sd 카드 장치가 /dev/mmcbl0이고 출력 .vdk가 다음 sd-card.vmk과 같다고 가정합니다 .

sudo VBoxManage internalcommands createrawvmdk -filename ./sd-card.vmdk -rawdisk /dev/mmcblk0

이것이 권한을 수정하는 가장 좋은 방법인지 확실하지 않지만 작동했습니다.

sudo chmod 777 /dev/mmcblk0
sudo chmod 777 ./sd-card.vmdk

이제 VM 설정으로 이동하여 저장소를 선택하고 컨트롤러 : Sata를 클릭 한 다음 하드 디스크 추가 아이콘을 클릭하고 .vdk (이 경우 sd-card.vmdk)를 선택하십시오.


3

JinnKo가 솔루션을 작동시키는 데 많은 어려움을 겪었습니다. 주로 Mountain Lion (OS X 10.8)을 사용하고 있었기 때문입니다. 그러나 그의 친절한 지원으로 문제를 해결했습니다.

전체 솔루션은 여기자세히 설명되어 있습니다 .

그러나 Mountain Lion 사용자를위한 솔루션의 본질은 다음과 같습니다 (위의 JinnKo 단계를 사용하지만 'VBoxManage internalcommands createrawvmdk [...]'명령을 실행 하기 전에 여기에 단계를 삽입하십시오. 2 단계 및 3 단계) :

** 특히 Mtn Lion의 경우 **이 장치의 소유자인지 확인하십시오. 10.8 Mtn Lion에서는 아마 당신이 아닌 것을 알 수 있습니다. 다음을 수행하여 확인하십시오.

ls -l /dev/disk*

'*'를 사용하면 모든 디스크 장치를 볼 수 있습니다. ls -l / dev / diskX는 'X'만 표시합니다.

ls -l /dev/disk5

Mtn Lion (10.8.x)에는 다음과 같은 내용이 표시됩니다.

brw-r----- 1 root operator 1, <today's date/time> /dev/diskX

여기서 'X'는 / dev / disk5의 '5'와 같은 장치 번호입니다.

Lion (10.7.x), Snow Leopard (10.6.x) 또는 이전 버전의 OS X에서는 사용자 이름이 'brad'인 경우 다음과 같은 내용이 표시 될 수 있습니다.

brw-r----- 1 brad operator 1, <today's date/time> /dev/diskX

여기서 'X'는 / dev / disk5의 '5'와 같은 장치 번호입니다 ... 소유자 인 경우 모든 것이 좋으며 여기서 수행 할 작업이 없으면 다음 단계, 즉 createrawvmdk 단계 ( @JinnKo의 위의 훌륭한 지침에서).

소유자가 아니지만 ( 'root'또는 다른 사용자 인 경우) (a) 해당 관리자로 로그인하거나 (b) 다음을 수행하십시오 (다시, 올바른 장치 번호 / 문자를 사용하고 있는지 확인하십시오) 이리!):

*주의 * 아래는 하드 드라이브 또는 플래시 스토리지 드라이브의 데이터를 영구적으로 파괴 할 위험이 있는 사용자를위한 것 입니다. DO NOT 당신은 당신이 무슨 일을하는지 알고 확실하지 않은 경우이 작업을 수행합니다 :

sudo chown <your username> /dev/disk5
sudo chown <your username> /dev/disk5s1

*주의 * DO NOT 당신은 당신이 무슨 일을하는지 알고 확실하지 않은 경우이 작업을 수행합니다. 위의 내용은 하드 드라이브 또는 플래시 스토리지 드라이브의 데이터를 영구적으로 파괴하려는 사람들을위한 것입니다.

모든 슬라이스 (s1, s2, s3, ...하지만 많은 것이 있음)에 대해 수행해야합니다. 예를 들어, 내 사용자 이름은 'brad'이므로 sudo chown brad /dev/disk5다음 sudo chown brad /dev/disk5s1과 같이했습니다 . , 그런 다음 , for s2(및 s33 개의 기존 파티션 또는 슬라이스가 이미 있으므로).

SD 카드를 분할하지 않은 경우 sudo chown <your username> /dev/diskX슬라이스 / 파티션을 수행하지 않고 한 번만 수행하면됩니다.

이것이 다른 가난한 Mtn Lion 사용자를 도울 수 있기를 바랍니다!


탁월한 솔루션. 이 글을 쓰지 않으면 길을 잃었을 것입니다. 대단히 감사합니다!
ggutenberg

1

나는 지금까지 USB 카드 리더 (이것이 /dev/dm-1예상보다 카드를 넣음)를 사용하여 직접이 작업을 수행하는 방법을 찾지 못했습니다 /dev/mmcblk1.

내 해결책은 VirtualBox에서 4GB 가상 드라이브를 만드는 것이 었습니다. 그러면 (있는 그대로 /dev/sdb) 문서화 된대로 BeagleBoard Ubuntu를 설치할 수 있습니다.

그런 다음 VM을 종료하고 RAW DD 파일로 변환하고 DD를 사용하여 카드에 넣었습니다. (호스트 Mac에서) :

VBoxManage clonehd UbuntuBeagleImage.vdi UbuntuBeagleImage.dd --format RAW
sudo dd if=UbuntuBeagleImage.dd of=/dev/rdisk(NUMBER) bs=1m

( /dev/disk2내 경우에는 실수로 트리플 체크하면 하드 디스크 드라이브가 손상 될 수 있습니다).

dd명령은 약 1 시간 20 분 걸렸다!

이게 도움이 되길 바란다. 저는 더 쉽고 빠른 방법으로 계속 노력하고 있습니다. 600MB의 OS에 대해 4GB의 데이터를 전송할 필요가 없습니다.


0

나를 위해이 솔루션은 턴을 바탕으로 USB 장치 SD 카드를 사용했다
Devices -> USB devices ->My card reader,
그리고 몇 초 후에 새 디스크 내 VM에 나타납니다.

그 전에 VirtualBox Extensions Pack을 설치했습니다.


0

"Virtual Box Guest Additons CD"파일을 설치했지만 Windows XP 가상 컴퓨터에 SD 카드 리더가 표시되지 않았습니다. Virtual Box에서 USB 장치를 활성화 한 다음 Virtual Machine 을 다시 시작 하여 작업을 수행 수있었습니다 .


0

코 발츠가 언급했듯이. USB 2.0 및 3.0 버전을 지원하려면 Virtual Extension Pack을 설치해야하며 5.2.22 Oracle VM VirtualBox Extension Pack을 설치했으며 Virtual Box 다운로드 페이지에서 다운로드 할 수 있습니다. 파일을 다운로드 한 후 바로 진행하여 설치할 수 있으며 Virtual Box 확장 프로그램에도 동일하게 추가됩니다.

여기에 이미지 설명을 입력하십시오

또한 가상 상자의 장치 필터에 SD 카드를 추가해야합니다. 설정 –> USB로 이동 한 다음 SD 카드 추가 옵션을 클릭하십시오.

여기에 이미지 설명을 입력하십시오

이제 필터에서 SD 카드를 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오

파일로 이동하여 SD 카드 폴더를 확인하십시오 (Ubuntu Linux Distribution 사용)

여기에 이미지 설명을 입력하십시오


0

macOS를 사용하고 이전 답변을 따르는 사람에게 권한 문제로 인해 여전히 SD 카드에 액세스 할 수없는 경우,

sudo로 virtualbox를 실행하면 해결됩니다.

sudo VirtualBox

vm 파일의 경로가 다릅니다. 필자의 경우 다음과 같습니다.

/private/var/root/VirtualBox\ VMs/$VM_NAME/

그래도 문제가 해결되지 않으면 sd 카드의 디스크 소유자와 액세스 권한을 각각 사용자 계정과 666으로 변경하십시오.

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