LoginSignup
1
0

More than 1 year has passed since last update.

WSL2でvhdxをマウントできない場合

Posted at

外部ストレージのマウント

WSLを使っていると、Windowsホストのファイルシステムは/mnt/c等にマウントされています。しかし、WSL2やHyper-V等のvhdxファイルをバックアップとして保存しておき、一時的に取り出したいケース。あるいは、WSL2の標準のファイルシステムから独立したパーティションをDドライブ等システムドライブ以外に置きたい場合があると思います。

vhdxのマウント方法

wsl --mount --vhd 'd:\foo.vhdx'

WSLは長らくWindowsコンポーネント版とストア配布のpreviewに分かれて配布されていますが、ストア版が1.0となったことにより、こちらが標準という位置づけになるそうです。そして、ストア版ではコンポーネント版に比べさまざまな機能追加がなされています。vhd/vhdxのマウントもその一つなので、オプションが見つからない場合にはストアから「Windows Subsystem for Linux」をインストールしてください。

アクセスが拒否されることがある

mountオプションが利用可のであるにもかかわらず、以下のようなエラーが発生する場合があります。

ディスク '\\?\D:\foo.vhdx'を WSL2 に接続できませんでした: アクセスが拒否されました。
Error code: Wsl/Service/AttachDisk/MountVhd/E_ACCESSDENIED

この問題はfoo.vhdxにWSLを利用しているユーザーへのフルコントロールが許可されていないために発生するそうです。実際には所属グループに対してフルコントロールが許可されているので問題なさそうですが、この操作を行うにあたり、ユーザー自身への許可が必要なのだそうです。

解決方法は、foo.vhdxのプロパティを開いて、セキュリティのタブからログインしているユーザーにフルコントロールの許可を与えてください。

unmountする場合には

d:\foo.vhdx をマウントすると、メッセージには\\?\D:\foo.vhdxがマウントできた、あるいは出来なかったと表示されています。
アンマウントする際には以下のように指定が必要のようです。

wsl --unmount '\\?\D:\foo.vhdx'
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0