技術メモ

【2024年版】WSL(Ubuntu)をCドライブから別のドライブへ移動させる方法

wsl windows subsystem for linux

 

どうも、白夜霧(@KiRi_Byakuya)です。

 

今回は、WSLのUbuntuをCドライブから別のドライブへ移動(引っ越し)させる方法の覚書記事です。

 

CドライブでWSLのディストリビューションを使っていても、機能面では全く問題ありません。

 

ただ、今後色々とやっていくことを考えると、容量の問題も出てきそうなので、WindowsがいるCドライブ以外の別ドライブに移動させます。

 

KiRi

私は「Cドライブはできる限り空き容量を確保しておきたい」派

 

 

WSLを別ドライブに移動 / 環境情報

 

この記事は下記環境で実施しています。

エディション Windows 11 Home
バージョン 23H2
インストール日 ‎2023/‎08/‎21
OS ビルド 22631.3296
エクスペリエンス Windows Feature Experience Pack 1000.22687.1000.0

 

WSLのバージョン


wsl --version
WSL バージョン: 2.1.5.0
カーネル バージョン: 5.15.146.1-2
WSLg バージョン: 1.0.60
MSRDC バージョン: 1.2.5105
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows バージョン: 10.0.22631.3296

 

尚、本記事で使用しているWSLのコマンドの詳細は下記を参照して下さい。

 

 

WSLのディストリビューションをCドライブから別のドライブに移動させる

プログラミング

 

私の場合、WSLのUbuntuをCドライブからEドライブ(増設したSSD)に移動します。

 

今回の移動は「WSLのUbutnuのデータを保存するドライブを、CドライブからEドライブに変更する」という作業です。

 

WSLやUbuntuの本体はCドライブにインストールされています。

 

簡単な流れ

  • 引っ越しするディストリビューションを停止
  • 引越し先のフォルダを準備
  • 引っ越しするディストリビューションをエクスポートする
  • 引越し前のディストリビューションの登録を解除する
  • エクスポートしたディストリビューションを引越し先にインポートする

 

引っ越しさせるディストリビューションの確認

まず、引っ越しさせるディストリビューションを、下記コマンドで確認。※引っ越しさせるディストリビューションの「NAME」をメモる。


wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

 

移動させるUbuntuがRunning(起動中)なので、停止させる。


wsl --shutdown

 

もう一度「wsl -l -v」を入力して、Stoppedを表示されていればOK


wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

 

今はこんな感じ

WSLのディストリビューションを停止

 

引越し先のフォルダを準備

次に、引越し先のフォルダを準備します。移動先のドライブ(今回やE)に任意の空のフォルダを作成。※フォルダ名は任意で可

Ubuntu(WSL)の引越し先のフォルダ

 

作成したフォルダを「Shifを押しながら左クリック」→「PowerShellウィンドウをここで開く」をクリック

指定のフォルダをPowerShellで開く

 

こうすることで、指定のフォルダに移動した状態でPowerShellを開くことができます。

指定のフォルダでPowerShellを開く

 

もちろん、普通にコマンドでフォルダを作成して移動しても全く問題なし。

 

本記事の以後の作業はすべて「E:\wsl」上で行っている前提です。ご注意下さい。

 

引っ越しするディストリビューションをエクスポートする

引っ越しさせるUbuntuを「.tar」ファイルにエクスポートします。


wsl --export DistributionName FileName

 

DistributionName」が引っ越しさせるディストリビューションの名前(NAME)。「FileName」がエクスポートする「.tar」ファイル名。

 

KiRi

FileNameは任意の名前でOK。わかりやすい名前にしておくこと。

 

実際にコマンドを入力すると、エクスポートが開始されて、正常に終了すれば下記のようになります。

WSLのエクスポート成功画面

 

先ほど作った空のフォルダに作成した「.tar」ファイルが作成されています。これでエクスポートは完了です。

WSLのエクスポートで作成されたtarファイル

 

 

引っ越し前の「Ubuntu」をWSLから登録解除する

次に「引越し前のUbuntu」をWSLが管理するディストリビューションからの登録を解除します。

 

  • 「登録解除」を行うと、該当のディストリビューションに関連付けられているすべてのデータ、設定、及びソフトウェアが完全に削除されます。重要なファイルがある場合は、バックアップを準備して下さい。
  • 少しわかりにくいですが、この作業を実施しても「Windowsにインストールされているディストリビューション」は削除されません。あくまでWSLに登録されているディストリビューションが解除されるだけです。

 

