仮想マシンからSDカードにアクセスする方法


61

Linux仮想マシンからSDカードをフォーマットしたいです。私は内蔵しています SDカード 私のラップトップのリーダー。使ってみた VirtualBox そして VMware Player そしてUbuntu 10.04ゲストをインストールしました。どれもSDカードリーダーをデバイスとして表示していません。 WindowsホストからSDカードにアクセスできます。

ハードウェアとしてSDカードにアクセスしたいので、共有フォルダを使用するソリューションには興味がありません( /dev

基本的にはSDカードを設定したい ビーグルボード しかし、私は物理的なUbuntuを私のPCにインストールしたくありません。


virtualboxのゲストアドオンをインストールしましたか?
tumchaaditya

私は同じ問題を抱えていました。以下の解決策は私にはうまくいきましたが、柔軟性がありませんでした。私は、デフォルトで仮想マシンに現れる「USB Micro SDリーダー」に投資しました。これにより、追加の操作なしでカードを抜き差しすることができました。ソリューションに関するもう1つの視点
TheMeaningfulEngineer

回答:


56

最近のMacBook Proでは、SDカードスロットはUSBデバイスとして公開されていません。このため、カード全体にアクセスするためには、rawデバイスをVMに接続する必要があります。完全なドキュメントは 高度なストレージ構成 VirtualBoxのドキュメントのセクション。

ドキュメントに明確に述べられているように:

警告 - Rawハードディスクアクセスは、エキスパートユーザー専用です。誤った使用または古い設定の使用 物理ディスク上のデータが完全に失われる可能性があります。 。最も重要なことは、ゲスト内で現在実行中のホストオペレーティングシステムでパーティションを起動しようとしないでください。これは深刻なデータ破損につながります。

クイックガイドとして、これらはLinux VMにデバイスを接続するためのステップです:

  1. ホストシステム上のrawディスクブロックデバイスを特定します。

    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 partはRAWデバイス上のパーティション(スライス)を表すので、後で使用する部分は /dev/disk2 部。

  2. ディスクユーティリティを開き、ボリュームを「マウント解除」します。 「取り出し」ないでください。 OSXは自動的にランダムにマウントし直すので、次の手順で時々ボリュームをマウント解除する必要があるかもしれません。
  3. これで、ターミナルで次のコマンドを使用して、RawBoxを認識するように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. 次に、RawBoxをVirtualBox UI内のゲストVMに接続します

    1. ゲストVMが実行されていないことを確認してください。
    2. ゲストVMの設定領域を開く
    3. ツールバーの "Storage"をクリック
    4. コントローラの隣にある「Add Hard Disk」のアイコンをクリックしてください。
    5. 「既存のディスクを選択」を選択します
    6. に移動します /path/to/file.vmdk ステップ3で使用して選択した
    7. これで[ストレージ]タブに戻り、 file.vmdk リストにあります。
  5. VMを起動する
  6. GUIがあるかどうかに応じて、SDカードは自動的にマウントされる場合とされない場合があります。手動でマウントする必要がある場合は、単に別の標準ブロックデバイスとして公開されるので、ゲストでは/ dev / sdbとして公開されていました。

更新

ステップ3.2または4.6でrawデバイスにアクセスするのに問題がある可能性があります。 sudoを使ってコマンドのいくつかを実行しようとしても、VirtualBoxがあなたのログインユーザーとして実行され、それでもまだ正しいrawデバイスや生成されたvmdkファイルにアクセスすることができないため、役に立ちません。

私はそれらをテストしていませんが、次のステップは助けになるはずです。

  1. あなたがOSXで使っているアカウントがシステム環境設定/ユーザーセクションで管理者権限を持っていることを確認してください。ローデバイスアクセスが機能するためには、システム上の主要アカ​​ウントである必要があります。
  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のどちらかがより適切な解決策を見つけるでしょう。


2
Mountain Lionでは、これを防ぐために、SDカードからディスク調整マウントパーティションを取得しました。 $ 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ユーザーにとっての追加の素晴らしいヒントです(私は自分自身でa​​utomountの問題に少し苦労しました)。俺の VirtualBoxフォーラムの詳細な説明 このヒントから恩恵を受けるでしょう。その下と下にあなたのコメントへのリンクを追加します。再度、感謝します。
likethesky

1
私はこのガイドに従いましたが許可の問題がありました、それから私はデバイスでchmod 777を実行しました、そして、それはうまくいきました。詳細はこちら: balage.blogs.balabit.com/2010/10/..
Samantha Catania

2
バーチャルボックスにハードディスクとしてイメージを追加しようとしたとき、私はRESOURCE_BUSYを得ました。私はOSXがSDカードパーティションを再マウントしたことに気づきました。ターミナルで次のように入力して強制的にアンマウントします(ホスト上)。 sudo diskutil unmountDisk /dev/<disk path>
Rob

1
1)アンマウント2)停止3)仮想ディスクを作成する4)再びアンマウントする5)VMに追加する6)再度マウント解除する7)VMを起動する - @JinnKo:答えにそれを追加できますか?それとも私はできますか?
Erik Allik

