Windows Subsystem for Linux 環境で開発を進める際、Windows側のファイルに書き込みができないと業務が滞ってしまいます。この問題は、多くの場合、Windowsファイルシステム側の「読み取り専用」属性が原因で発生します。
この記事では、Windows 11を基準に、リナックス環境からWindowsファイルへの書き込み権限の不備を解消する具体的な手順を解説します。
Windowsとリナックス間のファイル操作を円滑にし、開発や作業の効率を向上させることが可能です。
【要点】Windows Subsystem for Linuxでのファイル書き込み権限の問題解決
- 読み取り専用属性の解除: Windows側のファイルやフォルダの読み取り専用属性を解除し、リナックス環境からの書き込みを可能にします。
- WSL自動マウント設定の確認: Windows Subsystem for Linuxの自動マウント設定が、Windowsドライブへの書き込みを適切に許可しているか確認し、必要に応じて修正します。
- 管理者権限での操作: 権限の問題が続く場合、Windowsのファイル操作やWindows Subsystem for Linuxの起動を管理者権限で実行することで問題を回避します。
ADVERTISEMENT
目次
Windows Subsystem for Linuxにおけるファイル書き込み権限の問題発生原因
Windows Subsystem for Linux 環境でWindows側のファイルを扱う際、権限の問題により書き込みができない事象が発生することがあります。これは主に、Windowsのファイルシステムとリナックスのファイルシステム間の権限管理の違い、またはWindows側で設定されたファイル属性が原因です。
Windowsファイルシステムとリナックスパーミッションの差異
Windows Subsystem for Linuxは、Windowsのドライブをリナックス環境にマウントして利用します。この際、WindowsのNTFSファイルシステムとリナックスのExt4などのファイルシステムでは、ファイルアクセス権限の管理方法が異なります。リナックスのパーミッション設定だけでは、Windows側の権限設定を上書きできない場合があります。
読み取り専用属性の影響
Windowsのファイルやフォルダには、「読み取り専用」という属性があります。この属性が設定されていると、Windows Subsystem for Linuxを含むほとんどのアプリケーションからそのファイルへの書き込みが制限されます。特に、Gitで管理されたプログラムの保存場所をWindows側でクローンした場合などに、この属性が付与されていることがあります。
Windows Subsystem for Linux環境でのファイル書き込み権限を修正する手順
ここでは、Windows Subsystem for LinuxからWindowsファイルへの書き込み権限の問題を解決する具体的な手順を説明します。Windows 11を基準に解説しますが、Windows 10でも同様の操作で対応できます。
Windows側のファイル属性を解除する
- 対象ファイルのプロパティを開く
書き込みたいファイルまたはフォルダをエクスプローラーで探し、右クリックします。表示されるコンテキストメニューから「プロパティ」を選択します。 - 読み取り専用属性を解除する
開いたプロパティウィンドウで「全般」タブをクリックします。中央にある「属性」セクションを確認し、「読み取り専用」のチェックボックスがオンになっている場合はクリックしてチェックを外します。 - 変更を適用する
「適用」ボタンをクリックします。もし対象がフォルダの場合、「属性変更の確認」ダイアログが表示されます。「変更をこのフォルダー、サブフォルダーとファイルに適用する」または「このフォルダーのみに適用する」から適切な方を選び、「OK」をクリックします。 - プロパティを閉じる
プロパティウィンドウで「OK」ボタンをクリックし、ウィンドウを閉じます。
Windows Subsystem for Linuxの自動マウント設定を確認する
Windows 11では、Windows Subsystem for Linuxの自動マウント設定をカスタマイズできます。書き込みが適切に許可されているか確認しましょう。
- WSL設定ファイルを開く
エクスプローラーを開き、アドレスバーに「%UserProfile%」と入力してEnterキーを押します。表示されるフォルダ内で「.wslconfig」というファイルを探します。もしファイルが存在しない場合は、メモ帳などのテキストエディターで新規作成します。 - マウントオプションを確認・編集する
「.wslconfig」ファイルをメモ帳などのテキストエディターで開きます。`[automount]`セクションがあり、`options = “metadata”`などの記述がある場合、これを`options = “metadata,umask=22,fmask=111″`のように編集または追記します。`umask`はファイルのデフォルトパーミッションを、`fmask`はフォルダのデフォルトパーミッションを設定するオプションです。 - WSLを再起動する
コマンドプロンプトまたはPowerShellを管理者として実行し、「wsl –shutdown」コマンドを入力してWindows Subsystem for Linuxを完全に停止させます。その後、再度Windows Subsystem for Linuxディストリビューションを起動して、変更を適用します。
管理者権限で操作する
上記の属性変更や設定確認がうまくいかない場合、管理者権限での操作が必要になることがあります。
- エクスプローラーを管理者として実行する
スタートメニューを右クリックし、「タスクマネージャー」を選択します。タスクマネージャーの「ファイル」メニューから「新しいタスクの実行」をクリックします。「cmd.exe」と入力し、「このタスクを管理者として作成します。」のチェックボックスをオンにして「OK」をクリックします。開いたコマンドプロンプトで「explorer」と入力しEnterキーを押すと、管理者権限のエクスプローラーが開きます。 - WSLディストリビューションを管理者として起動する
スタートメニューから使用しているWindows Subsystem for Linuxディストリビューションのアイコンを右クリックし、「管理者として実行」を選択して起動します。
ファイル書き込み権限修正で発生しがちな問題と解決策
ファイル書き込み権限の修正を行っても問題が解決しない場合や、別のエラーが発生する場合の対処法を説明します。
属性変更後も書き込みができない
原因: 親フォルダが読み取り専用になっているか、別のプロセスがファイルを使用している可能性があります。
- 親フォルダの属性を確認する
書き込みたいファイルがある親フォルダのプロパティを開き、読み取り専用属性が設定されていないか確認し、設定されている場合は解除します。 - PCを再起動する
ファイルを使用しているプロセスを強制終了するため、PC全体を再起動してから再度試します。
WSL環境で「Permission denied」エラーが続く
原因: Windows Subsystem for Linux 2の自動マウントオプションが正しく適用されていない、またはリナックス側のパーミッションが不適切である可能性があります。
- .wslconfigファイルの再確認
上記手順で設定した「.wslconfig」ファイルの内容をもう一度確認し、誤字脱字がないか、Windows Subsystem for Linuxがシャットダウン後に再起動されているかを確認します。 - リナックスコマンドでパーミッションを修正する
Windows Subsystem for Linuxターミナル内で、問題のファイルやフォルダに対して「chmod」コマンドを使ってパーミッションを修正します。例として、「chmod 775 /mnt/c/path/to/file」と入力します。
Windows 10での操作の違い
Windows 10でもファイル属性の変更手順はWindows 11とほぼ同じです。ただし、Windows Subsystem for Linuxのバージョンや更新状況によっては、設定ファイルのパスや適用方法が異なる場合があります。基本的に上記の手順で対応できますが、解決しない場合はWindows Subsystem for Linuxの公式ドキュメントを参照してください。
特にWindows 10の古いバージョンでは、Windows Subsystem for Linux 2が導入されていないことがあります。その場合は、「.wslconfig」ファイルが存在しないため、Windowsのファイル属性変更のみを試してください。
ADVERTISEMENT
Windowsファイル属性とリナックスパーミッションの比較
| 項目 | Windowsファイル属性 | リナックスパーミッション |
|---|---|---|
| 管理対象 | ファイルやフォルダの読み取り専用、隠しファイルなどの特性 | ファイルやフォルダの所有者、グループ、その他のユーザーに対する読み取り、書き込み、実行権限 |
| 設定方法 | プロパティダイアログでチェックボックスやプルダウンから設定 | chmod、chownなどのコマンドで設定 |
| 影響範囲 | Windows OS上で動作する全てのアプリケーション | リナックス OS上で動作する全てのアプリケーション |
この記事で解説した手順により、Windows Subsystem for Linux環境におけるファイル書き込み権限の不備を解決できたことと思います。
Windows側のファイル属性解除やWSL設定の調整を通じて、Windowsとリナックス間でのファイルの読み書きがスムーズに行えるようになります。
これらの知識を応用し、Gitで管理されたプログラムの保存場所の構築や、開発環境のさらなる最適化に役立ててください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Windows・PCの人気記事ランキング
- 【Edge】起動時や新しいタブを「Google」にする設定!ニュースを消してシンプルにする方法
- 【直し方】F7でカタカナにならない!ファンクションキーが効かず音量などが変わる時のFnロック解除法
- 【Windows】サブモニターが映らない!HDMIを挿しても「信号なし」になる時の認識・設定手順
- 【Windows】画面がチカチカ・点滅する!グラフィックドライバの更新と設定の見直し
- 【Windows】パスワードなしで起動!PIN入力を省略して自動ログイン(サインイン)させる設定手順
- 【Windows】デスクトップのアイコンが「白い紙」になった!アイコンキャッシュを削除して元に戻すコマンド
- 【PC周辺】2台のモニターで壁紙を「別々」にする方法!Windows11での配置と調整
- 【Windows】デスクトップアイコンの「緑のチェック」は何?OneDriveの同期マークを非表示にする方法
- Windows 11を極限まで軽量化する「不要な標準サービス」停止リスト|PCの動作を爆速化する設定手順とリスク管理の全貌
- 【Windows】Cドライブが赤い!空き容量不足を解消して数GBを一瞬で空ける4つの最強クリーンアップ術
