[解決済み] WSL (Bash on Windows) のルートファイルシステムを別のハードディスクに移動する?
質問
私のノートパソコンの Windows 10 を Redstone 1 にアップグレードしました。そこで、Linux サブシステム (別名 WSL、LXSS、または Windows 上の Bash) のテストを行いました。基本的にはすべてうまくいっているのですが、WSL の RootFS が
%LocalAppData%
のパス(例えば
C:\Users\xyz\AppData\Local
) で、これは私のWindows OSが置かれている場所でもあります。これは、私のラップトップの SSD ハード ドライブ スペースの多くを消費しているので、外付けハード ドライブに移動できることを望んでいます。
もうひとつの問題があります。他のハード ドライブ パーティションは DriveFS としてマウントされているため、次のような Linux ファイルシステムの機能をサポートしていません。
chmod
にしかない VoIFS でしか動作しないため、私の Linux プロジェクト ビルド スクリプトのいくつかは
/
と
/home
.
そこで、WSL RootFS全体を別のハードディスクに移動してみました。まず、NTFSのJunction(ハードリンク)で
C:\Users\xyz\AppData\Local\lxss
. WSLを完全にアンインストールしてから
mklink
を別のハードディスクにRootFSして、再度WSLを再インストールすると
新しいユーザを作成できず、コード0x80070003でエラーが報告されます。
その後、いろいろ検索してみたら、こんなのが出てきました。
Linux ファイルシステムの移動 - issue #449
.
WSL RootFS の移動とハードリンクの作成は Windows 10 Build 14388 より前のバージョンでのみ動作するようで、Windows 10 Build 14393 RTM では動作しないようです。
唯一の方法は、全体の
%LocalAppData%
を外付けハードディスクに移すしかないのですが、ノートPCユーザーなので、どこにでも外付けハードディスクを持っていけるわけではないので、それはできません
そこでお聞きしたいのですが、WSL をシステム パーティションから移動させる他の方法はありますか。もしそれができないなら。 私はいくつかの他の場所で余分なVoIFS作業ディレクトリを作成し、私のものをコンパイルすることはできますか?
ありがとうございます、よろしくお願いします。 ジャクソン
どのように解決するのですか?
Windows 10 バージョン 1903 (April 2019 Update) 以降を使用している場合は、WSL コマンドラインツールを使用して、次のように試してみてください。
は
export
と
import
オプション
. 古いバージョンの Windows 10 を使用している場合は、次の方法で配布物を別のドライブに移動することができます。
lxRunOffline
.
WSLコマンドラインツールの使用
Windows 10 バージョン 1903 (April 2019 Update) 以降では、コマンドラインツールとして
wsl.exe
のコマンドラインツールを使用します。
1. ディストリビューションをエクスポートします。
を作成します。
.tar
ファイルを作成し、移動するディストリビューションを
wsl.exe --export
wsl.exe --export <DistributionName> <Tar-FileName>
例えば
Ubuntu
ディストリビューションをエクスポートするには
C:\> wsl.exe --export Ubuntu c:\data\ubuntu.tar
2. 配布物を対象フォルダにインポートします。 次に、エクスポートされたディストリビューションを別のフォルダにインポートします。
wsl.exe --import <DistributionName> <Folder-To-Install> <Tar-FileName>
例えば、エクスポートされた
Ubuntu
を新しい
UbuntuCustom
ディストリビューションを作成するには
C:\> wsl.exe --import UbuntuCustom d:\wsl\UbuntuCustom c:\data\ubuntu.tar
注意 これらのコマンドを使う WSL ディストロを移動するためのスクリプトを、以下のサイトで確認することができます。 https://github.com/pxlrbt/move-wsl
LxRunOfflineの使用方法
Windows 10 のどのバージョンでも、配布物を別のドライブに移動するには、次のようにします。 lxRunOffline .
1. 対象フォルダのパーミッションを設定します。
まず、配布物の移動先のフォルダにパーミッションを設定する必要があると思います。そのためには
icacls <dir> /grant "<user>:(OI)(CI)(F)"
を使用して適切なパーミッションを設定します。
C:\> whoami
test\jaime
C:\> icacls D:\wsl /grant "jaime:(OI)(CI)(F)"
注:上記のパーミッションに加え、私は Windows で長いパス名 .
2. ディストリビューションを移動します。
使用方法
lxrunoffline move
.
C:\wsl> lxrunoffline move -n Ubuntu-18.04 -d d:\wsl\installed\Ubuntu-18.04
インストール先のフォルダを確認するには
C:\wsl> lxrunoffline get-dir -n Ubuntu-18.04
d:\wsl\installed\Ubuntu-18.04
3. ディストリビューションを実行します。
ディストリビューションを移動した後、ディストリビューションを実行するには
wsl
または同じ
lxrunoffline
C:\wsl> lxrunoffline run -n Ubuntu-18.04 -w
user@test:~$ exit
logout
C:\wsl> wsl
user@test:/mnt/c/wsl$ exit
logout
関連
-
WebAssembly、Webの新しい時代へ
-
PID 4の "Unable to open process "によってポート80が使用されています。
-
[解決済み] Windowsのコマンドラインでテキストファイルを結合し、先頭行を削除する。
-
[解決済み] パラメータ中の二重引用符のエスケープ
-
[解決済み] Windows XP以降のWindowsです。ウィンドウを表示せず、バックグラウンドでバッチファイルを実行するには?
-
[解決済み] WindowsのPATH環境変数がいっぱいにならないようにするにはどうしたらいいですか?
-
[解決済み] Windowsで環境変数をエクスポート/インポートするには?
-
[解決済み] WindowsでJenkinsのサービスを開始/停止/再起動する
-
[解決済み] PKCS12エクスポート中にOpenSSLが "Loading 'screen' into random state" でハングアップする。
-
[解決済み] Windowsのコマンドプロンプトでパスワード認証付きsshを実行する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ダウンロードした.boxファイルをVagrantに追加するには?
-
[解決済み] Windows XP以降のWindowsです。ウィンドウを表示せず、バックグラウンドでバッチファイルを実行するには?
-
[解決済み] AltGrキーが効かない、代わりにCtrl+AltGrを使わなければならない [閉店]。
-
[解決済み] Windowsで動作するEmacsの.emacsファイルはどこにあるのですか?
-
[解決済み] Windowsで環境変数をエクスポート/インポートするには?
-
[解決済み] WindowsのIF内のバッチSETが機能しない
-
[解決済み] IF... OR IF...をWindowsのバッチファイル内で実行する
-
[解決済み] バッチファイル: コンソールウィンドウを開いたままにする方法
-
[解決済み] PKCS12エクスポート中にOpenSSLが "Loading 'screen' into random state" でハングアップする。
-
[解決済み] WindowsでLinuxのlddに相当するものは何ですか?[クローズド]