Как получить доступ к SD-карте с виртуальной машины?

Я хочу отформатировать SD-карту из моей виртуальной машины Linux. У меня есть встроенный SD-карты читатель в моем ноутбуке. Я попытался использовать строки и VMware Player и установил Ubuntu 10.04 гость. Ни один из них не показывает устройство чтения SD-карт в качестве устройства. Я могу получить доступ к SD-карте с узла Windows.

меня не интересуют решения, использующие общие папки, поскольку я хочу получить доступ к SD-карте в качестве оборудования (она должна отображаться в /dev).

Я в основном хочу настроить SD-карту для файл, но я не хочу устанавливать физический Ubuntu на моем компьютере.

5
задан Peter Mortensen
22.03.2023 18:46 Количество просмотров материала 2519
Распечатать страницу

9 ответов

на новых MacBook Pro слот для SD-карты больше не отображается как USB-устройство. Из-за этого необработанное устройство необходимо подключить к виртуальной машине, чтобы получить необработанный доступ ко всей карте. Полная документация находится в Расширенная Конфигурация Хранилища раздел документации VirtualBox.

как четко указано в документах:

предупреждение - Raw доступ к жесткому диску только для опытных пользователей. Неправильное использование или использование устаревшая конфигурация может привести к полной потере данных на физический диск. Самое главное, не пытайтесь загрузить раздел с работающей в данный момент операционной системой на виртуальной машине. Это приведет к серьезному повреждению данных.

в качестве краткого руководства это шаги для подключения устройства к виртуальной машине linux:

  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. в моем случае том "no NAME" - это SD-карта, поэтому я принимаю к сведению /dev/disk2s1 часть. В данном конкретном случае s1 часть представляет собой раздел (срез) на необработанном устройстве, поэтому часть, которую мы будем использовать позже, - это просто /dev/disk2 часть.

  2. откройте Дисковую утилиту и отключить громкость. Не "извлекайте" его. Обратите внимание, что вам может потребоваться размонтировать том время от времени во время следующих шагов, поскольку я обнаружил, что OSX автоматически перемонтирует его случайным образом.
  3. теперь мы создали VirtualBox, чтобы быть в курсе сырого устройства со следующей командой в терминале.

    1. отметим, что /path/to/file.vmdk можно положить везде, хотя хорошая идея хранить это внутри папка гостевой виртуальной машины, например ~/VirtualBox VMs/guest-vm/sdcard.vmdk
    2. отметим, что -rawdisk мы используем не ссылается на раздел (срез), но только блочное устройство в целом.

      $ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
      
  4. Далее мы прикрепляем необработанный диск к гостевой виртуальной машине в VirtualBox UI

    1. убедитесь, что гостевая виртуальная машина не запущена.
    2. Открыть параметры оценки ВМ
    3. нажмите на "Storage" в панель инструментов
    4. рядом с контроллером нажмите на иконку "Добавить жесткий диск"
    5. выберите "выбрать существующий диск"
    6. перейти к /path/to/file.vmdk вы использовали в шаге 3 и выберите
    7. теперь вы должны быть возвращены на вкладку хранения и увидеть свой file.vmdk в списке.
  5. запустить ВМ
  6. в зависимости от того, есть ли у вас графический интерфейс или нет SD-карта может или не может автоматически монтировать. Если вам нужно установить вручную это просто выставляется как другое стандартное блочное устройство, поэтому на моем ГОСТе это было выставлено как / dev / sdb.

обновление

похоже, у некоторых людей могут возникнуть проблемы с доступом к raw-устройству на шаге 3.2 или 4.6. Попытки запуска некоторых команд с sudo не помогут, так как VirtualBox будет работать как ваш зарегистрированный пользователь и все равно не сможет получить доступ к правильному сырому устройству или сгенерированному файлу vmdk.

следующий шаги должны помочь, хотя я их не тестировал.

  1. проверьте, что учетная запись, которую вы используете на OSX, имеет права администратора в разделе "Системные настройки/Пользователи". Существует хороший шанс, что он также должен быть основной учетной записью в системе для доступа к raw-устройству для работы.
  2. Проверьте raw разрешения диска

        $ 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 найдут более подходящее решение.

53
отвечен JinnKo 2023-03-24 02:34

ответ для пользователей Windows

  1. получить DeviceID вашего читателя SD-карты.

    вам понадобится карта в приводе, смонтированная 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-карту

    открыть команду windows как Администратор

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

    это предполагает путь установки по умолчанию - изменить его, если вам нужно. (Убедитесь, кавычки вокруг аргумента rawdisk.)

    The .файл VMDK ссылка на SD-карту, вы можете поместить его в любом месте на вашей хост-системе, но эта команда просто ставит его на рабочем столе для удобства.

  3. выполните шаги 4-6 в ответе JinnKo, единственная незначительная настройка заключается в том, что вам нужно запустить VirtualBox в качестве Администратор

  1. Далее мы прикрепляем необработанный диск к гостевой виртуальной машине в интерфейсе VirtualBox
    1. обеспечить виртуальную машину выключен.
    2. убедитесь, что VirtualBox не работает
    3. запустите VirtualBox, щелкнув правой кнопкой мыши и выбрав "Запуск от имени администратора"
    4. Открыть параметры оценки ВМ
    5. нажмите "Storage" на панели инструментов
    6. рядом с контроллером нажмите на иконку "Добавить жесткий диск"
    7. выберите "выбрать существующий диск"
    8. перейти к /path/to/file.vmdk вы использовали в шаге 3 и выберите
    9. теперь вы должны быть возвращены на вкладку хранения и увидеть свой file.vmdk в списке.
  2. запустить ВМ
  3. в зависимости от того, есть ли у вас графический интерфейс или нет SD-карта может или не может автоматически монтировать. Если вам нужно установить вручную, то оно просто выставляется как другое стандартное блочное устройство, поэтому на моем ГОСТе это было выставлено как /dev / sdb.
