私は私のLinux仮想マシンからSDカードをフォーマットしたいです。私のラップトップには、SDカードリーダーが内蔵されています。VirtualBox と VMware Player を使ってみました。いずれもSDカードリーダーがデバイスとして表示されていません。私はWindowsホストからSDカードにアクセスすることができます
SDカードにハードウェアとしてアクセスしたいので、共有フォルダを使ったソリューションには興味がありません(/dev
で表示されるはずです)
基本的にはBeagleBoardのSDカードをセットアップしたいのですが、物理的なUbuntuをPCにインストールしたくないのです
72 Punit Soni 2012-01-01
新しいMacBook Proでは、SDカードスロットがUSBデバイスとして露出しなくなりました。このため、カード全体への生のアクセスを得るためには、生のデバイスをVMにアタッチする必要があります。ドキュメントの詳細は、VirtualBox ドキュメントの Advanced Storage Configuration セクションにあります
ドキュメントに明記されているように
警告 – 生のハードディスクへのアクセスは、エキスパートユーザーのみを対象としています。誤った使用や古い設定を使用すると、物理ディスク上のデータが完全に失われる可能性があります。最も重要なことは、ゲストで現在実行中のホスト OS でパーティションを起動しようとしないことです。これは深刻なデータの破損につながります
簡単なガイドとして、以下はデバイスを linux VM に接続するための手順です
ホストシステム上の生のディスクブロックデバイスを特定します
- SDカードをスロットに挿入します
ターミナルを開き、”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)`
私の場合、”NO NAME “ボリュームはSDカードなので、
/dev/disk2s1
の部分に注目しています。この場合、s1
部分は生のデバイス上のパーティション(スライス)を表しているので、後で使用する部分は/dev/disk2
部分だけです
- ディスクユーティリティを開き、ボリュームを「アンマウント」します。イジェクト」しないでください。OSXが自動的にランダムに再マウントしてしまうことを発見したので、次のステップでは時々ボリュームをアンマウントする必要があるかもしれないことに注意してください
ここで、ターミナルで以下のコマンドを使って、生のデバイスを認識するようにVirtualBoxを設定します
/path/to/file.vmdk
はどこにでも置けるので注意が必要ですが、~/VirtualBox VMs/guest-vm/sdcard.vmdk
のようにゲストVMのフォルダに格納しておくと良いでしょう使用する
-rawdisk
はパーティション(スライス)を参照するのではなく、ブロックデバイス全体を参照することに注意してください$ VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/disk2
次に、生ディスクをVirtualBox UI内のゲストVMにアタッチします
- ゲストVMが実行されていないことを確認します
- ゲストVMの設定領域を開きます
- ツールバーの「ストレージ」をクリックします
- コントローラの横にある「ハードディスクの追加」アイコンをクリックします
- 既存のディスクを選択」を選択
- 手順3で使用した
/path/to/file.vmdk
に移動して選択します - これでストレージタブに戻り、リストの中に
file.vmdk
が表示されるはずです
- VMを開始する
- GUI を使用しているかどうかによって、SD カードが自動的にマウントされるかどうかが異なります。手動でマウントする必要がある場合は、単に別の標準ブロックデバイスとして公開されます
Update
ステップ3.2または4.6の生のデバイスへのアクセスに問題がある人もいるようです。sudoでいくつかのコマンドを実行しようとしても、VirtualBoxはログインしたユーザーとして実行され、生のデバイスや生成されたvmdkファイルに正しくアクセスすることができません
テストしていませんが、以下の手順で解決するはずです
- OSXで使用しているアカウントがシステム環境設定/ユーザーセクションで管理者権限を持っていることを確認してください。また、生のデバイスが動作するようにアクセスするためのシステム上のプライマリアカウントである可能性が高いです
生のディスクのパーミッションを確認します
$ 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)の両方を許可している必要があります。自分が何をしているのか絶対に分かっている場合以外は、デバイスの権限を変更しないでください
Update #2
OSX Mountain Lionは、”root:operator “権限と0640パーミッションでデバイスを作成したことが判明しました。残念ながら今のところ、このデバイスにアクセスする唯一の方法は、デバイスを挿入するたびに現在のユーザーに「sudo chown $USER」することですが、これは本当に何をしているのか理解していない限り、お勧めできません。AppleかVirtualBoxのどちらかがもっと適切な解決策を見つけてくれることを願っています
61 JinnKo 2012-08-06
Windowsユーザー向けの回答です
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
ですSDカードへのリンクファイルを作成します
管理者としてコマンドウィンドウを開きます
"C:\Program Files\Oracle\VirtualBox\VBoxManage" internalcommands createrawvmdk -filename "%USERPROFILE%/Desktop/sdcard.vmdk" -rawdisk "\\.\PHYSICALDRIVE1"
これはデフォルトのインストールパスを想定しています – 必要に応じて変更してください。必要に応じて変更してください (引用符は rawdisk 引数を囲むようにしてください)
.vmdkファイルはSDカードへのリンクです。ホストシステムのどこにでも置くことができますが、このコマンドは便利なようにデスクトップに置くだけです
JinnKoさんの回答にある4-6の手順に従ってください。唯一の微調整は、管理者としてVirtualBoxを起動する必要があるということです
- 次に、生のディスクを VirtualBox UI 内のゲスト VM にアタッチします
- ゲストVMの電源がオフになっていることを確認します
- VirtualBoxが実行されていないことを確認します
- VirtualBoxを右クリックして「管理者として実行」を選択して起動します
- ゲストVMの設定領域を開きます
- ツールバーの「ストレージ」をクリックします
- コントローラの横にある「ハードディスクの追加」アイコンをクリックします
- 既存のディスクを選択」を選択
- 手順3で使用した
/path/to/file.vmdk
に移動して選択します- これでストレージタブに戻り、リストの中に
file.vmdk
が表示されるはずです- VMを開始する
- GUI を使用しているかどうかによって、SD カードが自動的にマウントされるかどうかが異なります。手動でマウントする必要がある場合は、単に別の標準ブロックデバイスとして公開されます
44 sandyscott 2013-08-14
SDリーダーがUSBコントローラーを使用している場合は、拡張機能が不足している可能性が高いです
ファイル>環境設定の下で、picに従ってください。ダウンロードした拡張子を追加してポイントします
仮想マシンを再起動すると、USB デバイスにアクセスできるようになります
7 kobaltz 2012-01-01
新しいMacBook Proでは、SDカードスロットがUSBデバイスとして露出しなくなりました
この問題を克服するためには、単に内蔵のカードリーダーの代わりに外部のUSBメモリカードリーダー(すなわち、USBアダプタへのSDカード)を使用することができます。それはあなたがちょうど任意のUSBデバイスのように簡単にそれをマウントできるように、USBデバイスとしてあなたのSDカードを公開します。彼らは安いデバイスだし、他の方法ですべての手間を考えると許容可能な解決策だろう
4 Ahmet 2014-02-13
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 Settingsに移動し、Storageを選択し、Controller:Sataをクリックし、Add Hard Diskのアイコンをクリックし、.vdk (ここではsd-card.vmdk)を選択します
4 Bogdan 2015-05-01
私は、主に私のマウンテンライオン(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
Mt.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 ‘s great instructions above) に進んでください
もしあなたが所有者ではない場合(でも ‘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
を一度だけ(スライス/パーティションを設定せずに)行う必要があるかもしれません
これが他の貧しいMt.Lionユーザーの助けになることを願っています
3 likethesky 2012-08-15
今のところ、USBカードリーダーでも直接やる方法を探して失敗しています(期待していた/dev/mmcblk1
ではなく/dev/dm-1
にカードを置いてしまいました)
私の回避策は、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のデータを転送する必要はないはずです
1 Rich 2012-04-25
私の場合は、Devices -> USB devices ->My card reader
を使ってSDカードでUSBデバイスをオンにすると、数秒後にVMに新しいディスクが表示されました
その前にVirtualBox Extensions Packをインストールしたことがあります
0 Zdzisiek 2014-06-14
Virtual Box Guest Additons CD」ファイルをインストールしましたが、SDカードリーダーがWindows XPの仮想マシンに表示されませんでした。Virtual BoxでUSBデバイスを有効にしてからVirtual Machineを再起動することで動作するようになりました
0 skibulk 2016-02-16
kobaltzさんがおっしゃっているようにUSB 2.0と3.0バージョンをサポートするにはVirtual Extension Packをインストールする必要がありますが、私は5.2.22 Oracle VM VirtualBox Extension Packをインストールしましたが、Virtual Boxのダウンロードページからダウンロードできます。ダウンロードしたら直接先に行ってインストールすれば、Virtual Boxの拡張機能にも同じものが追加されます
また、私たちの仮想ボックスのデバイスフィルタにSDカードを追加する必要があります、設定に移動してください – > USB -> SDカードを添付の追加オプションをクリックします
これでフィルターにSDカードを入れることができるようになりました
Filesに移動してSDカードのフォルダを見る(私はUbuntu Linux Distributionを使用しています)
0 Sibeesh Venu 2018-11-27
macosを使用していて、以前の回答に従っている人のために、あなたはまだ許可の問題のためにSDカードにアクセスすることができない場合は、
virtualboxをsudoで実行すれば解決します
sudo VirtualBox
vmファイルへのパスが違うことに注意してください、私の場合はそうです
/private/var/root/VirtualBox\ VMs/$VM_NAME/
それでもうまくいかない場合は、SDカードのディスクの所有者とアクセス権を、それぞれあなたのユーザーアカウントと666に変更してください
0 Pengyuan Zhou 2019-04-03