Windows Subsystem for Linux! WSL2でいこう!

WSL2の構築手順です。

 

Windows 10 用 Windows Subsystem for Linux のインストール ガイド
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10

 

■前提条件

Windowsのバージョンが2004以上である事。winverコマンドで確認できます。

 

 

1.スタートメニュー右クリックで、WindowsPowerShell(管理者)を起動

以降のコマンドはPowerShellにて実行します。

 

2.WSLインストール(ここは、バージョンが2004未満でも実行できます)

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 

3.仮想マシンプラットフォームの有効化

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

 

4.Linuxカーネル更新プログラムの適用

WSL 2 Linux カーネルの更新
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel

 x64 マシン用の最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロード

のリンクから wsl_update_x64.msi をダウンロードして実行します。

 

5.WSLのデフォルトバージョンを2に設定

wsl –set-default-version 2

※4の手順が漏れてると、下記の警告的なメッセージが表示されます

 

6.MicrosoftStoreからLinuxディストリビューションを選んでインストール

MicrosoftStore

https://aka.ms/wslstore

下記メッセージが表示される(Chromeの場合)ので”MicrosoftStoreを開く”をクリック

私はUbuntuを選択しました。

 

 

“入手”をクリック

 

ダウンロードが始まります

 

“起動”をクリックすると

 

インストールが始まります。あと少し!

 

最初にUNIXユーザアカウントの作成を求められます。

 

7.使ってみる

デフォルトパスはユーザホーム(/home/username)でした。

/の下は見慣れたいつものディレクトリ群です。

 

Windowsのファイルシステムは/mntの下でした。

/mnt/wsl は空っぽでした。

 

 

問題になりがちな「空白入りファイル名」については、シングルクォートで括られてました。

cdのパス指定でも’Program Files’とすればいいみたいです。

 

exit でWSLのウインドウが閉じられます

 

8.起動方法

スタートメニューに登録されています。

UbuntuがUの所にあるので、ディストリの名前でソートされるようです。

 

DOS窓から Ubuntu とすると、アプリケーションウインドウは開かずにDOS窓内でWSLが起動しました。

 

 

 

以上です。

この連休はWSLで何が出来るのか、色々試してみようと思います。

 

追記

su – rootするとパスワードを求められますが、設定した覚えがありません。

そんな時は

1.管理者でコマンドプロンプト起動

2.Ubuntuの起動デフォルトユーザをrootに設定

ubuntu config --default-user root

3.パスワードなしでログインされるので、passwd実行

4.exitして、デフォルトユーザを戻す

5.再度ログインして、パスワード確認

 

リモートデスクトップが繋がらない。原因はCredSSP暗号化オラクルの修復!

久しぶりにあるサーバ(Windosw2016)にRDP接続しようとすると、こんなメッセージが。

 

■お急ぎの方向け

①接続先サーバで対策する場合

・[コントロールパネル]>[システム]>[リモートの設定]

・ネットワークレベル認証のみ許可(推奨)のチェックを外す

 

②接続元クライアントで対策する場合

管理者コマンドプロンプトから下記コマンド実行(一行のコマンドラインです)

REG ADD HKLM¥Software¥Microsoft¥Windows¥CurrentVersion¥Policies¥System¥CredSSP¥Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2

 

 

■原因調査

とりあえず示された詳細URLを参照してみると。

CVE-2018-0886 の CredSSP の更新プログラム

 

どうやらクライアントだけパッチが当たった(サーバは普段パッチ更新なし)ので、

通信可能な組み合わせから外れてしまったみたいです。

 

過去にはこんな情報も出てた様子。

2018 年 5 月の更新プログラム適用によるリモート デスクトップ接続への影響

 

今回はまさにこのパターンでしょうか。

 

こちらのMSサイトにはいくつか回避策が記載されていました。

取りうる手段は3つ。

A:リモートデスクトップ接続元にてグループポリシーを変更する

①gpedit.mscから「暗号化オラクルの修復」をダブルクリック

②有効、保護レベル:脆弱 に設定

 

B:リモートデスクトップ接続元にて以下レジストリを追加

前述↑の「お急ぎの方向け②」を参照下さい。

C:リモートデスクトップ接続先 で NLA (Network Level Authentication) を強制しないようにする

前述↑の「お急ぎの方向け①」を参照下さい。

 

 

