2017年4月22日土曜日

Windows10のゲストOSのクローンはできない

VMwareのゲストOSとして、Windows10を使っています。
このWindows10をクローンで、別のフォルダにコピーすると、ライセンス認証ができず、使えません。
単に、フォルダをコピーして、OSの起動時に、"コピー"ではなく、"移動"を選択すれば、ライセンスの問題はありませんでした。

ライセンスのトラブルシューティングで、ハードウェアの変更があったことを選択すれば、認証できると思ったのですが、できませんでした。

<経緯>

Windows10のゲストOSが壊れたため、バックアップしていたイメージデータを戻しました。
このまま使うと、再び、壊れる恐れがあるため、VMwareのクローン機能を使い、コピーし、こちらを使おうと考えました。
(以前、UbuntuのゲストOSで、バックアップイメージを使って、再び、壊れた経験がある)

仕方なく、Windows10のクリーンなイメージを、コピーしてみましたが、予想通り、これも、ライセンス認証がNGでした。
移動であれば、大丈夫そうでした。


マイクロソフトアカウントを設定しておけば、コピーや移動を行っても、大丈夫だったように思うのですが、再び、ライセンス認証の仕組みが変わったのでしょうか。
これでは、新しいパソコンにVMwareをインストールすれば、ゲストOSをコピーしただけで使えるようになったり、バックアップから簡単に復元できる便利さが失われてしまいます。

結局、Windows10のクリーンなイメージから、スナップショット機能を使って、分岐させて使うことにしました。
複雑な仕組みを利用すれば、それだけ、トラブルにあう危険が増えるため、使いたくない方法ですが、仕方ありません。

2017年4月21日金曜日

VMware ゲストOSが壊れた

今回は、ゲストOSのWindows10が壊れました。
内部のデータが消え、Windows10が初期化されたような状態になりました。
また、シャットダウンを行おうとしましたが、「コンピュータの電源を切らないでください」と表示され、何もできない状態です。


<経緯>

ホストOSのWindows10が、アップデートにより、様々な設定が初期化されてしまい、困っています。
VMware関係では、仮想ネットワークエディタの設定が初期化され、再設定が必要でした。

ゲストのWindows10もアップデートしました。
しばらく、使って問題なさそうだったため、スナップショットの整理を行いました。

さらに、VMwareもマイナーアップデート(12.5.5)しました。

これだけ、環境が変わる要因があると、原因を特定することは困難です。


基本的に、仮想マシン内で作業を行っていますので、そろそろ、ホストOSを、WindowsからLinuxに代えるべきではないかと考え始めています。

2017年4月12日水曜日

Javaで、シリアル通信

Javaで、シリアル通信を行いました。

Javaで、シリアル通信を行うには、古くからある「Java Communications API」を使う方法と、将来的に有望な「Device I/O」を使う方法があるようです。

「Device I/O」の方は、Raspberry Piの情報しか見つからなかったため、「Java Communications API」を使ってみました。
「Java Communications API」の実装は、RXTXを使いました。

環境は、Debian (Jessie)

インストール
$ sudo apt install librxtx-java librxtx-java-dbg


利用方法
classpath に /usr/share/java/RXTXcomm.jar
java.library.path に /usr/lib/jni
を設定する

NetBeansで利用する場合
プロジェクトのプロパティを開く。
「ライブラリ」の項目で、「JAR/フォルダの追加」を選び、RXTXcomm.jarを設定する。
「実行」の項目で、「VM Options」に、-Djava.library.path="/usr/lib/jni"を設定する。


これで、動きました。
整理すると、簡単なことですが、ここに、たどり着くまでが大変でした。

<経緯>
まず、「Java Communications API」を使う方法を探しました。
古いsunの実装は見つからず、代わりに、RXTXの実装を使うと良いと分かりましたが、こちらも、本家のサイトはダウンしていて、見つかりません。
一般のサイトの情報を元に、別のサイトから、ダウンロードして使いました。

プログラムを組んでみると、受信時に、例外も出力せずに落ちました。
久しぶりのJavaのため、Java8になって、何か変わったのかと調べましたが、原因は分かりませんでした。

RXTXの代わりはないかと調べると、PureJavaComm、jSSCがあり、また、現在は、Device I/Oの開発が進められているらしいと知りました。
(Device I/Oの開発が進んでいるようには見えませんでしたが)

ここで、Debianのパッケージに、RXTXがあることを知り、これを使うことで解決しました。

いやはや、遠回りしたものです。
「Java Communications API」は、JDK7に組み込まれているかのような情報もありましたが、どうだったのでしょうか。
とりあえず、RXTXで動いたため、よしとします。

2017年4月5日水曜日

ドコモのiPhoneでは、IPv6は使えないのか?

今回のiPhoneのOSの更新により、ドコモのiPhoneを使っているMVNOで、IPv6が使えるようになったそうです。

では、本家のドコモを使っている場合は使えるのでしょうか?

iPhoneのみを使っている場合は、IPv4もIPv6も変わりなく、むしろ、IPv4固定の方が良いくらいです。
テザリングの場合、Windows10は、IPv6に対応しており、ブラウザは、IPv6を優先することがあるため、IPv6を使いたくなります。

iPhoneの設定は、どこにあるのでしょうか。

2017年4月4日火曜日

IPv6を試す

firefoxが遅いことに端を発して、IPv6を試してみました。

プロバイダは、ぷららです。
IPv6に対応しているはずですが、契約オプションの関係か、IPv6の接続はできませんでした。

代わりに、IIJmioのSIMと、モバイルルーターを使って試してみました。
こちらは、モバイルルーターの設定で、IIJmioとの接続オプションを、IPv4/IPv6に変更することで、接続できました。
ただし、Windows10は、一度、再起動しないと、だめでした。

印象としては、firefoxの接続が早くなったように感じました。
これは、そんな気がする程度かもしれません。
実際には、いつも、モバイルルーターを使っている場所で、同じように作業をしてみなければ比較できません。

いつも、モバイルルーターを使っている場所では、アフィリエイト広告あたりは、読み込みタイムアウトなのか、非表示になります。
これが、正常に表示されるなら、IPv6に変更した意味があったとなります。
広告だけなら、非表示の方が良いくらいですが、見たいページを、リロードで表示するのは、さすがに面倒でしたから。
IPv6での接続が、この問題の解決に役立ちそうで、楽しみです。