VirtualBox上のUbuntuにSDカードを認識させる

  • 最終目的は、Raspberry PI2の上でPOPFileを動かすこと。
  • そのために、まずはRaspberry PI2でUbuntuを動かそう!と考えた。
    • どうも、POPFileをパッケージインストール一発でセッティングできるらしい、という話を聞いて…。)
    • その際の参考に使用と思っているのが、こちらの記事
  • でも、Raspberry PIに差して使うSDカードにUbuntuを導入するには、Linux環境が必要らしく…。
  • だったら、VirtualBoxでUbuntuの仮想マシンを起動させて、そこからSDカードにアクセスできるようにしましょう!←今ココ

環境

こんな感じ。 このMacについて

  • マシン: MacBook Pro Retina15 (Late 2013)
  • OS: Yosemite; OS X 10.10.2
  • VirtualBox: Ver.4.3.22

USBカードリーダーとして設定してみる

何も考えずに、SDカードをMacのスロットに差し、そのカードリーダー(USB)をVirtualBoxのゲストOS用設定画面で割り当ててみる。(仮想マシンは電源オフ状態) SDカードリーダ割り当て-初回

そのまま仮想マシンを起動してみる。=> 起動しません (T_T) 起動失敗

どうやら、Oracle VM VirtualBox Extentionなるものをダウンロードして入れる必要があるらしい…。

なら、入れてみましょう!(`・ω・´) Install Exttention

入りました。( ˘ω˘) Extention is installed now

今度は仮想マシンの起動に成功した。(vagrantで起動) 仮想マシン起動成功

でも、lsblkを実行してみたら、SDカードが認識されない…。orz USB経由では認識されず

SDカードを認識させる方法について調べ直す

ググってみると、StackOverflowに関連記事を見つけた。それによると…

On newer MacBook Pro’s the SD card slot is no longer exposed as a USB device. Because of this you’ll need to attach the raw device to the VM in order to gain raw access to the whole card.

「SDカードスロットはUSBデバイスとしてではなく、rawデバイスとして利用すべし」、とのこと。

さらに検索を続けると、下記ブログ記事を見つけた。同じようなことに苦労したため、rawデバイスとしてVirtualBoxから利用する方法を丁寧に解説してくれている。

この記事のステップに従ってみることにする。

SDカードをrawデバイスとして認識させる

Macのターミナルからmountコマンドを実行してみると、SDカードは/dev/sd2s1に割り当てられていることが判明した。このデバイス名を、後で使う。

Macのディスクユーティリティでアンマウントボタンを押す。参考記事に書いてあるように、ここは間違って取り出すボタンを押さないように注意。

SDカードのアンマウント

次に、「VirtualBox vmdkファイル」なるものを作る。これには、

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

というコマンドを実行する。デバイス名は、元記事では/dev/disk1となっていたところだけど、自分の環境に合わせて/dev/disk2で。

vmdkファイルの作成

vmdkファイルができた。

次は、確実にマウントできるようにするため、今作ったばかりのvmdkファイルと、SDカードに対応するデバイス/dev/disk2をchmodで777にする。 デバイスとvmdkファイルをchmod

元記事通り、順調に進んだ。最後に、VirtualBoxの[ストレージ]タブから、SDカードを追加する。「ハードドライブを追加」を押すと出てくるダイアログで、「既存のディスクを選択」を選ぶ。 「既存のディスクを選択」を選ぶ

『ストレージツリー」に追加できた! vmdk追加成功

この状態で、VirtualBoxを起動してみると… lsblkコマンドにて、8GBのSDカードを確認! lsblk on Ubuntu

やれやれ、ようやくVirtualBox上のUbuntuで認識するところまでできた。

まとめ

今どきのMacbook ProでVirtualBox上のLinuxにSDカードを認識させるには、USBデバイス(の中のカード)としてではなく、rawデバイスとして認識させることが大事だった。

次は、VirtualBox上のUbuntuからやっと認識できたSDカードに、Raspberry PI用のUbuntuをインストールしようと思う。

Comments