「Software」カテゴリーアーカイブ

Windows 10バージョン1511から1607へアップデートできない

Windows 10のパソコンをファクトリリカバリしてから最新状態にアップデートしようとした時に、バージョン1511から1607へのアップデートがその都度失敗したと言って元に戻ってしまい、一向にアップデートできないという現象が発生しました。

参考) Windows 10 version history

俗に言うAnniversary Updateがうまくできないという割と(?)よくある出来事らしいのですが、ファクトリリカバリ状態からそのまま素の状態でアップデートができないのは困りますね。しかも再現性があるみたい。
物はDELLのInspiron XPS15 9550でWindows 10 Home Edition。
調べても明確に「これ!」という解決方法が見つからず。ググると、修復ツール使ったり、レジストリいじったり、Chromeをアンインストールしたらできたとか、別アカウントで作業してみるとか、色々な情報が交錯しているようです。色々やってみて結局うまく出来た条件を未来の自分へのメモとして残すことにします。

  • 標準以外のブラウザをインストールしない。(EdgeとIEのみ)
  • プリインストールのマカフィーをアンインストールする。
  • マイクロソフトアカウントではなくローカルアカウントで作業する。

どれが効いたのか今となっては分からないですが、どれも単独では効果が無かった感じがします。多分アンチウィルスソフトが原因として一番怪しいと思っています。マイクロソフトアカウントは以前の設定を引き継いできてしまうので問題の切り分けがやりやすいようにローカルアカウントで作業したので、これはひょっとしたら無関係かも。

rsync 実行時に `tty`: Ambiguous が出る

未来の自分へのメモ

ネット越しにrsyncでファイルコピーをしたところ、

`tty`: Ambiguous

というメッセージが出てきました。別の環境では出たことが無く原因が判りませんでした。さくっとググってもすぐには私の頭ですっきり理解できる説明が見つからず、最終的に辿り着いたのが、「`tty`: Ambiguous. — what does this mean?」でした。曰く、

It is not a strange message and csh is documented to behave that way…

The problem is that in your .cshrc you have something that tries to
execute `tty`. If you are not running the shell on a real tty then
tty will print “not a tty”. Csh expects one word in some places,
but tty is giving it back 3.

The solution is to add a pair of quotes around `tty` to make it a single
word:

だそうです。
確かにcshを使っていて、.cshrcに

switch ( `tty` )
case /dev/console:
case /dev/ttyv[0-9]:
    setenv  LC_CTYPE C
    setenv  LANG     C
    breaksw
default:
    setenv  LC_CTYPE ja_JP.UTF-8
    setenv  LANG     ja_JP.UTF-8
    breaksw
endsw

このような記述をしてました。この中の `tty`の部分をダブルクォーテーションで囲むと良いそうです。

switch ( "`tty`" )
case /dev/console:
case /dev/ttyv[0-9]:
    setenv  LC_CTYPE C
    setenv  LANG     C
    breaksw
default:
    setenv  LC_CTYPE ja_JP.UTF-8
    setenv  LANG     ja_JP.UTF-8
    breaksw
endsw

これで `tty`: Ambiguous. は出なくなりました。

ESXi6.0でRDMを使う

ESXi6.0がリリースされてた

ESXi5.5でRDMがうまく使えない(ESXi上のFreeNAS9.3でHDDの容量がゼロで認識される)のであれこれいじくっている時に、ESXi6.0がリリースされているのに気付いたので、それを試してうまくいったというお話。

で、自分用のRDM設定メモ

1.HDDのシリアルを調べる

RDM(Raw Device Mapping)を設定するにあたってESXiが認識してるHDDのシリアル情報を調べる。

方法その1

vSphere Clientで「構成」タブ→「ハードウェア・ストレージアダプタ」クリック→HDDがぶら下がっている「ストレージアダプタ」を選択して「詳細」に出てくる物理デバイスの「識別子」がそれ。
右ボタンで「識別子をクリップボードにコピー」でOK。
vs

