pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Windows 10 Enterprise をインストールした HP 製のPCにベンダ提供のドライバ類を追加インストールする

Windows10をクリーンインストールした環境にベンダー製のドライバや補助ソフトをインストールするのは案外めんどくさい

PCを調達すると通常はWindows 10 Home または Pro がプレインストールされていますが、社内のPC は Windows 10 Enterprise を標準的に利用するので、OS の入れ替えをすることになりました。しかし Enterprise への入れ替えでは既存環境を引き継ぐことができません。

そうすると、ハードウェアベンダーから提供されるドライバアップデートを改めてインストールせねばならない場合があります。しかしベンダーのウェブページから個別のドライバを探してインストールするのは面倒です。

今回は HP 製PCにドライバをインストールするのですが、色んなドライバがあってどうしたものかと思っているところにふと気づいたのが "HP Support Assistant" です。このツールがインストールされていると、そのPCに必要なBIOSアップデートやドライバアップデートが通知され、そのままインストールすることができます。

HP Support Assistant のインストール

ここらへんからダウンロードできます。 http://www8.hp.com/jp/ja/campaigns/hpsupportassistant/hpsupport.html

インストールして実行すると、インストールまたは更新が必要なドライバ類が通知されますので、優先度を考慮してインストールします。

ウェブページから個別のドライバの要不要を考慮しつつインストールするのにくらべると、大変お手軽に導入することができ、メンテナンスが捗ります。

Windows 10 1803 にアップデートする前に行っておきたい前準備

Windows 10 1803 は RTM 候補のBuild 17133 が2018年4月初旬にリリースされたものの、ブルースクリーン問題(BSoD, Internal Preview の場合は BSoG) 等により一旦取り下げられ、2018年4月30日(US時間)に Build 17134 が改めてリリースされる見通しです。

実際のところ、Build 17133 の時点で自分のPCも BSoG が発生してインストールが完了しない問題が発生して大変困りました。最終的には復元ポイントに戻したのちに問題を引き起こしているソフトウェアを削除してアップデート完了したのですが、けっこう手間がかかりました。

そこで、Windows 10 1803 にアップデートする前に行っておきたい前準備を自分の体験したケースでメモっておきます。

  1. 復元ポイントを確実に残しておく
  2. 管理者権限を利用できるユーザアカウントでログインできることを確かめておく
  3. BitLocker を使っている場合は回復キーを確認しておく
  4. 特殊なソフトウェアやドライバをアンインストールする

復元ポイントを確実に残しておく

復元ポイントが残っていれば、何か問題があっても復元できるわけで、これが最も重要です。Windows 10 1803 にアップデートする前の状態の復元ポイントを必ず残しておきます。

仮想マシンの場合はスナップショットをとります。

管理者権限を利用できるユーザアカウントでログインできることを確かめておく

BSoD から回復させるためのトラブルシューティングでは、管理者権限による作業が必要な場合があります。管理者権限が使えるアカウントが不明だと、それらの作業が行えないので大変困ります。

特に、ドメインに参加しているPCの場合は、ローカルアカウントで管理者権限を持つアカウントがわかっていることが望ましいかもしれません。

BitLocker を使っている場合は回復キーを確認しておく

Windows 10 Professional 以上をお使いの場合は、BitLockerも設定していると思います。しかしトラブルシューティングの際には BitLocker で暗号化されたストレージを参照する際に回復キーが必要です。

回復キーが不明な場合はセーフモード等での起動ができず、詰みます。

特殊なソフトウェアやドライバをアンインストールする

自分のケースでハマったのはこのせい。

WindowsMac の外部ディスプレイとして iPad を利用できるようにする DuetDisplay のドライバをインストールした状態で Windows 10 1803 にアップデートしたら BSoG になりました。

手元の環境は DuetDisplay はすでにアンインストールした上で 17134 へのアップデートも済んでいるため、これから 17134 にアップデートする場合の挙動は正直よくわかりません。

しかし、ベンダー側が Windows 10 1803 での検証や動作保証を行っていないドライバは問題を引き起こす場合があります。だからといって、すべてのドライバを削除するわけにもいかないので、回復可能な手段を用意した上でアップデートを実施し、ダメだった場合は元に戻せる状況を用意しておきましょう。

ER/Studio 16.0 (2016) で IBM DB2 LUW に接続してリバースエンジニアリングするための環境を作る