40

Windowsユーザーへの回答

  1. SDカードリーダーのDeviceIDを取得してください。

    あなたは窓にマウントされたドライブにカードが必要です。

    このコマンドを入力してください

    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. 次に、RawBoxをVirtualBox UI内のゲストVMに接続します。
    1. ゲストVMの電源が切れていることを確認してください。
    2. VirtualBoxが実行されていないことを確認する
    3. VirtualBoxを右クリックして「管理者として実行」を選択してVirtualBoxを起動します。
    4. ゲストVMの設定領域を開く
    5. ツールバーの "Storage"をクリック
    6. コントローラの隣にある「Add Hard Disk」のアイコンをクリックしてください。
    7. 「既存のディスクを選択」を選択します
    8. に移動します /path/to/file.vmdk ステップ3で使用して選択した
    9. これで[ストレージ]タブに戻り、 file.vmdk リストにあります。
  2. VMを起動する
  3. GUIがあるかどうかに応じて、SDカードは自動的にマウントされる場合とされない場合があります。手動でマウントする必要がある場合は、単に別の標準ブロックデバイスとして公開されるので、ゲストでは/ dev / sdbとして公開されていました。

あなたがこれを取得しようとしている場合には cygwin エスケープ文字に注意してください。正しかった cygwin 解決策が、で動作するコマンドが cmd うまくいかない cygwin
TheMeaningfulEngineer

VirtualBoxを管理者として起動したとき、自分のマシンが表示されず、その設定を変更できません。その理由はおそらく、私がこれを必要とする共有フォルダー内のリンクを使って作業しているので、私は管理ユーザーではないということです。アカウントの種類を管理者に変更してSDカードドライブを追加し、管理者としてVirtualBoxを実行した後、ログイン画面を過ぎることができません。 syslogに問題は見つかりませんでした。 SDカードドライブが再び取り外された場合に限り、VirtualBoxを管理者として実行しているときにもログインできますが、もちろんSDカードは表示されません。だから私にはうまくいきません。 :(
Frank Breitling

ありがとうございます。それは確かにUbuntu上のsdbです。
Hrvoje T

7

あなたのSDリーダーがあなたのUSBコントローラを使用しているなら、あなたはたぶんあなたは拡張子を見逃しているでしょう。

enter image description here

[ファイル]&gt;の下に設定は、写真に従ってください。ダウンロードした拡張子を追加して指定します。

enter image description here

仮想マシンを再起動すると、USBデバイスにアクセスできるはずです。


こんにちは、私はこの解決策を試して、virtualboxエクステンションパックをインストールしましたが、まだ成功しませんでした。違いが出るのであれば、私はこれをmacbookでやっています。また、私のmacbookシステムプロファイラでは、sdカードリーダーはUSBデバイスの下にはリストされていませんが、「カードリーダー」と呼ばれる別のカテゴリとしてリストされています。また、virtualboxのUSBの下にリストされているデバイスを見ることができます。
Punit Soni

これは私のために美しく働いた!ありがとうございました!
Jeff

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

私はMountain Lion(OS X 10.8)に参加していたことが原因で、JinnKoによる解決策を実行するのに大変な苦労がありました。

完全な解決策は 詳細はこちら

しかし、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

Mountain Lion(10.8.x)では、次のようになります。

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

/ dev / disk5の '5'のように、 'X'はあなたのデバイス番号です。

Lion(10.7.x)、Snow Leopard(10.6.x)、あるいはおそらく以前のバージョンのOS Xでは、あなたのユーザ名が 'brad'なら、おそらく次のようになるでしょう

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

/ dev / disk5の '5'のように、 'X'はあなたのデバイス番号です。 あなたが所有者であれば、問題は解決しないので、次のステップ、つまりcreaterawvmdkステップ(上記の@JinnKoの素晴らしい指示にあります)に進みます。

あなたが所有者ではない(しかし 'root'または他のユーザーが所有している)場合は、(a)その管理ユーザーとしてログインするか、(b)以下のいずれかを実行してください。 確定 ここで正しいデバイス番号/文字を使っています!):

