プロが教えるわが家の防犯対策術!

VirtualBoxにてゲストOSにPC内蔵HDDのパーティションをマウントし、パーティション内の既存データを読み書きする方法を教えてください。
下記の状況です。
ゲストOSの仮想ディスク容量をLVM(論理ボリュームマネージャー)を用いて拡大する記事がネット上に見られますが、パーティションをマウントするにもLVMを使う必要があるでしょうか?

(環境)
VirtualBox 7.0
ホストOS:Windows 11 Home Edition
ゲストOS:Xubuntu 22.04
内蔵HDD:1つのみ(実際はSSDです)
HDDパーティション
  1 100MB fat32 SYSTEM
  2 16MB
  3 118GB ntfs c:ドライブ
  4 1GB ntfs Recovery
  5 50MB ext4 既存データあり

ゲストOSのストレージ状況
 # fdisk -l /dev/sda
 ディスク /dev/sda: 25 GiB, 26843545600 バイト, 52428800 セクタ
 Disk model: VBOX HARDDISK
 単位: セクタ (1 * 512 = 512 バイト)
 セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
 I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
 ディスクラベルのタイプ: gpt
 ディスク識別子: D6B857AB-7548-4B53-8841-AFDB2BD13FE8

 デバイス 開始位置 最後から セクタ サイズ タイプ
 /dev/sda1 2048 1050623 1048576 512M EFI システム
 /dev/sda2 1050624 52426751 51376128 24.5G Linux ファイルシステム


(やりたいこと)
内蔵HDDのext4な第5パーティションをゲストOSにマウントし、読み書きしたい。

(やってみたこと)
(その1)
仮想OS、VirtualBoxを起動しない状態で、ホストOSのWindowsにて管理者としてのコマンドプロンプトで下記のコマンドを入力し、vmdkファイルを作成。
VirtualBoxマネージャーを起動してvmdkファイルを扱おうとすると、エラーとなった(ACCESS_DENIEDだったか、CAN'T FINDだったか)。

(管理者としてのコマンドプロンプトにて)
> VBoxManage createmedium disk --filename C:\Users\TARO\.VirtualBox\xu2204-drv0-part5.vmdk --format=VMDK --variant RawDisk --property RawDrive=//./PhysicalDrive0 --property Partitions=5


(その2)
VirtualBoxマネージャーの「仮想マシンの設定 -> ストレージ」で50MBに指定したvdiファイルを新規作成し、ゲストOSを起動すると、50MBの/dev/sdbが現れた。
/dev/sdbにパーティションがなかったので、全領域をsdb1としてext4フォーマットした。
マウントしたばかりのsdb1は空であった。
テキストファイルを保管してみた。
仮想OS、VirtualBoxを終了し、Linuxから内蔵HDDのext4な第5パーティションを除くと、元のファイルは残っていた。仮想OSで作成したテキストファイルは無かった。
(vdiファイルと内蔵ドライブのパーティションを関連付ける作業はしていないので、当たり前か)
以上

質問者からの補足コメント

  • うーん・・・

    usa3usa様。ありがとうございます。
    コマンドラインでvmdkファイルを作成すると、2つのvmdkファイルができました。
    どちらのファイルもプロパティを見ると、SYSTEM , Administrators , ユーザーが読み書き実行許可を得ています。その他のユーザー(LinuxのOthers相当)は不明です。

    2023/05/07 12:23 1,048,576 xu2204-drv0-part5-pt.vmdk
    2023/05/07 12:23 723 xu2204-drv0-part5.vmdk

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/05/07 13:19
  • うーん・・・

    仮想マシンを電源offにし、VirtualBoxマネージャーの仮想マシンの設定・ストレージ -> コントローラーSATA -> ハードディスク -> 追加 で xu2204-drv0-part5.vmdk を指定すると、
    最初は "Not attached"で検出されました。
    その仮想ディスクを除去して再度同じ設定をすると、
    「Permission problem accessing the file for the medium 'C:\Users\TARO\.VirtualBox\xu2204-drv0-part5.vmdk' (VERR_ACCESS_DENIED).」
    となり、Not attachedにさえもならなくなりました。

      補足日時:2023/05/07 13:20
  • うーん・・・

    仮想マシンを電源offにし、VirtualBoxマネージャーの仮想マシンの設定・ストレージ -> コントローラーSATA -> ハードディスク -> 追加 で xu2204-drv0-part5-pt.vmdkを指定すると
    「Could not get the storage format of the medium 'C:\Users\TARO\.VirtualBox\xu2204-drv0-part5-pt.vmdk' (VERR_NOT_SUPPORTED).」
    となります。

      補足日時:2023/05/07 13:21

A 回答 (2件)

私はご質問の『パーティション「5 50MB ext4」をゲストOS(Xubuntu)からマウントできない。

』に関し何の知識も経験もないのですが、ご質問を読んで疑問に思ったのでご連絡します。
方向違いであれば無視してください。

私の疑問は問題のパーティション「5 50MB ext4」はホストOSであるWindowsからはどの様な扱いを受けているだろうか、ということです。ご質問の場合このパーティションはWindowsからは"完全に放置"されていないとゲストOSからマウントすることはできないと思われます。

ext4ファイルシステムと言っても最近のWindows環境ではアクセスすることができるようです。例えばWSL2を経由してマウントし、エクスプローラで中身を見る、などの操作が可能なようです。
つまりホストOSからこのパーティションに何らかのアクセスが可能な状況ではパーティションはホストOSに支配されており、ゲストOSがマウントすることは到底不可能だと思います。
    • good
    • 0

>VirtualBoxにてゲストOSにPC内蔵HDDのパーティションをマウントし、パーティション内の既存データを読み書きする方法を教えてください。



以下はホストOSがWin10でなくLinuxの場合ですが、参考になりますか?
・パーティションを仮想PCのDドライブ(rawdisk)としてマウントするメモ

sudo su
# VBoxManage internalcommands listpartitions -rawdisk /dev/sda
# VBoxManage internalcommands createrawvmdk -filename /home/<<ユーザ名>>/WinD.vmdk -rawdisk /dev/sda4
# chmod 666 WinD.vmdk
# gpasswd -a <<ユーザ名>> disk

解説)
rootになる
listpartitionsコマンドで/dev/sdaのパーティションの状況を把握。当該の番号を確認。今回は sda4 がDドライブ
createrawvmdkコマンドで、/home/<<ユーザ名>>に /dev/sda4パーティションの仮想ディスクWinD.vmdk を作成
chmodコマンドで、出来たWinD.vmdを読み書きできるように設定
gpasswdコマンドで、VirtualBoxから読み書きできるようにする
再起動

VirtualBoxでの操作:
設定 - ストレージ
---------
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!