VirtualBox内からSDカードにEXT4パーティションをマウントする方法


9

私のLenovoラップトップにSDカードリーダーが組み込まれていて、VirtualBoxをインストールして、DebianをVMにスクイーズしましたが、SDカードのEXT4パーティション、またはそのパーティションを表示できません。

私はこの質問をしました: SDカードを別のコンピューターにマウントしてIP設定を変更します

そして、推奨される答えは、仮想マシンにSDカードをマウントすることです。


USBデバイスを経由する必要があると思います(SDカードリーダーはおそらく内部でUSBバスに接続されています)。howtoforge.com/…を参照してください。動作するかどうかをお知らせください。回答として書き上げます。
Alex Chamberlain

@Alex Chamerlain-私はまだ苦労しています、USBデバイスとして表示されないようです。VirtualBoxでrawデバイスとしてパーティションをマウントすることを検討していますが、インターネット接続がありません(またはほとんどありません)私がする必要があることを理解するのは難しいです!
Dog Ears 2012

ありがとうございました。VirtualBoxでXubuntu SATAハードディスクを使用するために完全に機能しました。まさに私が探していたもの。

Windowsを実行しているホストでこれを実行しようとしていることを質問で言及する必要があります(WindowsでLinux VMを使用してSDカードにアクセスする場合でも)。
cjs 2017

回答:


8

内蔵カードリーダー-USBではない-Windows 7ホスト

私のラップトップにはカードリーダーが組み込まれており、USBデバイスとして表示されません。これを機能させるには、EXT4パーティションをVMに割り当ててからVMを起動する前に、RAWとしてマウントする必要がありました。

最初に気付いたのは、[ コンピューターの管理 ]で[ ディスクの管理]ユーティリティを開いた場合-[マイコンピューター]を右クリックして[ 管理 ]を選択すると、SDカードがディスクとして表示されるはずです。真ん中のパーティションは私が探していたものです。

VirtualBox内にrawパーティションをマウントするには、ディスクとパーティション番号を知っている必要があります。私は最初にWindowsコマンドラインユーティリティDiskpartとコマンドを使用してこれらを確認しましたlist disk(私のラップトップでは、ディスク管理では、SDカードは#1と表示されていました)

パーティションを正しく識別するために、listpartitionsここでは例としてVirtualBoxコマンドを使用しました。

vboxmanage internalcommands listpartitions -r awdisk \\.\PhysicalDrive1

そして私にとっての出力は:

Number  Type   StartCHS       EndCHS      Size (MiB)  Start (Sect)
1       0x0c  16  /0  /1   1023/3  /32            75         2048
2       0x83  1023/3  /32  1023/3  /32          1590       157696
3       0x82  1023/3  /32  1023/3  /32           191      3416064

このことから、パーティション2は、アクセスしようとしているEXT4パーティションであると推測しています。

パーティションをrawボリュームとしてマウントする

Linuxゲストがrawパーティションを使用できるようにするために、VirtualBoxはcreaterawvmdk、.vmdk拡張子を持つファイルを作成するコマンドを送信して、VMのストレージ設定から既存のディスクとして指定できるようにします。繰り返しますが、ここに例を示します。

vboxmanage internalcommands createrawvmdk -filename 
C:\VirtualMachines\Debian\disk1_part2.vmdk -rawdisk \\.\PhysicalDrive1
-partitions 2

(「-partitions 2」パラメーターを省略して、デバイス上のすべてのパーティションを有効にすることができます。)

RAWディスクをVMに追加する

VMを起動する前に

  • VMの[設定]ダイアログを開き、[ Storge ]を選択します
  • SATA Controllerを右クリックして、Add Hard Diskをクリックします。
  • [ 既存のディスク選択 ]ボタンを選択し、前の手順で作成したファイルを参照します。

これで、VMを起動してEXT4パーティションにアクセスできるようになりました。

ユーザーアカウント制御の問題

次の条件が満たされている場合:

  • ホストシステムがWindows Vista、7または8(またはおそらくWindows Server 2008R2 / 2012)を実行している
  • ユーザーアカウント制御が有効になっている
  • 生のディスクアクセスに関する権限を変更していない

管理者であっても、上記の操作は失敗する可能性があります。これは、非管理者がrawデバイスにアクセスできないためです。

4つの解決策が考えられますが、どれも非常に優れていません。

  • ユーザーアカウント制御を無効にすると修正される可能性があります(テストしていません)。
  • ユーザーがrawデバイスにアクセスするための権限を割り当てることができる場合があります。ただし、これは非常に安全ではないため、お勧めしません。
  • VirtualBoxを管理者として実行できます(右クリックして[管理者として実行]を選択)。デバイスの作成中と使用中の両方でこれを行う必要があります。
  • ....またはUSBカードリーダーを購入して、USBデバイスとして直接接続します。

これは私の使用に固有のものかもしれませんが、他の誰かに役立つ場合に備えてコメントしたいと思いました:ゲストOSからSDカードに書き込んでいて、BLKCACHE_IOERRエラーでゲストOSが爆弾している場合は、次の方法で修正できますゲストの設定に入り、SATAコントローラーで「ホストI / Oキャッシュを使用する」を有効にします。
Joshua Whitley 2013年

1

これを実現するために、私は次のようにSDカードリーダー、使用これを。私は自分の地元のドル店を1つ選びました。ほとんどすべてのUSBカードリーダーが動作すると思いますが。

プラグインして仮想マシンを起動したら、仮想ボックスの[デバイス]メニューに移動し、[USB]を選択して、USBデバイスを見つけます。「Generic-USB2.0-CRW [8687]」と表示されます。デバイス名は異なる場合があります。差し込むとすぐに、ドライブが自動的にマウントされ、2つのパーティションそれぞれのウィンドウが表示されました(スワップパーティションは含まれません)。これが発生しない場合、デバイスは3つのパーティションを持つ私のマシンで/ dev / sdbとして認識されます。

boot: /dev/sdb1
root: /dev/sdb2 <-- This is the EXT 4 one with the /etc/network/interfaces file
swap: /dev/sdb3

Raspberry SDカードにDebian以外のものを使用している場合、仮想マシンではデバイス名が異なる場合があり、パーティションは異なる場合があります。SDカードリーダーが手元にない場合は、SDカードをカメラに挿入して、Virtual Boxに取り付けてみてください。これは動作する場合と動作しない場合があります。私のeBookリーダー(Kobo)でテストしただけで、vfat(ブート)パーティションのみが表示されます。


+1は役立ちませんが、このソリューションをUSBに適用できることを示すタイトルでしょうか。
犬の耳
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.