ER/Studio はデータベースのモデリングツールであり、ER/Studio 上で論理モデルを編集した上で個別のデータベース向けの物理モデルを生成できるだけでなく、稼働中のデータベースに接続して物理モデルをリバース・エンジニアリングできるなど、なかなか便利なツールなのですが、DB2 LUW (Linux, Unix, Windows 向けのDB2) に接続しようとしたときに設定手順の文書が微妙に足りないので、手順のメモを残しておきます。

また、ER/Studio のバージョンは 16.0 (2016)、エディションは Developer Edition (RAD Studio Architect に含まれるエディション) を想定しています。

従って、ここで書いている手順は DB2 for z/OS (AS/400) 向けの手順ではありません。DB2 for z/OS へのネイティブ接続は ER/Studio Data Architect 以上でサポートされますので、RAD Studio Architect で ER/Stuido Developer Edition をインストールしても利用できません。(ODBC設定なら使えるかもしれませんが)

そもそもなぜ上手くいかないのか?

DB2に関する理解度が低い方が docwiki.embarcadero.com の記述を読むと、たぶん混乱するからだと思います。

ここらへんを見ると "IBM DB/2 OS/390 / IBM DB2 LUW" 向けの接続には "IBM DB2 Connect" が必要、と書かれています。 サポート対象データベース プラットフォーム - ER/Studio Data Architect

また、ここらへんを見ると "IBM DB2 クライアント ユーティリティの対応バージョン" を用いる旨、書かれています。 さらに IBM DB2 for LUW には "ODBC データ ソース アドミニストレータで指定した ODBC データ ソースを使用します。" と書かれています。 データベースに対するネイティブ接続または直接接続の使用 - ER/Studio Data Architect

結局、何が必要なのか、良く分からなくなってきませんか?

ネイティブ接続できるはずなのに、ODBCデータソースの設定が必要、みたいなことが書いてあるし。

では、と思って DB2 向けの ODBC ドライバだけインストールした環境で接続を試みてみても、ネイティブ接続は思ったようには動いてくれない。

db2abind64.dll が無い、みたいなメッセージが出て先に進めないし、db2abind64.dll で検索しても、そのものズバリの情報がイマイチ見当たらず、「後方互換性のために残されている」的な情報は見つかるものの、ODBCドライバにはこのDLLは含まれていないのです。

必要なもの

結局、ソフトウェアやドライバとして何が必要かというと、IBM Data Server Client Packages が必要です。この記事の作成時点では 11.1.* を使用していますが、もっと新しいバージョンが無いかどうかは個別に確認してください。

以下のリンクは11.1のダウンロードリンクです。IBM ID でのログインが必要なので、持っていない方は作成してください。

http://www.ibm.com/support/fixcentral/swg/quickorder?parent=ibm%7EInformation%20Management&product=ibm/Information+Management/IBM+Data+Server+Client+Packages&release=11.1.*&platform=Windows+64-bit,+x86&function=fixId&fixids=DSClients-111-ntx64-RECOMMENDED&includeRequisites=1&includeSupersedes=0&downloadMethod=http&source=fc

ここで "v11.1.3fp3_ntx64_client.exe (691.37 MB)" という、一番大きいインストーラを入手しておきます。(他のインストーラでも良いかもしれないけど、最小構成については検証していません)

インストールのサマリ

v11.1.3fp3_ntx64_client.exe は WinZip の自己展開型アーカイブなので、実行して展開された中身の setup.exe を実行します。(しかし、今の時代に自己展開型アーカイブで配布するのはアリなのだろうか?)

インストール構成としては、下記2点くらいが注意点でしょうか。

  • IBM Data Server Client バージョン 11.1.3.3
  • コンパクト構成 (200 - 300MB)

環境設定のサマリ

環境設定では、ODBC接続設定が必要です。ER/StudioからのDB2接続では、ODBCの機能とネイティブドライバの機能を併用するのですが、基本的な接続はODBCで設定された内容を参照しているようです。

ここらへんは RAD Studio/Delphi/C++Builder のデータベース接続機能である FireDAC の DB2 コネクタでも同じような挙動のようです。

ここでは DB2 側で接続エイリアスを作成したのち、それを ODBC ドライバで使用するように設定しています。