* 注意 * 以下はしたい人のためのものです リスク ハードドライブまたはフラッシュストレージドライブのデータを永久に破壊する。行う ではない 自分のしていることが分からない場合は、これを行ってください。

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

* 注意 * 行う ではない 自分のしていることが分からない場合は、これを行ってください。上記はハードドライブやフラッシュストレージドライブのデータを永久に破壊する危険性がある方のみです。

すべてのスライス(s1、s2、s3など)にこれを実行する必要があります。 たとえば、私のユーザー名は 'brad'です。 sudo chown brad /dev/disk5それから sudo chown brad /dev/disk5s1それから s2、そして s3 (私はすでに3つの既存のパーティションまたはスライスを持っていたので)。

あなたがSDカードを分割していない場合は、あなただけのする必要があるかもしれません sudo chown <your username> /dev/diskX 一度(スライスやパーティションを一切使わずに)

これが他の貧しいMtn Lionユーザーに役立つことを願っています!


優れた解決策私はこれを書かないで迷子になっていたでしょう。どうもありがとうございました!
ggutenberg

3

新しいMacBook Proでは、SDカードスロットはUSBデバイスとして公開されなくなりました

この問題を克服するためには、単に外部の USBメモリーカードリーダー 内蔵カードリーダーの代わりに(すなわち、sdカードからusbアダプタへ)。それはあなたがちょうど他のUSBデバイスのようにそれを簡単にマウントできるようにUSBデバイスとしてあなたのSDカードを公開します。彼らは安価な機器であり、他の面ですべての面倒を考えると許容できる解決策となるでしょう。


1

私は今のところ、これを直接行う方法を見つけることに失敗しています。USBカードリーダーを使っていても(それはカードを /dev/dm-1 予想よりも /dev/mmcblk1

私の回避策は、VirtualBoxで4 GBの仮想ドライブを作成することでした。これは( /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分かかりました!

これが役に立つことを願っています。私はまだより簡単でより速い方法に向かって取り組んでいます - 私たちは600 MBのOSに4 GBのデータを転送する必要はないはずです。


0

私にとっての解決策は、SDカード付きのUSBデバイスをオンにすることでした。
Devices -> USB devices ->My card reader
そして数秒後に新しいディスクが私のVMに現れます。

その前にVirtualBox Extensions Packをインストールしました。


0

"Virtualbox Guest Additions CD"ファイルをインストールしましたが、Windows XP仮想マシンにSDカードリーダーが表示されませんでした。私は私の仕事をすることができました 有効にする Virtual BoxのUSBデバイス 再起動 仮想マシン


0

コバルツが述べたように。 Virtual Extension Packをインストールする必要があるUSB 2.0および3.0バージョンをサポートするために、私は5.2.22のOracle VM VirtualBox Extension Packをインストールしました、そしてあなたはそれをVirtual Boxダウンロードページからダウンロードすることができます。ファイルをダウンロードしたら、直接インストールしてインストールすることができます。同じ内容がVirtual Boxの拡張機能にも追加されます。

enter image description here

また、バーチャルボックスのデバイスフィルタにSDカードを追加する必要があります。設定 - &gt;にアクセスしてください。 USB - &gt; Add SD card Attachedオプションをクリックします。

enter image description here

これで、あなたは自分のSDカードをフィルターに入れることができるでしょう。

enter image description here

ファイルに行き、SDカードのホールダーを見なさい(私はUbuntu Linuxディストリビューションを使用する)

enter image description here

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.