方法その2

sshでログインして

ls -l /vmfs/devices/disks/
:
-rw-------    1 root     root     1000204886016 Apr  5 06:23 t10.ATA_____ST1000DM0032D9YN162__________________________________S1Dxxxxx
-rw-------    1 root     root     1000203091968 Apr  5 06:23 t10.ATA_____ST1000DM0032D9YN162__________________________________S1Dxxxxx:1
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____ST2000DM0012D1CH164__________________________________W1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:2
-rw-------    1 root     root     2000398934016 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx
-rw-------    1 root     root     2147483648 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:1
-rw-------    1 root     root     1998251364352 Apr  5 06:23 t10.ATA_____WDC_WD20EARS2D00MVWB0_________________________WD2DWMAZA1xxxxxx:2
:

でHDDの品番をたよりに目的のt10.ATAで始まる文字列を見つけてコピペ。

2.マッピングファイルを作る

次に、vmkfstoolsコマンドで物理デバイスを仮想デバイスにマッピングするファイル(vmdkファイル)を作る。

必要な情報は「/vmfsで始まるHDDの物理デバイス識別子」と「任意のvmdkファイルを置くESXiのデータストア上の適当な場所」。
具体的にはこんな感じ。ディレクトリ名とかはこうでなければいけないという事は無く、分かりやすい任意の場所に作れば良い。

vmkfstools -z /vmfs/devices/disks/(HDD物理デバイスの識別子)   /vmfs/volumes/(datastore)/(仮想マシンディレクトリ名)/(任意の名前).vmdk

-zオプションは物理互換モード指定。

ESXi5.5の時は最後に “-a lsilogic”とか指定したけど、ESXi6.0では不要みたい。指定したらエラー(Option –adaptertype is deprecated and hence will be ignored)が出てきて無視された。

3.マッピングされたデバイスを仮想マシンで使う。

vSphere Client上で、「仮想マシンのプロパティ」から「追加」→「ハードディスク」→「既存の仮想ディスクを使用」→「ディスクファイルのパス」で上で作ったvmdkファイルを指定→モードは「独立型」を指定。

とりあえず、ESXi5.5ではうまくいかなかったRDMがESXi6.0ではできたので良しとする。ちなみにHDDは2TBの容量の物。vSphere Clientで2TBを超えてもRDMの構成ができるかどうかはまだ試していない、というかそんな容量のHDDは手元に余ってはいない。

参考) VMware vSphere 6.0 Release Notes

ESXiに公開鍵方式のSSHでアクセスする

自分用のメモ。ESXiをvSphere Clientを使わずに使うための布石。

1.公開鍵の作成

アクセス元のマシン上で公開鍵(と秘密鍵)を作成する。ESXiはrootで使うので何も考えずにアクセス元もrootで作業する。

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ←デフォルトの場所で良ければそのままエンター
Enter passphrase (empty for no passphrase): ←パスワード無しでアクセスしたければそのままエンター
Enter same passphrase again: ←同上
Your identification has been saved in /root/.ssh/id_rsa. ←秘密鍵の名前
Your public key has been saved in /root/.ssh/id_rsa.pub. ←公開鍵の名前
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@Host
The key's randomart image is:
+--[ RSA 2048]----+
| . +  o          |
|. E    * .       |
| .      B .      |
|  .    * o       |
| . o. * S        |
|  +  . .         |
| o .  +          |
|. S. .           |
| .oo.            |
+-----------------+
#

作成した鍵の確認

# ls -l ~/.ssh
total 1
-rw-------  1 root  wheel  1679 Nov 17 19:16 id_rsa   ←秘密鍵
-rw-r--r--  1 root  wheel   395 Nov 17 19:16 id_rsa.pub ←公開鍵
-rw-r--r--  1 root  wheel   788 Nov 17 18:29 known_hosts
# cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
Mxxxxxxxx
(省略)
xxxxxxxxxKmkkw==
-----END RSA PRIVATE KEY-----
# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNeTUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHoNfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host
#