ちなみに、サーバにパッチを適用する事で通信可能な組み合わせを復旧する事も出来ます。

下記サイトで対象OS(バージョン)ごとの対象KB名が公開されてます。

CVE-2018-0886 | CredSSP のリモートでコードが実行される脆弱性

 

ミラーディスク型HAクラスタ(NEC CLUSTERPRO)

WSFC+SANディスク共有で冗長化してるサーバの保守期限が迫ってきました。

JP1/AJSでバリバリに業務ジョブが動いてるので、故障したら社内業務がバツンと停止します。

先月気づいてから対応策を検討していたのですが、

色々な思惑や予算の兼ね合いもあって調整が難航。

だんだん手が無くなってきてしまい、久しぶりに師匠に泣きついてみました。

そこで紹介されたのが件のソフト。

 

■ミラーディスク型HAクラスタ

この言葉自体初めて聞いたので、ググってみました。

が、CLUSTERPROの記事ばっかりヒットします。

 

そもそも一般的な構成ではないのかな?と調べてみました。

要は

「クラスタ構成サーバ同士のローカルディスクをRAID1(ミラーリング)で構成する」

という考え方みたいでした。

ファイル共有で公開するディスク領域を使ってHAクラスタ組めないかな?

と考えてたので、これが出来るなら願ったり叶ったりです。

 

詳しくは、NECの製品オフィシャルブログを見て頂いた方が良いでしょう。

CLUSTERPRO オフィシャルブログ ~クラブロ~

HAクラスター入門 ~用語解説2~

 

 

■今回検討した事

他所様のブログ記事を紹介して終わるのも味気ないので、

備忘録として検討内容についても残しておこうと思います。

 

①Azureへ環境移行

当初は一番安定と思っていた案。安く早く環境を準備出来るだろうと。

ですが、結構な頻度で障害が起こる事、サーバ停止が社内業務停止に直結する事、

あと通信間隔が数秒程度の処理がある為遅延が許容範囲を超える可能性がある、

といった部分のデメリットが大きすぎるとの事で廃案に。

 

②リプレースプロジェクト(後述)にて機器だけ先に購入してもらう

テストサーバ兼パイロット機をレンタルする予定、と小耳に挟んだので、

それならいっそ購入して貰えないか、それを少し早めにしてもらって、

本番機として使う部分と両立出来ないか、と強請ってみました。

これはまあ通ればラッキーぐらいのつもりで出した案でしたし、一蹴されました。

 

③同モデルの別サーバ(廃却予定)を予備機とし、故障時はスポットで保守対応を依頼する

本件に気付いた瞬間に「まず全く今のままの状態だったら何が出来るのか」と考えた時の案。

結構イイ線だとは思っていたのですが、FC接続用ボードの挿し替えがハードル高そうです…

無茶ながらも②よりは実施可能な案だとは思うのですけれど。

 

④クラスタは諦めて2台の余剰サーバでJP1/AJSのマネージャ・エージェントを新規構築

最終的にこの案になりつつあります。

ですが、「死んだら終わり」の状態で胸を張って「無事移行しました!」とは言いづらく(笑)

なんとか可用性を高められないかと頭を悩ませた末、泣きついた次第です。

 

 

 

■そもそも

サーバ移行が延び延びになっていて、しかも裏ではリプレースプロジェクトが動いている。

(全社を挙げて取組中の、国内拠点全てを巻き込む本当に大規模なシステム刷新)

そんな状況を聞いて、この作業ほんとうにやる必要あるんですか?と問うてみたのです。

 

課長の「リプレースプロジェクトに任せといたらええねん」を鵜呑みにしてしまって、

よくよく確認したら保守切れからリプレースPJの本番まで1年空いてました。

半年前の自分を半年くらい問い詰めたいですね・・・

 

 

一体何の為に生きるのか

久しぶりに旅行に行きたい気分なのですが、

まだまだコロナ禍は続きそうな状況ですし、

しばらくは難しそうですね。

 

 

そんな気持ちで過去の旅行写真を眺めていたら、

料理の写真を撮ってるけどお店の名前が分からない!

というものが結構沢山ありました。

 

そんな訳で今週の記事は、

あの店お名前なんでした? ~思い出したい美味い店~

のコーナーにしてみたいと思います。

 

 

■2017年4月20日@石垣島

八重山料理ゆらてぃく