KiRi

まだUbuntu上で何もしてなければ気にする必要なし

 

下記コマンドを入力して、Ubuntuを登録解除。※DistributionNameは指定のディストリビューションのNAME


wsl --unregister DistributionName

 

解除後は確認のためインストールされているディストリビューションの一覧を表示して、Ubuntuが無いことを確認。


wsl -l -v

 

インストールしているディストリビューションが一つだけなら、下記画像の様に「Linux用Windowsサブシステムにインストールされているディストリビューションはありません。」と表示されます。

WSLのUbuntuの登録解除

 

引越し先にエクスポートした「Ubuntu」をインポートする

エクスポートした「Ubutnu」を下記コマンドでインポートします。


wsl --import DistributionName InstallLocation FileName

 

DistributionName」は、インポートするディストリビューションの名前(NAME)。「InstallLocation」は引越し先のフォルダパス。「FileName」はエクスポートしたtarファイル名。

 

つまり、今回の場合はこれを入力する。


wsl --import Ubuntu E:\wsl E:\wsl\ubuntu

 

さらに詳しく

  • 作業ディレクトリにインポートするtarファイルがあるならファイル名だけでも可。
  • 私の場合、FileNameに「.tar」をつけると認識してくれなかったので、拡張子は省略しています。

 

インポートが成功すると、下記のように表示されます。これで引っ越しは完了です。

WSLのディストリビューションのインポート成功画面

 

引っ越しが完了したらエクスポートしたtarファイルは削除して問題ありません。

 

 

WSL2/Ubuntuのログインユーザーを「root」からデフォルトの「一般ユーザー」に戻す

会社,デスク,悩む,パソコン

 

引越し後、ログインユーザーがroot(システム管理者用のアカウント、つまり何でもできるアカウント)に変わっています。

 

これはどうやらWSLの仕様?らしいので、一般ユーザーに戻します。戻さなくても普通に動きますが、色々と危ない部分もあるので戻します。

 

rootから切り替える一般ユーザー名を確認する

まず、切り替える(元に戻す)ユーザー名を確認します。覚えていれば問題ありませんが、一応確認します。

 

まず、Ubuntuを起動。rootでログインしていることを確認して、下記コマンドを入力してhomeディレクトに移動します。


cd /home

 

「ls」コマンドを入力して、homeディレクトリにある「ユーザー名のフォルダ」を確認します。


ls

 

私の場合「kiri」というフォルダがあるので、一般ユーザー名は「kiri」となります。

Ubuntuのhomeディレクトリの一般ユーザー名のフォルダを確認

 

WSLのUbuntuのデフォルトユーザーを一般ユーザーに変更

ユーザーを変更するために「wsl.conf」という設定ファイルを書き換えます。

wsl.conf ファイルと .wslconfig ファイルは、すべての WSL 2 ディストリビューション (.wslconfig) 全体で、ディストリビューションごと (wsl.conf) にグローバルに詳細設定オプションを構成するために使用されます。

引用:WSL での詳細設定の構成 / Microsoft

 

下記コマンドで「wsl.conf」を開く。


nano /etc/wsl.conf

 

下記の画像のようにユーザーの部分を追記して下さい。※ユーザー名は各自のもので

WSLのwsl.confにユーザーを追加する

 

下記を追記したら「ctrl + x」→「y」→「Enter」でwsl.confを上書き保存。

 

上書きが完了すると、下記画面戻り、wsl.confの編集作業は完了です。「exit」と入力して、一旦Ubuntuからログアウトします。※PowerShellのウィンドウを閉じて可

 

 

Ubuntuをログアウトして、Windows側に戻ってきたら、下記コマンドでWSLをシャットダウンします。このコマンドは必ず実行して下さい。


wsl --shutdown

 

WSLのシャットダウンが完了したらubuntuを起動して、一般ユーザーに戻っていることを確認して下さい。

 

以上、ありがとうございましたm(_ _)m

  • この記事を書いた人

白夜霧

現役のIT土方・社畜・カフェイン中毒者。趣味のために生きる。サラリーマンの雑記ブログ。さり気なくYouTuberデビューしました\(^o^)/

-技術メモ
-, , ,

© 2024 My,WebNote - 備忘録 -