先日、メインマシンの Surface Book が壊れました。保証が切れてからいくつかの問題を乗り越え、満身創痍だったのですが、ついに反応しなくなってしまいました。
今回は中古 PC を探してみました。エンジニア視点のスペック選びです。
- ボディは金属のもの、プラスチック素材は強化してあっても劣化する
- CPU は第8世代以上、最新は13世代で、5世代前までなら許容範囲
- キーボード配置が合っていること、Fn キー状態がロックできること
→Lets's Note は Fn と Ctrl の位置が他とは逆です。使いづらいので BIOS で入れ替えています。 - USB は USB3 が実装されていること、電源が入っていないときでもチャージする機能があればベター
- ディスプレイは HDMI(映像、音声)または DisplayPort(映像)つき
- SSD 512GB 以上、前回が 256GB だったのでそれ以上の容量
- メモリは 16GB 以上、従来は 8GB で目一杯の動きだった
- GPU は問わない
- タッチパッドは「高精度タッチパッド」(Precision Touchpad)であること、ピンチインアウトの操作が格段に違う
→これが無いとブラウザ拡大縮小のシミュレートになり、使いづらくなります - 無線 LAN、Bluetooth 対応、最近のはほとんど対応しているはず
探したところ、以下を見つけました。
HP ZBOOK 14u G5
- CPU は Intel Core i7 8550U(第8世代)
- キーボードの Fn ロック機能つき(Shift+Fn)、バックライト
- 左右に USB3 端子をひとつずつ装備
- AC アダプタ以外に USB-C で充電、Thunderbolt 対応
- ディスプレイは HDMI つき
- SSD 512GB
- メモリ 16GB
- GPU は Intel UHD Graphics 620 の他に AMD Radeon Pro WX 3100 装備
- 高精度タッチパッド
- 無線 LAN は Intel Dual Band Wireless AC8265、Bluetooth つき
- 他に指紋と赤外線カメラで Windows Hello 対応、Ethernet 有線、スマートカードリーダー
データ移行に必要なファイル
- C:\windows\system32\drivers\etc\hosts
IIS で使うホスト名と IP アドレス(127.0.0.1) - C:\windows\system32\inetsrv\config\applicationHost.config
IIS のホスト設定 - C:\Users\ユーザー名\.ssh\id_rsa, id_rsa.pub, config
SSH の鍵ファイル
インストールするアプリ、プログラム
- Git for Windows
バージョン管理を行います。 - Microsoft Visual Studio Code
コードエディタです。以下の拡張機能を入れます。 - SFTP
- GIMP, Inkscape, XnConvert
画像エディタです。アイコンなどを作ります。 - IIS(インターネット インフォメーション サービス)
Windows 追加で入れることができるコンポーネントです。PC で Web サーバーを実装できます。ホストヘッダと上述 hosts を組み合わせることで、複数のサイトを管理することできます。 - ARR(Application Request Routing)
- 複数ホストのときに別ポートをホストしている Web サーバーにつなぐ場合に使います。
- URL Rewrite Module
- 標準では IIS にはリライト機能はありません。
- 起動時エラーで、DLL 不足の場合は補う
IIS 起動時に 502 エラーになったとき、applicationHost.config に指定されている DLL が足りない場合があります。このときは Windows オプションの追加を行います。
何が足りないのかはアプリケーションログで確認できます。 - WSL(Windows Subsystems for Linux)
Windows で Linux コンソールを動かします。WSL にはバージョンがふたつあります。可能であれば WSL2 を使いましょう。 - WSL 関係の引っ越しには WSL --export を使います。WSL2 のみ、vhd 形式(*.vhdx)でのエクスポートに対応しています。
WSL --export [イメージ名] [エクスポートファイル.tar] - インポートには WSL --import を使います。vhd 形式は問題ありませんが、tar 形式の場合はシステム内に設定されたシンボリックリンクが実体に変わってしまうので、再設定が必要です。
WSL --import [ディストリビューション] [インポート先ディレクトリ] [インポートファイル.tar] - 上記シンボリックリンク関係で大きく問題になるのは npm パッケージ関係で、node_modules/.bin ディレクトリのシンボリックリンクが変わってしまうため、ビルドが通らなくなります。このときは npm ci などでパッケージ関係を再構築します。