4泊5日の旅程で何度か沖縄そばを食べたんですが、初日に食べたものが一番でした。

 

 

■2016年11月11日@成田山

駿河屋

 

銚子港を目指した旅行の際、宿を成田で取りました。

せっかくなので成田山にも参ってみようと足を向けると、参道に満ちる香り!

堪らず飛び込んだのが、看板がどっしりしてて風格のあったこちらのお店。

程よい脂加減でとても美味しかったです。

 

 

 

■2016年7月18日@道後

大黒屋 道後店

愛媛の名物、鯛めしです。鯛めしには二種類あって、

「宇和島鯛めし」はご飯に鯛の刺身と生卵入りのタレ、

「松山鯛めし」は鯛と一緒に炊き込むスタイルらしいです。

勿論両方頂きましたが、私は松山スタイルの方が好みでした。

 

 

■2015年7月19日@出雲

Mr.Beef

人生が変わったお店の一つ。

(シャトーブリアンと特上フィレ100gずつ注文したので2皿映ってます)

それまで”美味しいお肉”といえば、口にした瞬間とろけて無くなるような、

甘みさえ感じるくらいの脂がたっぷりのものだと思ってました。

赤身のステーキなんて、まず固くてダメだって。

それがこちらでステーキを頂いてからは、赤身の肉ばかり好んで食べてます。

お陰で、脂がしつこくて量が食べられないなんて事もありません。

 

※公式サイトが無かった為、レビューサイトのリンクを張ってます

 

 

■2014年4月21日@男鹿

なまはげ御殿 ニュー畠兼

夕日が見たくてレンタカーぶっ飛ばして入道崎に向かいました。

お土産屋兼お食事処での一品。

十分美味かったのですが、東北まで来たらもっと上があるはず!と思い、

最終的に青森の公設市場でリベンジしました。

(具とご飯を個別に購入して自分で盛る形式なので、ビジュアルドクロはご容赦を)

 

 

 

これらの他に一軒、どうしても見つけられないお店があって、

探してる間に今日が一日終わってしまいました・・・!

穴子の刺し身を初めて食べたんですが、

身がすごいコリコリしてるんですね。

煮たり焼いたり揚げたり、加熱したものは柔らかいのに。。。驚きでした。

 

 

 

記事タイトルの話になりますが、私自身なんのためかと聞かれたら

美味しいものを食べる為に生きてます、って答えてます。

美味しいもの食べると、ほんと顔も緩むし幸せな気分になります。

 

と言っても、世界各国の美味珍味を求めて駆けずり回るというような、

そこまで熱が入ったものでもありませんが。

 

それでもやっぱり旅先では、

「その土地ならではの美味しいものが食べたい!」

という気分になります。

 

最近はインターネットで検索すれば沢山お店の情報が見つかりますが、

如何に高評価なお店であっても、自分の好みに合うとは限りません。

実際何度も失敗しました。

結局飛び込んで自分で試すしかないので、やっぱりたくさん失敗しますが(笑)

 

 

なんにせよ、仕事の頑張り甲斐が持てるのは幸せな事!

 

【備忘録】JP1/IMイベント監視の動作テストコマンド

JP1でイベント監視する場合、JP1/Baseの機能を使う事になると思います。

  1. Windowsならイベントログトラップ(ntevent.conf)
  2. JP1イベントを転送(forward)
  3. 指定ファイルのログトラップ(jeblog.conf)
 
監視環境を構築後の動作確認ですが、
狙ったイベントを実際に起こすのが難しい場合も多々ありますので、
下記コマンドでトラップ結果を確認しています。
 

 

1.Windwosイベントログ

Windowsの標準コマンド、EVENTCREATEを使います。

使用例:

EVENTCREATE /ID 999 /L system /SO sys_test /T ERROR /D “イベントログのテストです。”

設定に合わせてイベントIDやイベント種別を組み合わせます。

 

 

2.JP1イベント転送

JP1/Baseで提供されるコマンド、jevsendを使います。
 
使用例:
jevsend -i 0 -m test -e SEVERITY=Error (あるいはCriticalやEmergency)
jevsend -i 302 -m KFPS01212-I -e SEVERITY=Information -d 監視するサーバ -s 監視されるサーバ
 
 

3.ログファイルトラップ

ただのファイル書き込みなので省略

 

 