秘密鍵は誰にも公開しないこと。

2.公開鍵をESXiに登録

作成しておいた公開鍵をESXiマシンにコンソール経由でコピペする。
ESXiのコンソール上で以下を実行。

# cd /etc/ssh/keys-root
/etc/ssh/keys-root # echo ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNe
TUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHo
NfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host >authorized_keys

登録した公開鍵を確認する。

/etc/ssh/keys-root # cat /etc/ssh/keys-root/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChvggKQDApEhl5NSmFb5U++2tCPHfXAyzbwSB+/TT5aUD60/uzVhjoaOAfFncWRbok69Ngx5Akk+gdwvB+/ykArWNeTUgwcEqaszLLVdN5YJ08+11K14W5i7MZBjvfLfBsi5/ZEAUTEIbsdJgoaWdmcoMZ9q2j4VNZIQwoWY9bV+/4ktXVFbY+quVzzy+SJ3qgoXIFeWtXoytMLhEm71fGxF9PJLu8BCKguA1d/dswr7PS505eHoNfXFhmW0d4Vlar/0C2wPVpeTJuVAs+Ob8xe5Qzl4IC/G68HffGysnCDdEySl8u15LOFu4Ho2d9xmTU0q0knoTs5YtYNO+W1vFn root@Host
/etc/ssh/keys-root #

3.SSHでアクセスしてみる

秘密鍵のあるマシンからESXiにSSHでアクセスしてみる。

# ssh 192.168.1.xx ←ESXiのIPアドレス
The time and date of this login have been sent to the system logs.

VMware offers supported, powerful system administration tools.  Please
see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the
vSphere Security documentation for more information.
~ #

無事成功。

いかに人は不注意になれるのか? (2)

そういう風に作られている

前のエントリーで、「検索結果上位にあるソフトの作者のサイトからダウンロードするのがいいのでは?」という趣旨のコメントを頂きました。

私の見たところではそれは一理あるように見えるかもしれないけどむしろより厳しいのではないかと思います。ソフトの作者のサイトと言ってもそれこそソフトの作者の数だけトラップが仕掛けられているといっても過言ではない状況があるからです。

続きを読む いかに人は不注意になれるのか? (2)

いかに人は不注意になれるのか?

「何もしていないのに~」

最近、お客さんから「何もしていないのに~」「知らないうちに~」というお言葉を聞く事が激増しています。ええ、パソコンに知らないうちに変なソフトが入ってまともに使えなくなるマルウェアとかウィルスソフト感染の話です。

大抵の場合は「何もしていないはずはない」のですが、「そうですねぇ~最近は巧妙になってきているのでソフトとかダウンロードしてインストールするときはよく注意してくださいね~」と注意喚起してお茶を濁しています。実際問題としては普通の人にはほとんどミッションインポッシブルなほど巧妙な罠が仕組まれているのでまず間違いなくひっかかってしまうと思います。

一体どういう部分で人はひっかかるのか?というか、どういう罠がしかけられているのかというのを ImgBurn というDVDを焼いたりパソコンに保存したりできるフリーソフトを 探してきてダウンロード・インストールするというシナリオを例にしてご紹介してみましょう。実はお客さんへの説明のための自分用のメモだったりしますが。。。

続きを読む いかに人は不注意になれるのか?

ESXiでvim-cmdが使えない

ESXiでSSH接続してvim-cmdが使えないという問題が出たので自分用のメモ

vim-cmdでエラーが出た


~ # vim-cmd vmsvc
terminate called after throwing an instance of 'std::bad_alloc'
what():  std::bad_alloc
Aborted
~ # vim-cmd vmsvc/getallvms
terminate called after throwing an instance of 'Vmacore::SystemException'
what():  No space left on device
Aborted
~ #

こんな感じでエラーが出ました。他のESXi環境では出たことが無かったのですが、色々ぐぐってみてもそのものズバリの情報が見つからず、エラーメッセージ自体からはどうやらメモリー不足らしい。16GBもメモリ実装してあるし、そのうちESXiが3GBも確保しているのにまだ足りんのか!と思って設定を見直すと、

