「Windows」と一致するもの

Unable to install Docker Desktop 4.19.0 (106363)

  • 投稿日:
  • by
  • カテゴリ:

概要

以前インストールしていたDocker Desktop(4.3くらい)が起動しないと気付いたので、新しいものを入れようとしたらインストール失敗してしまい、その後試行錯誤してどうにかインストールできました。
古いものをアンインストールしようにもアプリの一覧等にも表示されずおかしな状態になっていました。

失敗時のログ

インストールに失敗していた頃のログは以下のような感じでした。

Version: 4.19.0 (106363)
Sha1: 
Started on: 2023/05/02 01:51:29.285
OS: Windows 10 Home
Edition: Core
Id: 2009
Build: 22621
BuildLabName: 22621.1.amd64fre.ni_release.220506-1250
 JSON 文字列が無効です。 (hresult からの例外:0x83750007) 
場所 windows.data.json.jsonvalue.parse(string input) 
場所 communityinstaller.installworkflow.setupbackendmodeandfeatures(list`1 backendmodefeaturessteps) 
場所 communityinstaller.installworkflow.<dohandled4wpackageasync>d__30.movenext() 
--- 直前に例外がスローされた場所からのスタック トレースの終わり --- 
場所 system.runtime.exceptionservices.exceptiondispatchinfo.throw() 
場所 system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) 
場所 communityinstaller.installworkflow.<doprocessasync>d__23.movenext()

インストール方法

最終的に以下を実施してインストール成功しました。

実行したコマンドは以下です。
バックエンドを指定しているのは不要だったかもしれません。

管理者権限のコマンドプロンプトで以下を実行
start /w "" "Docker Desktop Installer.exe" install --backend=wsl-2

その前に実施したのは以下の通りのフォルダ名の変更です。

C:\Users\<your user name>\AppData\Roaming\Docker to Docker_backup
C:\Users\<your user name>\AppData\Roaming\Docker Desktop to Docker Desktop_backup
C:\Users\<your user name>\AppData\Local\Docker to Docker_backup

AppData\Local\Dockerのフォルダ名変更だけではだめで、Roaming配下も変更する必要がありました。

さらにその前には、レジストリでDocker関連のものを削除するなどもしていましたので、これらも必要かもしれませんが、不要だったかもしれません。

同じようなエラーのスレッドは以下。

https://github.com/docker/for-win/issues/13387

自宅サーバと自宅パソコンの役割と構成

  • 投稿日:
  • by

以前から自宅で常時稼働のサーバを動かしています。
でも、サーバはクラウドで動かしても良いかもしれないし、どうせあるなら自宅パソコンを仮想化してサーバで動かしても良いよね、と思ったりして悩んだので改めて目的と期待するスペックについてここで整理しようと思います。

自宅サーバの目的

メールサーバ、Webサーバ、アプリケーションサーバなど色々な目的で使っています。以前はコスト的に自宅サーバしか選択肢が無かったのですが今ではクラウドサービスで賄えそうな気がします。
それでも自宅サーバがやっぱり良いかなと思うのは、色々いじって遊ぶことで身につく知識の習得です。身につくのは主にOSやNgnxなどのミドルウェアの知識です。

クラウドに移行する場合IaaSだと費用が高いのでPaaSやSaaSの利用がメインになると思います。でもそうするとOSやミドルウェアを自分で準備しないのでその辺の知識習得ができません。

IaaSの費用

IaaSは高いから自宅サーバを選ぶというのは正しい判断でしょうか。
計算してみましょう。

AWS EC2のa1.xlargeの場合、東京リージョンで0.1284USD/hです。1USDが130円として、月720時間とすると12018円/月です。
それ以外は掛からないとします。

自宅サーバの場合、初期費として本体購入費用が150000円とします。電気代が4000円/月とします。

この場合、19ヶ月でIaaSの費用が自宅サーバの費用を超えます。
・・・自宅サーバ安いですね。
もちろん、IaaSの方が冗長構成となっていたり、HW故障の対応もしてくれたりするので条件が全く異なるのですが、その辺は認識しています。

自宅サーバの可用性

自宅サーバは安いと言いました。本当でしょうか。(2回目)
自宅サーバは使えば使うほど重要性が高まってきます。
そして気になってくるのが可用性です。

大事なデータが消えたらどうしようとか、このサービス止まると困るんだよねとか。

では、サーバを2台にすることを考えましょう。 これで費用2倍です。
1台の時は19ヶ月でしたので38ヶ月くらいですね。3年ちょっと。まだ自宅サーバ安いですね。

ちなみに今は冗長にせずに運用しているのでいつもドキドキしてますし、メンテで止めるときは、仕方ないと割り切ってやってます。

クラウドの勉強

クラウドの勉強はしなくて良いの?と心配してくれあなた。ありがとうございます!
でも大丈夫です。 基本的に無料の範囲くらいで色々と使って勉強しています。

ん?勉強費用にしては高くない?

IaaSよりは安いという主張はわかるけども、つまりは勉強のために毎月1万円くらい支出しているということ?
・・・そういうことかもしれません。
ま、でも、勉強以外の各種サーバとしても機能しているし、ずっと続けてきているものという可愛さもあるし、勉強のためだけに支出しているのではないので良しとします。

自宅PCの目的

自宅PCはWindowsで、スマホアプリの開発や動画編集がまれにあるくらいであとは大した事していません。
となると、自宅サーバをそこそこ性能良いものにして自宅PCも仮想化してしまうという手もあります。
・・・なるほど。それで良さそうですね。

まとめ

自宅サーバが2台あれば可用性も安心でおすすめ。IaaS(AWS EC2
a1.xlarge)よりも安いのでおすすめ。
ただし、おすすめできるのはインフラの勉強したい方のみです。
2台分でも3年くらいでIaaSより割安になるはずなので、インフラのあれこれを楽しみたいなら問題ないと思います。

自宅PCの仮想化はまだ試してないのでこれから試してみます。

気になるニュース記事(2022年10月12日)

気になるニュース記事です。

量子コンピューティングで「公開鍵暗号」が破られる? CISAが警鐘を鳴らす

量子コンピューティングで「公開鍵暗号」が破られる? CISAが警鐘を鳴らす

ネットの安全へ世界標準の新暗号 IBMなどの技術選定: 日本経済新聞

ネットの安全へ世界標準の新暗号 IBMなどの技術選定: 日本経済新聞

ソフトバンク、"量子コンピュータでも解けない暗号"をVPNに適用へ 米ベンダーと共同で - ITmedia NEWS

ソフトバンク、"量子コンピュータでも解けない暗号"をVPNに適用へ 米ベンダーと共同で - ITmedia NEWS

ネットに接続していないPCをハッキング 超音波で機密データを盗む攻撃 イスラエルの研究者が発表

ネットに接続していないPCをハッキング 超音波で機密データを盗む攻撃 イスラエルの研究者が発表

スマホを"うつ伏せ"に置くとハッキングされる? 直接触らずタッチ操作を行う攻撃「GhostTouch」

スマホを"うつ伏せ"に置くとハッキングされる? 直接触らずタッチ操作を行う攻撃「GhostTouch」

検出難しい「ファイルレスマルウェア」、企業にとって無視できない脅威 - 記事詳細

検出難しい「ファイルレスマルウェア」、企業にとって無視できない脅威 - 記事詳細

AWS、Slackで相談できる有償サポート「AWS Support App」開始 - ITmedia NEWS

AWS、Slackで相談できる有償サポート「AWS Support App」開始 - ITmedia NEWS

S3互換の「Cloudflare R2」が正式サービスに。データ転送料無料、10GBまで無料の分散型オブジェクトストレージ - Publickey

S3互換の「Cloudflare R2」が正式サービスに。データ転送料無料、10GBまで無料の分散型オブジェクトストレージ - Publickey

AWS、Azure、GCP上のVMware Cloudが、単一のサブスクリプションで利用可能に:VMwareのマルチクラウド構想の一環 - @IT

AWS、Azure、GCP上のVMware Cloudが、単一のサブスクリプションで利用可能に:VMwareのマルチクラウド構想の一環 - @IT

NVIDIA製「DPU」搭載のDellサーバ、年末に発売 AI開発、ゼロトラスト基盤などに対応 - ITmedia NEWS

NVIDIA製「DPU」搭載のDellサーバ、年末に発売 AI開発、ゼロトラスト基盤などに対応 - ITmedia NEWS

ヴイエムウェア、パブリッククラウドのセキュリティサービスを無償で提供 - VMware Japan Blog

ヴイエムウェア、パブリッククラウドのセキュリティサービスを無償で提供 - VMware Japan Blog VMwareがクラウド設定チェックツールを無料提供 AWSやKubernetesなどの問題を検知(ITmedia NEWS) - Yahoo!ニュース

マイクロソフト、Windows Serverの仮想コア対応などライセンス規約の更新を発表。クラウドや仮想環境などとのシームレスな運用が容易に - Publickey

マイクロソフト、Windows Serverの仮想コア対応などライセンス規約の更新を発表。クラウドや仮想環境などとのシームレスな運用が容易に - Publickey

AWS、Amazon S3やNFSサーバを爆速にする「Amazon File Cache」発表。複数のストレージを単一のビューでアクセス可能に - Publickey

AWS、Amazon S3やNFSサーバを爆速にする「Amazon File Cache」発表。複数のストレージを単一のビューでアクセス可能に - Publickey

バックアップソフト国内シェア1位を狙う--体制を固めるヴィーム - ZDNet Japan

バックアップソフト国内シェア1位を狙う--体制を固めるヴィーム - ZDNet Japan

気になるニュース記事(2022年6月9日)

気になるニュース記事です。

電算システム、データセンターとクラウドサービスの閉域網接続サービスを提供

電算システム、データセンターとクラウドサービスの閉域網接続サービスを提供

Google Cloud等のパブリッククラウドサービスとの接続サービスです。 最近色々発表されてます。

SCSK、データセンターとGoogle Cloudの接続サービス「USiZE プレミアコネクトサービス for Google Cloud」を提供

BBIX、データセンター間接続やクラウド接続をオンデマンドで提供する「Open Connectivity eXchange」を開始

「量子超越性」を持つ光量子コンピュータ、AWSで利用可能に スパコン富岳で9000年かかる計算を36マイクロ秒で

「量子超越性」を持つ光量子コンピュータ、AWSで利用可能に スパコン富岳で9000年かかる計算を36マイクロ秒で

量子コンピュータがAWS上で気軽に(?)使えるようになったようです。
暗号解読などに使われる懸念がありますが、実用的になるのが思っているより早いかもしれません。

Announcing Azure Stack HCI support for single-node clusters

Announcing Azure Stack HCI support for single-node clusters

Azure Stack HCIがシングルノードでも利用可能になったようです。
シングルから始めて拡張することもできるようです。

Azure Arcというハブになるサービスがあるので、Azureの管理対象範囲は今後ますます広がっていくのでしょう。

「OSSを安全に」 OpenSSFらがセキュリティ改善に動員計画

「OSSを安全に」 OpenSSFらがセキュリティ改善に動員計画

以前の記事でも紹介したアルファ、オメガプロジェクトというのが始まりましたがそれの一環でしょうか。
関係性を確認できていませんが、OSSのセキュリティ向上に向けた取り組みが最近盛り上がってきています。

マイクロソフト、欧州で懸念されていたクラウドライセンシングのルールを緩和へ

マイクロソフト、欧州で懸念されていたクラウドライセンシングのルールを緩和へ

Azure上ではWindowsが安い、というのを解消するのでしょうか。

マイクロソフト、テクノロジーと人の専門性を組み合わせた新セキュリティサービス「Security Experts」

マイクロソフト、テクノロジーと人の専門性を組み合わせた新セキュリティサービス「Security Experts」

専門家を売るような雰囲気のネーミングと記事の見出しですが、中身を見るとSOCサービスを提供するようにも見えます。
ソフトウェアとソフトウェアサービスを売る会社のイメージでしたが、幅を広げてきた印象があります。

AWSジャパン、デジタル人材育成で企業を個別に支援する「AWS Skills Guild」を国内発表

AWSジャパン、デジタル人材育成で企業を個別に支援する「AWS Skills Guild」を国内発表

AWSが直接顧客企業の教育を行うことになるので、AWSによる囲い込みができそうです。
内製方針の企業はクラウドベンダーと直接やりとりすることになるので、SIベンダーの出る幕がなくなりそうです。
今後内製方針の企業は増えてくるのでしょう。

Apple、Google、Microsoftがパスワードなしサインイン標準サポート拡大

Apple、Google、Microsoftがパスワードなしサインイン標準サポート拡大

FIDOの利用が拡大するそうです。どんどん広まってほしいです。

この記事はGWアドベントカレンダーの6日目の記事です。

IaCに関連する最近読んだ本の紹介です。 読んだ順に書いていますが、Ansible実践ガイドはまだ記事を書いていないのでここで簡単に紹介します。 Ansible を自由に利用できるようになるための基礎が幅広く記載されています。そのため、「インフラCI 実践ガイド」にもAnsibleが使われていますが、この内容を理解するのにも役立ちました。 また、これから新規にプレイブックを作るときの設計のポイントも記載されています。 Linuxサーバ向けだけでなく、Windowsやネットワーク機器向けの設定についても記載されており、これらを理解することでAnsibleのエコシステムや思想の理解が深まり様々な応用ができるようになります。

Docker Desktop for Windowsの導入

  • 投稿日:
  • by
  • カテゴリ:

Docker Desktop for Windowsを導入してみました。

dockerコンテナを作って動かしたいのが目的です。 Windowsを使うのは、普段使っているOSがWindowsだからで、コンテナはLinuxのものを使います。 そうしたときに、docker Engineをどこで動かすかの選択肢があります。

  • Windows (Docker Desktop for Windows)
  • Windows上のLinux VM(Hyper-VやVirtual Box上のLinux VMでLinux用のDocker Engineを動かす)

開発用にLinux VMを動かしているのでそちらでDockerを使っても良いのですが、わざわざVMを起動して使うのも面倒そうなのでWindows上で動かすことにしました。 ただ、Windows上で動かすと言っても、実際にはDocker用のLinux VMがHyper-Vを使って起動します。 そのため、自分でLinux VMを用意して動かすのと仕組みはそれほど変わりません。

Docker Desktop for Windowsの場合、Docker ClientはWindows上で動きますが、Docker EngineはLinux VM上で動きます。 自分でLinux VMを用意して使う場合はDocker ClientもDocker EngineもLinux VM上で動きます。 コンテナそのものはどちらもLinux VM上で動きます。

Docker Desktop for Windowsを使う場合、DockerfileやコンテナにコピーするファイルをLinux VMから利用できるようにする必要があります。 どのドライブをアクセス可能にするかは、settingsから設定できます。 なお、コンテナからマウントして使うようなデータ領域としてはWindows上の領域は不向きで、data volumeやdata containerを使う方が良いようです。これには二つの理由があって、一つはWindows上の領域はLinux上からみて、rwxrwxrwxのモードで見えます。もう一つは、SMBを使ってLinux VMに領域を見せる際、NOBRLオプションが付いているため、ロックができない場合がある点です。 これらはDocker Desktop for Windowsのドキュメントの最初の方(Shared drives)に書いてあります。

と、ここまでやってから大事なことに気づきました。 開発用にLinux VMを動かしていますが、そちらはVirtual Boxを使っています。 Docker Desktop for WindowsはHyper-Vを使います。 これらの共存はできないので、どちらを使うか選ぶ必要があります。。つづく。。

vagrant up 失敗の原因究明 その2

  • 投稿日:
  • by
  • カテゴリ:

というわけで、前回の続きです。

前回、原因究明はできたけれどもその報告ができていませんでした。 一日以上経って、ようやくForumにポストできました。

Can the failure message be improved? When VBoxManage.exe import failed with no disk space.

そして、Forum Postig Guideのデッドリンクについてもポストしておきました。

Dead link found in The Forum Posting Guide

誰か反応してくれると良いなぁ。。

vagrant up 失敗の原因究明

  • 投稿日:
  • by
  • カテゴリ:

vagrant upがなぜか失敗するのでその原因究明をしたときの話です。

事象

PS E:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/precise64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/precise64'
    default: URL: https://vagrantcloud.com/hashicorp/precise64
==> default: Adding box 'hashicorp/precise64' (v1.1.0) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/hashicorp/boxes/precise64/versions/1.1.0/providers/virtualbox.box
    default: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
    default:
==> default: Successfully added box 'hashicorp/precise64' (v1.1.0) for 'virtualbox'!
==> default: Importing base box 'hashicorp/precise64'...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["import", "\\\\?\\E:\\vagrant_home\\.vagrant.d\\boxes\\hashicorp-VAGRANTSLASH-precise64\\1.1.0\\virtualbox\\box.ovf", "--vsys", "0", "--vmname", "precise64_1571241203898_82313", "--vsys", "0", "--unit", "12", "--disk", "D:/VMimages/precise64_1571241203898_82313/box-disk1.vmdk"]

Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting \\?\E:\vagrant_home\.vagrant.d\boxes\hashicorp-VAGRANTSLASH-precise64\1.1.0\virtualbox\box.ovf...
OK.
0%...
Progress state: E_INVALIDARG
VBoxManage.exe: error: Appliance import failed
VBoxManage.exe: error: Code E_INVALIDARG (0x80070057) - One or more arguments are invalid (extended info not available)
VBoxManage.exe: error: Context: "enum RTEXITCODE __cdecl handleImportAppliance(struct HandlerArg *)" at line 957 of file VBoxManageAppliance.cpp
PS E:\vagrant>

先に原因を書きますが、上記のように引数が悪いと言われますが、実際はディスクの空き容量が不足しているのが原因でした。

環境

Host: Windows 10 Guest: (何でも)

Vagrant: 2.2.5、2.2.6 Virtual Box: 6.0.12、6.0.14

原因究明

エラーメッセージでググってみると以下のissueに該当しているのを発見!

Invalid arguments to vboxmanage (potentially malformed path) #10832

ところが、未解決のままcloseしていました。 一日寝かしてみましたがやっぱり解決しないので新規オープンしようと思って 報告ルールに従って情報を集めていたらデバッグログの出し方があったのでこれを見てみました。 すると、VBoxManage.exeが失敗していたのだとわかりました。 VBoxManage.exeはvagrantではなく、Virtual Boxのコマンドです。

そこで、VBoxManage.exeの実行方法を調べて同じ引数で実行してみます。すると、再現します。

vagrantの呼び出し方が悪いのか、VBoxManage.exeが悪いかを切り分けます。 VBoxManage.exeの引数をいろいろと変えて試してみました。 すると、diskのファイル名(.vmdk)の指定を変えると成功する場合がありました。 指定の仕方によるのかも思いいくつかのパターンを試しましたが結論としては、ディスクの空き容量が足りていないと失敗することがわかりました。

つまり指定するドライブの問題です。ドライブを指定しているのは誰かというとVirtual Boxです。 Virtual Boxの「デフォルトの仮想マシンフォルダー」が使われています。 というわけで、この設定を変えることで解決できます。

問題の報告でも苦戦

Vagrantのissueに挙がっていたので同じ問題で悩む人もいるのだろうということで、関係各所に報告することにしました。 Virtual Boxのメッセージが分かりにくいのが良くないと思うのでメッセージの改善依頼を出してみることにしました。

Virtual BoxのForumがあるのでとりあえずそこで報告しようと思ってPosting Guidを見てみると、ユーザ登録が必要となっています。 registerのリンクをクリックするとNot Foundとなって登録できません。 loginのリンクは生きていたのでそちらを見てみるとOracleのログイン画面です。 アカウントを作成して無事にログインしてどう伝えるのが良いか考えてみましたが、モデレータへDMを送る機能があるようなのでそこに送ろうとしました。 しかし、URL入りのメッセージを送るにはユーザ作成後5日と5ポストの実績が必要だそうです。そんなにポストする予定はないので普通のTopicとしてポストすることにします。

Suggestionsという分類があるのでそちらでポストしようとしたら、今度はURL入りのポストはユーザ作成後1日と1ポストの実績が必要だそうです。 URL入りを送るのは難しそうなのでじゃあ、もうURL入れずに送ろうと思って送ろうと思ったら、ユーザ作成後1日経たないとURL無くてもポストできないそうです。 本題のメッセージの改善についても同じ理由でポストできませんでした。

もう疲れちゃいましたが、明日こそポストしてみます。

はじめてのWindows クラッシュダンプ解析

  • 投稿日:
  • by
  • カテゴリ:

Windows 10のマシンがブルースクリーンになってしまって、再発すると困るので見てみました。 ググってみるとちょっと見てみるところまでは簡単にできそうだったのでやってみました。

結果はDPCウォッチドッグに引っかかっているみたい。(以下は、!analyze -vの抜粋)

DPC_WATCHDOG_VIOLATION (133)
The DPC watchdog detected a prolonged run time at an IRQL of DISPATCH_LEVEL
or above.
Arguments:
Arg1: 0000000000000000, A single DPC or ISR exceeded its time allotment. The offending
    component can usually be identified with a stack trace.
Arg2: 0000000000000501, The DPC time count (in ticks).
Arg3: 0000000000000500, The DPC time allotment (in ticks).
Arg4: fffff8003376e350, cast to nt!DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK, which contains
    additional information regarding this single DPC timeout

そしてkの結果には以下の文字列が。

rt640x64!MpHandleRecvIntPriVLanJumbo+0xb41
rt640x64!MPHandleMessageInterrupt

ここを見ると、スタックとレースのちょっと下で読んでる関数が問題なんだろうとわかるので、Realtekのドライバかなと思って、RT640x64でググってみるとやっぱりRealtekのドライバでした。最新のドライバにしてみたら?とコメントもあるし、そういえばMicrosoftから提供されているドライバしか入れてないなと思ったのでインストールしてみました。 これで安定してくれると良いなぁ。。

なお、ドライバインストールをそのNICを使ってリモートデスクトップでログインしながらやったので、途中で通信止まってしまいましたが少ししたらまたつながって一安心というのをしました。 さらに、PriVLANという文字列があったので、「優先度およびVLAN」という設定を無効にしたら、またしても一瞬通信が途絶えて、「あっ」ってなってしまいました。ちなみにジャンボフレームは無効になっていました。

ドライバの場所

https://www.realtek.com/ja/component/zoo/advanced-search/80?Itemid=389

デバッグ方法、他

日本語ページのリンクにしてますが、読みにくいので英語版で読む方が良いような気がします。。

メモリダンプに !analyze -v するまで・前編 ~ ダンプの取り方~ WinDbg を使用してクラッシュダンプファイルを分析する Stop エラーまたはブルー スクリーン エラーに対する高度なトラブルシューティング ドライバーの検証ツール ドライバー検証ツール !analyze !analyze 拡張機能の使用 バグ チェック 0x133 DPCウォッチドッグ違反

ダウンロード用シンボルのURL設定 SRVc:\websymbolshttp://msdl.microsoft.com/download/symbols

合わせて読みたい

キーボード操作でメモリ ダンプ ファイルを作成できる Windows の機能 DriverObject と DriverEntry ダンプファイルに保存された ETW トレースログを表示する ダンプファイルに保存されたイベントログを取り出す

pandoc's raw option

  • 投稿日:
  • by
  • カテゴリ:

昨日まで使えていた pandoc の -parse-raw(-R) オプションが使えなくなって、代わりに+raw_htmlを使えというエラーが出て調べた。

無くなったのは2017年10月のpandc 2.0がリリースされたとき。最近変わったのかと思ったら結構前。 なんでかと思ったら、動いていた環境はWSLのUbuntu 16.04で古いのが入っていただけだった。バージョンは、1.16.0.2。 ちなみに動かなかったのはWindowsの2.7.3.こっちはだいぶ新しい。ちゃんと代わりのオプションを提示してくれたのが良い。

詳細はリリースノート参照。 –parse-rawで検索すると該当箇所がわかる。

Release Note