特にハード障害系のイベントは「試しに発生させてみる」訳にもいかないので、

手元でパッと確認出来る手段があるのは助かりますね。

 

 

 

 

弊社はJP1製品で監視環境を構築しています。

JP1/NNMで死活監視、JP1/PFMでリソース監視、それらをJP1/IMで集中管理。

この環境をリプレースする事になり、環境構築計画を立ててました。

 

構築後のテストフェーズの作業内容、昔やった記憶はあるのですが、

きちんとコマンドを覚えていなくて調べ直す羽目になってしまいました。

 

私自身Hさん案件に関わる事が多く、JP1は触る事の多いミドルウェアでもあり、

これから触る機会が増える状況なので、色々残せたらと思います。

 

という訳で今週は備忘録でした。

 

HDDが満杯!フォルダごとの使用量確認方法

Windowsサーバ使ってるとよく思いませんか?

「UNIX系シェル使えたらな」って。

 

WSL2がリリースされて、随分ハードルが下がったとは思いますが、

どこの会社でも「使ってオッケーOK」かと言えばNGの場合も多々あるでしょう。

・・・あれ、うちの会社だけですか?

 

 

ともあれそういう事で、表題の件をWSLを使わずに何とかする方法を調べてみました。

 

■コマンドプロンプトから

結論から言えば、私には出来ませんでした。

色々ガチャガチャやれば出来なくもないでしょうけど。。。

 

■とっとと諦めて、インストールしなくていいツールを探す

こんな事に時間掛けても仕方ないので、.exe単体で動いてくれるツールを探しました。

いくつか試した中で一番しっくりきたのがこちら。

 

DiskInfo

ディスクの使用状況を表示する(作者:らくちん さん)

https://www.vector.co.jp/soft/winnt/util/se475617.html

 

こういう感じでディレクトリ毎の容量を調べてくれます。

勿論この画面内でフォルダ階層を降りていけば、それぞれの状況が確認できます。

使用量だけでなく使用率も表示されるし、列ソートも可能。

結果のエクスポートや保存、前回結果との比較など、色々便利機能が揃ってます。

 

これなら自端末で(ややこしい手続き抜きに)使えるし、

ネットワークドライブ接続可能な機器なら、手元のPCで状態確認出来ますし。

サーバ側で実行しなくてもいいのはありがたい。心理的ハードルが随分下がります…

 

自端末に溜まったゴミファイルの掃除にも使ってみました。

ディスク増設を考えてたんですが、随分スリムになってくれたので当面不要そう。

通販あれこれ凄まじく遅い状況ですし…

 

 

ともあれ、フォルダ容量の調査で困ったら是非お試し下さい。

超絶オススメツールです!

 

 

 

 

 

 

 

ちなみにコマンドプロンプトからのチャレンジですが。

ざっくりそれっぽい事であれば、例えばこんな

> for /F “tokens=1-4” %i in (‘dir /ad /s C:\inetpub’) do echo %l %i %j

ラベルは ドライブ C
です ボリューム シリアル番号は
 C:\inetpub のディレクトリ
. 2020/05/11 23:34
.. 2020/05/11 23:34
custerr 2020/05/11 23:34
history 2020/05/11 23:50
logs 2020/05/11 23:34
temp 2020/05/11 23:34
wwwroot 2020/05/12 10:09
バイト 0 個のファイル
 C:\inetpub\custerr のディレクトリ

ゴミがいっぱいついてくるので使い物になりませんね。わかってました。

 

 

forfilesコマンドではどうかなと思いましたが、

そもそもディレクトリ容量って0ですね。計算しないとだ~。

> forfiles -s -p C:\inetpub -c “cmd /c if @isdir==TRUE echo @PATH @fsize @fdate @ftime”

“C:\inetpub\custerr” 0 2020/05/11 23:34:18
“C:\inetpub\history” 0 2020/05/11 23:50:22
“C:\inetpub\logs” 0 2020/05/11 23:34:18
“C:\inetpub\temp” 0 2020/05/11 23:34:25
“C:\inetpub\wwwroot” 0 2020/05/12 10:09:53
“C:\inetpub\custerr\ja-JP” 0 2020/05/11 23:34:18
エラー: 次へのアクセスが拒否されました: “C:\inetpub\history\”.

 

そもそもこれらみんな、du使えたら一発だったのに。。。