mem3

リソースプールの設定中、Reservationのところでメモリ全部割り当てているのに気がつきました。全体のリソースアロケーションだとこんな状態でした。

mem0

Available Capacityが0MBの状態です。ひょっとしてこれ?

 

まさかのメモリー不足

試しにリソースプールのReservationを細かく変えてみるとここが数MBくらいAvailableになるとvim-cmdが動くようになります。Shellにログインしっぱなしでここの設定を変えてコマンド打つと動くようになったりエラーになったりとリアルタイムで変わります。つまり、ESXiのShellはたとえrootとは言えどもユーザー側のリソースを食うってことなんですね。

mem2

ということで、Reservationは本当に必要最小限の設定にしておくのが良さそうです。上図のような感じでWindows系には2GBとFreeBSD系には1GBと設定し直してみました。

mem1

全体のリソースアロケーションはこういう状態になりました。16GBの実メモリの内ESXiの取り分が3GBでユーザーの取り分が13GB。リザーブが3GBで残りの10GBは必要な人が取り合うという状態になりました。どうせユーザーはほぼ一人なのでReservedはゼロ設定にしてても実害は無いんでしょうけど。それにしても、お馬鹿な設定をしたことでいい勉強になりました。

 

 

 

 

ESXiでSSHを使う

ESXiでSSHを使う設定方法の自分用メモ

ESXiでの設定

ESXi-ssh1

まずESXiのコンソールからF2キーで「Customize System/View Logs」に入る。
 

ESXi-ssh2

次に「Troubleshooting Options」を選んでenterキー。

 

ESXi-ssh3

「Enable ESXi Shell」を選んでenterキーでESXi Shellを有効に設定。

 

ESXi-ssh4

「Ebable SSH」を選んでenterキーでSSHを有効に設定。escキーで抜けて完了。
 

SSH接続してみる

ESXiのコンソールにIPアドレスが表示されているのでそこにSSHターミナルで22番アクセス。

ESXi-ssh5

ESXi-ssh6

ESXi-ssh7

ESXi-ssh8

これでSSH接続できました。

DynDNSついに無料アカウント廃止

今朝、こんなメールがDynから届きました。

Important info about the future of your Dyn account

DYN-FREE-ENDING

昨年にDynDNSの変遷で書いてから1年たたずについに無料アカウントが廃止されることになったようです。4月7日時点でアクティブなアカウントで5月7日時点で有料アカウントにアップグレードしていなければ無料アカウントはすべて無効にされるそうです。(但し、昔に寄付したことのあるユーザーだけは継続。)

今回の無料アカウントの廃止の理由ですが悪さをする無料アカウントユーザーが増えてきている(We have seen an increase in abuse issues with free hostnames in recent years)のでそれを一掃したいというのが主なところなのかなというのがざっと読んでの感想です。

私は昨年来のDynDNSの動きを見て他へ乗り換えた方がいいと思って結局自前でDDNS立てたので今回の変更で特に影響を受けずに済みますが、それにしても1ヶ月の猶予というのはちょっと短い気はしますね。まあ有料アカウントに移行するなら数分でできてしまうのですが。。。

Free User Discontinuation FAQs
Why We Decided To Stop Offering Free Accounts

Command time limit exceeded (procmail)

先日から、自サーバーにメールを送ったらMAILER-DAEMONさんからこんなエラーが返ってくるようになりました。

Subject: Undelivered Mail Returned to Sender
Command time limit exceeded: “/usr/local/bin/procmail”

自サーバーではprocmailを使ってスパムメールの処理をさせていますが、これと言ってエラーの原因になるようなログが残っていません。時々エラーが返ってくることがある程度だったのがだんだん増えてきました。procmailを通らない経路のメールはちゃんと配信されているのでprocmailのどこかが変です。 続きを読む Command time limit exceeded (procmail)