db2 catalog tcpip node [ノード名] remote [DB2サーバのホスト名またはIPアドレス] server [ポート番号(50000)]
db2 catalog database [データベース名] as [DB接続エイリアス名] at node [ノード名]

ER/Studio のリバースエンジニアリング設定

  • 接続方法 = ネイティブ/直接族
  • 対象データベース = IBM DB2 UDB
  • データソース = ODBC接続名
  • ユーザ名、パスワードは DB2 側で設定されているものを指定

おおむね、こんな流れでER/StudioからDB2 LUWへの接続やデータベースのリバースエンジニアリングが行えるようになります。

DB2 ODBC Client のバージョン、ダウンロードURL、サーババージョンとの組み合わせ

9.5, 9.7, 10.1, 10.5 はここらへんから辿ってダウンロードできる。 www-01.ibm.com

クライアントとサーバの組み合わせはこの辺を見る www-01.ibm.com

MSSQLを Docker で動かす

というのを試そうと思ったら、そもそもマイクロソフトのページに掲載されている情報がとても丁寧な内容でした。

docs.microsoft.com

ただし、ポートマッピングは -p 1433:1433 が正しいと思うので、そこだけは変えます。というわけで、こんなふうに実行するだけでした。

sudo docker run \
  -e 'ACCEPT_EULA=Y' \
  -e 'MSSQL_SA_PASSWORD=パスワード'  \
  -p 1433:1433 \
  --name sql1 \
  -d microsoft/mssql-server-linux:2017-latest

なお、パスワードはMSSQLのデフォルトポリシーに合わせて、大文字小文字、数字、記号を適度に混ぜて8文字以上で作ります。これを忘れるとコンテナが即座に終了してしまいます。

この状態で、RAD Studio の FireDAC や ER/Studio、DBArtisan から利用できることを確認済み。

リモートの InterBase にODBC接続する際に気をつけること4つ

変にハマってしまったのでログを残しておく。

DataBase の指定方法では、ポート番号を必ずつけておく

ヘルプファイル等を見ると以下の4パターンで接続できそうなことが書いてある。

しかし手元で試してみると、ポート番号をつけない指定では接続できないようだ。

利用するクライアントによって、32bit ODBC, 64bit ODBC を正しく使い分ける

クライアントアプリが64bitなのに32bit ODBCで接続することはできない。逆のパターンも然り。よって、クライアントアプリとドライバのbit数はかならず合わせる。

たとえば、ER/Studio の 64bit 版に 32bit ODBC を組み合わせても接続することはできない。

設定項目の Client には、前提のbit数に対応したDLLを正しく指定する。

InterBase の ODBC 設定では、32bit, 64bit でそれぞれ以下のDLLを使い分ける必要があります。

このフルパスを ODBC 設定項目の "Client" に指定します。

サーバ側のポートは Firewall 設定で正しく開けておく

Windows Firewall のデフォルトはポートクローズなので、3050/TCP を適切に開けておきます。

Mac に Bootcamp で作成した Windows10 環境を Disk2VHD によるP2V で VirtualBox向けに仮想化する

Bootcamp で作成していた環境が手狭になったのと、WindowsmacOS を同時に使いたい状況が出てきたので仮想化することにする。

ここに書いているのたとりあえず手順のメモ。

今回は VirtualBox 向けに仮想化します。

仮想マシン化するとOSのライセンス認証をやり直す必要が出ますが、そこはそれぞれの環境や状況に合わせて適切に認証を通しましょう。

ポイント「EFI で起動できるようにVHD化し、仮想マシンEFIブートを有効にする」点にあるようです。

使うもの

手順

Disk2VHD で物理HDDを仮想HDDにする

technet.microsoft.com

  • 実行すると、2つのパーティションが見えているはず。
  • 一つは EFI 起動パーティション、もう一つはドライブC
  • 両方とも選んでVHD化する
  • 出力先はUSB外付けHDD (外付けストレージ必須ではないが、自分の場合は Bootcamp 環境を潰すつもりなので内蔵ディスクは使わない)

VirtualBox仮想マシンを作る

  • OS は Windows10 (32bit or 64bit は環境に合わせて選ぶ)
  • メモリは適量
  • HDD は一旦はナシで作る

VirtualBox の設定調整する

仮想マシンを起動して設定調整する

  • VirtualBox 向けのドライバをインストールする