37
отвечен sandyscott 2023-03-24 04:51

вы, скорее всего, не хватает расширений, если ваш читатель SD использует контроллер USB.

enter image description here

Файл > Настройки, следуйте рис. Добавьте и укажите на загруженное расширение.

enter image description here

перезагрузите виртуальную машину, и вы должны иметь доступ к USB-устройств.

7
отвечен kobaltz 2023-03-24 07:08

Я использую Kubuntu 15.04, VirtualBox 4.3.26

это предполагает, что устройство sd-карты /dev/mmcbl0 , и на выход .ВДК будет 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

Теперь перейдите в настройки виртуальной машины, выберите Хранилище, нажмите на контроллер: Sata, нажмите на значок для добавления жесткого диска, выберите свой .vdk (sd-карта.# то # в данном случае)

4
отвечен Bogdan 2023-03-24 09:25

у меня было много проблем с получением решения от 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.х ) вы увидите что-то вроде:

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

где 'X' - ваше устройство номер, как '5' в /dev / disk5 ...

На Lion ( 10.7.x), Снежный Барс (10.6.x), или, возможно, более ранних версиях OS X, вы будете-если ваше имя пользователя "Брэд" - вероятно, увидеть что-то вроде:

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

где 'X' - номер вашего устройства, например '5' в /dev / disk5 ... Если вы владелец, то все хорошо, здесь делать нечего, переходите к следующему шагу, то есть шагу createrawvmdk (в замечательных инструкциях @JinnKo выше).

если вы не являетесь владельцем (но "корень" или какой-либо другой пользователь), то либо (а) войти как этот пользователь администратора или (б) сделать следующее (опять же, быть уверены вы используете правильный номер устройства/письмо здесь!):

* осторожно * ниже только для тех, кто хочет риск постоянное уничтожение данных на жестком диске или флэш-накопителе. Делай не сделайте это, если вы не уверены, что знаете, что вы делаем:

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

* осторожно * DO не сделайте это, если вы не уверены, что знаете, что делаете. Вышесказанное только для тех, кто хочет рискнуть навсегда уничтожить данные на своем жестком диске или флэш-накопителе.

вам нужно будет сделать это для всех ваших ломтиков (s1, s2, s3,... сколько бы их ни было). Например, мое имя пользователя "Брэд", поэтому я сделал:sudo chown brad /dev/disk5, потом sudo chown brad /dev/disk5s1, потом s2 и s3 (так как у меня было 3 существующих разделы или ломтики уже).

если вы не разделили SD-карту, то вам может понадобиться только сделать sudo chown <your username> /dev/diskX сразу (без всяких срезов/перегородки)

надеюсь, что это поможет некоторым другим бедным пользователям Mtn Lion там!

3
отвечен likethesky 2023-03-24 11:42

на новых MacBook Pro слот для SD-карты больше не подвергается как USB-устройство

чтобы преодолеть эту проблему, вы можете просто использовать внешний USB Кард-Ридер (т. е. карточка sd к переходнике usb) вместо встроенного читателя карточки. Он будет подвергать вашу sd-карту как USB-устройство, так что вы можете легко установить его так же, как любое устройство usb. Это дешевые устройства и было бы приемлемым решением, учитывая все хлопоты в другом направлении.

2
отвечен Ahmet 2023-03-24 13:59

Я до сих пор не удалось найти способ сделать это напрямую, даже с помощью устройства чтения карт USB (он положил карту на /dev/dm-1, а не ожидаемый /dev/mmcblk1).

мой workround был создать 4 ГБ виртуальный диск в VirtualBox. Это могло бы потом (как /dev/sdb) возьмите установку BeagleBoard Ubuntu, как описано.

затем я закрыл виртуальную машину, преобразовал ее в файл 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 в моем случае, но triplecheck как неправильно мог Борк ваш жесткий диск).

на dd команда заняла около 1 часа 20 минут!

надеюсь, это поможет. Я все еще работаю над более простым и быстрым способом - нам не нужно передавать 4 ГБ данных для 600 МБ ОС.

1
отвечен Rich 2023-03-24 16:16

для меня решение состояло в том, чтобы включить USB-устройство с SD-картой, используя

Devices -> USB devices ->My card reader,

через несколько секунд в виртуальной машине появятся новые диски.

перед этим я установил пакет расширений VirtualBox.

0
отвечен Zdzisiek 2023-03-24 18:33

Я установил файлы "Virtual Box Guest Additons CD", но мой SD Card reader не показывался в моей виртуальной машине Windows XP. Я смог заставить свою работу включение устройство USB в виртуальной коробке, а затем перезапустить виртуальная машина.

0
отвечен skibulk 2023-03-24 20:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх