プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

WSL2 のインストール

先日新調した PC の設定作業をぼちぼちやってます。

PC を新しくしたので、細々と使っている VirtualBox の動作さえ問題なければ、 WSL もいままでの WSL 1 をやめて WSL 2 に切り替えたいと思います(こちらの記事で少し触れてる件です)。

ということで、 VirtualBox の動作確認と WSL2 のインストールした際のメモをまとめておきます。

VirtualBox の動作確認

古いPC上では、Hyper-V が有効な状態だと、 VirtualBox の VM が起動するにはするのですが、突然停止したり、若干不安定な挙動でした。バージョン等は下記を参照。

  • Windows 10 Pro, 20H2
  • VirtualBox 6.1.18
  • CPU Core-i7 3770 第3世代

新PCでも確認します。

コントロールパネルの『Windows の機能の有効化または無効化』で一時的に Hyper-V を有効にして、同じことを試したところ、問題なく VM が動作します。これなら、 WSL2 に切り替えても問題なさそうです。こちらの環境は下記になります。

  • Windows 10 Pro, 21H1
  • VirtualBox 6.1.26
  • CPU Core-i9 11900K 第11世代

OS および VirtualBox そのものはバージョンが微妙に異なりますが、大きく違うとも思えません。なので、根拠のない勝手な憶測ですが、古いPCで問題があったのは、ひょっとしたら、CPUが古いせいもあるかもしれません。

なお、 WSL2 インストール前には、 Hyper-V の設定は元に戻しておきました。

WSL2 のインストール

WSL2 のインストールはめっちゃ簡単になってますね。コマンドプロンプトで、

wsl --install

とするだけだそうです(公式のドキュメントはこちら)。

やってみます。 管理者権限でコマンドプロンプトを起動し、コマンドを実行すると

f:id:junichim:20210928103418p:plain

するといろいろとメッセージが表示されて、処理が完了します。再起動すると、

f:id:junichim:20210928103526p:plain

のように、ユーザー名とパスワード設定を求められるので、それらを入力すれば終わりです。

めっちゃ簡単。

WSL の初期設定

お決まりの設定作業を行っておきます。

sudo apt update
sudo apt upgrade

日本語環境の導入。下記記事を参考にしました。

mor@DESKTOP-DE7IL4F:~$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
mor@DESKTOP-DE7IL4F:~$ sudo apt install language-pack-ja
(中略)
mor@DESKTOP-DE7IL4F:~$ 
mor@DESKTOP-DE7IL4F:~$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8
mor@DESKTOP-DE7IL4F:~$ sudo update-locale LANG=ja_JP.utf8

ロケールを変更したら wsl を再起動します。確認。

mor@DESKTOP-DE7IL4F:~$ echo $LANG
ja_JP.utf8
mor@DESKTOP-DE7IL4F:~$ date
2021929日 水曜日 09:33:34 JST
mor@DESKTOP-DE7IL4F:~$

日本語環境になりました。タイムゾーンは日本標準時になっているようなので、変更しません。

マニュアルも日本語版を入れておきます。

mor@DESKTOP-DE7IL4F:~$ sudo apt install manpages-ja manpages-ja-dev
(中略)
mor@DESKTOP-DE7IL4F:~$ 

参考

WSL2 をインストールすると、『Windows の機能の有効化または無効化』が下記のように変化しました。

(インストール前)

f:id:junichim:20210928104147p:plain f:id:junichim:20210928104238p:plain

(インストール後)

f:id:junichim:20210928104219p:plain f:id:junichim:20210928104325p:plain

『Linux 用 Windows サブシステム』だけが変化しましたね。『Hyper-V』や『Windows ハイパーバイザープラットフォーム』にも変化がでるかと思いましたが、設定GUI上は、変化ないようです。

こちらの FAQ などにあるように、内部的に Hyper-V を使ってるのは間違いないようなので、よしなにやってくれてるのでしょう、きっと。

Windows Terminal のインストール

以前は、 WSL 1 を使うために、 wsltty をインストールして使っていたのですが、 2020年5月に Windows Terminal がリリースされたそうなので、そちらを試してみることにしました。

インストールは簡単で、 Microsoft Store から Windows Terminal を検索してインストールすれば終わりです。

設定

快適に使うため、いくつか設定を行います。

メニューから『設定』を選択します。

f:id:junichim:20210928125014p:plain

起動時のデフォルトターミナル

基本的には Ubuntu を使うので、起動時のターミナル種類を変更します。

『既定のプロファイル』を『Ubuntu』に変更します。

f:id:junichim:20210928125116p:plain

開始ディレクトリの変更

デフォルトのままだと、Ubuntu 起動時のディレクトリが、 Windows のユーザープロファイルフォルダ(C:\Users\ユーザー名)なので、 Ubuntu のホームディレクトリになるように変更します。

設定画面左側のバーから『プロファイル』の『Ubuntu』を選択し、『開始ディレクトリ』をデフォルトの『%USERPROFILE%』から、『//wsl$/ディストリビューション名/home/ユーザー名』に変更します。手元の環境だと、『//wsl$/Ubuntu/home/mor』になります。

f:id:junichim:20210928130534p:plain

これで、 Windows Terminal を起動すれば、 Ubuntu が ホームディレクトリで立ち上がります。

フォントとか色とかは使いながら変更しようと思います。

なお、こちらの記事などでは、ディストリビューション名にバージョン番号が含まれています。インストール方法により、ディストリビューション名が異なるのかもしれません。

手元の環境のディストリビューション名は、

C:\Users\mor>wsl --list -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

C:\Users\mor>

で、確認できます(-vなしでもできますよ)。

RLogin のサーバー設定の移行

こちらの記事に書いたように、PCを新調しました。

その後、作業環境を順次移しているのですが、最近使っているターミナルソフトの RLogin の設定内容をどうやって移行すればよいのか、少し戸惑ったので、メモしておきます。

なお、対象となる RLogin のバージョンは下記のとおりです。

  • 移行元 : 2.23.7
  • 移行先:2.26.3

移行方法の調査

ドキュメントによると、基本的に RLogin はレジストリを使って設定内容を管理しているとのことですす。 ただし、実行ファイルと同じフォルダに設定ファイル( .ini ファイル、 RLogin のドキュメントではプライベートプロファイルと呼ばれています)を置いておけば、設定ファイルのほうを使ってくれるそうです。

ただ、ドキュメントの『ヘルプ』->『プライベートプロファイルを作成』を見ると

プライベートプロファイル(RLogin.ini)をレジストリからコピーして新規作成します ※プライベートプロファイルは、レジストリベースのプロファイルのバックアップには、なりません。プライベートからレジストリには戻せません。また、条件によりパスワードなどの情報は、消去されます

とあるので、設定の移行には使えなさそうです。

人によっては、レジストリでの管理ではなく最初から設定ファイルでの管理にして、移行を簡単にしている人もいるようです。が、私の場合、複数の RLogin プロセスを起動して使ったりすることが多々あるのでファイルベースはやめておくことにしました。

で、困ったなと思っていたら、下記の記事にサーバー設定をエクスポートする話が載ってました。

PC交換時の設定移動をなるべく楽にやりたいな

RLogin の設定と言っても、私の場合は実質的に使っているのはほとんどサーバー設定だけなので、このやり方で簡単に設定内容を移行することができそうです。

早速やってみます。

サーバー設定のエクスポート

移行元の既存PCで RLogin を起動して、『サーバー接続』を選びます。

サーバー選択画面で、すべてのサーバー(エクスポートしたいサーバー)を選択し、右クリックします。

f:id:junichim:20210921161621p:plain

『ファイルにエクスポート』を選択すると、ファイル名を入力する画面が表示されるので、ファイル名を入れて保存しておきます。

イサーバー設定のンポート

次は、移行先のPCで作業です。

事前に RLogin をインストールしておきます。 exe ファイルをダブルクリックして RLogin を起動します。

メニューから『ファイル』->『サーバーへ接続』を選び、サーバー選択画面で右クリックします。

『ファイルからインポート』を選択し、先ほど出力したファイルを指定します。

これで、インポート完了です。簡単ですね。

確認

一度 RLogin を閉じて、再度起動し、『ファイル』->『サーバーへ接続』を選択します。

移行元のPCにあったサーバーのエントリーが表示されています。問題なく接続できるか、適当に選んで接続します。

なお、公開鍵を設定している場合、そのままでは認識されないことがありました。鍵ファイルへのパスが同じなら、設定内容を変更せずに一度サーバー設定の編集画面でOKをすれば、正しく認識されるようです(問題なく認識されたサーバーもあったので、違いはちょっと分かりません)。

まとめ

RLogin の設定がレジストリにあると知ったときは、どうしたものかと思いましたが、なんとかなりました。

あと、今回は試していませんが、ドキュメントにある『ヘルプ』->『レジストリをファイルに保存』を使っても、設定内容を復元できそうです(が、直接レジストリに書きに行くことになるので、くれぐれもご注意ください&自己責任でお願いします)。

PC 新調しました(2021年)

いま、メインで使っている PC は約10年前にBTOで購入したものになります。

この時の構想としては、 NAS の iSCSI を利用して、PC側でマウントして、そこを作業領域として使うことで、バックアップ等をNAS側で簡単に行おうというものでした。

いまでもこれで運用していて、普段の作業ではそんなに問題もないのですが、さすがに iSCSI 上のディスクに置いた仮想マシンを使おうとすると、なかなか遅くて大変な思いをするようになってきました。

そんなことを思うようになってきたところに、 Windows 11 の話が聞こえてきました。そろそろいい潮時かな?ということで、買い換えすることにしました。

次のPCでは、 iSCSI 上の作業領域を直接使うのではなく、昨今は SSD も安くなってきたので、 PC 上の SSD に仮想マシンを置いて作業を行い、そのバックアップ先として iSCSI を指定するような構成にすれば、もうちょっと快適に使えるのではないか?と思っています。

ということで、今回は PC の買い替えにあたり、気になった雑多なことをいろいろとメモっておきます。

新 PC の選定

新PCの調達は、手間暇が省けて便利なBTOでお願いしました。前回、特に問題もなかったので、今回も Sycom さんを利用させていただきました。

Ryzen 9 にしようかとも迷ったのですが、グラフィックボードを購入するまでもないかなというのと、開発および事務用途だとコア数はそんなに重要じゃなさそうなので、 Core i9 にしました。ゲームするわけではないので、別にいいかなと。

最終的にはミドルタワーの Radiant GZ3000Z590 をベースにカスタマイズしたものに決めました。

CPU とメモリぐらいの変更になるかな?と思って調べ始めてみると、 M.2 を PCIe 4.0 で2つ使えるのがいいなと思うようになったため、マザーボードも変更しました。

選定にあれこれ時間がかかるんですが、いろいろと調べながらやるのも楽しいですよね。

新 PC の UEFI 設定

注文後しばらくすると Sycom からでっかい箱が送られてきました。そのまま、電源をつないで起動すると問題なく動作します(あたりまえか)。

これで使い始めてもよいのですが、いくつか UEFI を変更したので、それをメモっておきます。

なお、今回選んだマザーボード ASUS ROG Z590-F Gaming WiFi の Sycom 出荷時点の初期設定値は、下記のページに載っていましたので、ご参考にしてください。

よくあるご質問|BTO パソコン(PC)の【@Sycom】(サイコム)

上記から変更した点としては、

項目 初期値 変更後
詳細 -> CPU 設定 -> Intel Vitualization Technology Disabled Enabled
詳細 -> オンボードデバイス構成設定 -> WiFI コントローラ Enabled Disabled
詳細 -> オンボードデバイス構成設定 -> CPU PCIe 設定モード AUTO PCIEX16_1 + M.2_2
詳細 -> オンボードデバイス構成設定 -> システム動作中のLED設定 すべてオン AURA オフ

になります。マザーボードに WiFi 機能があるんですが、当面は使わなさそうなので、とりあえずオフにしました。

なお、 第11世代 の Core i9 だと、ABTを有効にするといいよ、という話があったので、設定を調べてみると、

  • Adaptive Boost Technology の初期値は Auto
  • DRAM Controller DRAM Frequency Ratio の初期値は Auto

でした。なので、当面デフォルト値のままで様子をみてみようと思います。

新旧 PC の比較

せっかくなので、主な項目について、 新旧 PC を比較しておきます。

項目 旧PC 新PC
メーカー Sycom (BTO) Sycom (BTO)
シリーズ名 Radiant VX2100Z77 Radiant GZ3000Z590
マザーボード ASROCK Z77 Pro4-M ASUS ROG STRIX Z590-F GAMING WIFI
CPU 第3世代 Core i7 3770 第11世代 Core i9 11900K
メモリ 16GB 64GB
ストレージ SSD, SATA3, ミラーリング SSD, M.2 PCIe4x4

なお、旧PCは、こちらの記事に書いたように、 SSD で RAID 1 (ミラーリング)を構成していました。

ですが、よくよく、考えてみると、SSDの場合、ミラーリングしても、同じように2台のSSDに書き込むなら、あんまり冗長性が保たれないように思えます(同じ製品なら、それぞれのSSDに書き込むときに同じような順番で書くでしょうから、似たようにタイミングで寿命になるように思われます)。

もちろん、全く無意味とは言いませんが、HDDの時代よりもミラーリングで保護する意味合いが薄れているように思えたので、今回はRAID構成にはしませんでした。 どうしてもミラー構成にしたくなったら、半年~1年後ぐらいにSSD追加して、ミラー構成にしようかなと思います。

ベンチマーク

せっかくなので、新旧でどれぐらい変わるのかベンチマークをとってみました。といっても、個人的な参考値程度なので、厳密に条件を合わせたりしていません。

ベンチマークなんて普段やらないので、何を使おうか迷ったのですが、とりあえず今回は、 Cinebench R23 というのを使いました。

結果は、

旧PC

f:id:junichim:20210921222422p:plain

新PC

f:id:junichim:20210921222710p:plain

となりました(スコア表示なんで相対比較しかできないです)。まあ、当たり前と言っちゃ当たり前ですが、新PCのほうがずいぶんと早いようです。

なお、無料で使えるベンチマークソフトを探しているとき、よくネットの記事とかで目にする PC Mark が使えないか調べてみたら、無料で使える版があったんですがあれこれインストールする必要がありそうだったので、今回はやめました。

まとめ

テスト的に触っているだけでも、新PCはずいぶんと快適になっていることを実感しています。まだ、新PCに作業環境を移行するのが終わってないですが、本格的に使うのが楽しみです。