demandosigno

なんとか生きていけるように

Vagrant で rubygems エラー

Vagrant

C:/HashiCorp/Vagrant/embedded/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file
-- vagrant-share/helper/api (LoadError)
    from C:/HashiCorp/Vagrant/embedded/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

というようなエラーが出るようになった。ググると数日前から報告されているようです。 私の環境は Widows10Home x64 VirtualBox5.1.20 Vagrant1.9.4 です。

github.com

読んでいったところ

$ vagrant plugin install vagrant-share --plugin-version 1.1.8

で直るよ。とのことだったので、vagrant-share –plugin-version 1.1.8 をインストールし、Vagrant up してみたのですがまた別のエラーが出ました。

C:/HashiCorp/Vagrant/embedded/gems/gems/net-ssh-4.1.0/lib/net/ssh/transport/server_version.rb:54:in `readpartial': An established connection was aborted by the software in your host machine. 
(Errno::ECONNABORTED)
        from C:/HashiCorp/Vagrant/embedded/gems/gems/net-ssh-4.1.0/lib/net/ssh/transport/server_version.rb:54:in `block (2 levels) in negotiate!'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/net-ssh-4.1.0/lib/net/ssh/transport/server_version.rb:52:in `loop'

もう少し読んでいってみたところ、下記に

github.com

Those who want to fix it now in your computer without waiting for 1.9.5 can replace 3 files changed in #8526 in vagrant installation directory.
For example in windows, those files are located in

C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.4/templates/locales/en.yml
C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.4/lib/vagrant/errors.rb
C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.9.4/plugins/communicators/ssh/communicator.rb
replace them with new en.yml, errors.rb and communicator.rb

Then you are good to go. It worked on my Windows 10 machine. One gotcha is in Windows, you have to change folder permission of the directory to edit or create new files.

と書いてありました。

https://raw.githubusercontent.com/chrisroberts/vagrant/2acded113c8f8915038b6230df1acfac43332c0c/templates/locales/en.yml

https://raw.githubusercontent.com/chrisroberts/vagrant/2acded113c8f8915038b6230df1acfac43332c0c/lib/vagrant/errors.rb

https://raw.githubusercontent.com/chrisroberts/vagrant/2acded113c8f8915038b6230df1acfac43332c0c/plugins/communicators/ssh/communicator.rb

を右クリックしてファイルを3つとも保存し、HashiCorp 以下のそれぞれのディレクトリにある元のファイルを置き換える。これで再度 Vagrant up してもエラーは出なくなった。

github.com

Vagrant 1.9.5 で修正予定のようです。

ML115 G1 に VMware vSphere Hypervisor をインストール

化石や骨董品とまでは言わないけど、もう使ってる人なんてほとんどいないだろうなと思う古い格安サーバー HP ML115 G5がメインマシンでWindows。初代 ML115 G1 がサブ機で、CentOSをインストールして使ってた。

今回サブ機のHDD入れ替えを機に仮想化してみることにする。無料の VMware vSphere Hypervisor ですが。 動作条件としてIntel VTまたはAMD-Vに対応したマルチコアCPU。NICではIntelBroadcomNVIDIAのみ。カニさん(Realtek)はダメ(カスタムドライバ作成で可)。など、いろいろ厳しいけど、ハード要件はなんとかクリア。(ML115G1にOpteron1210)
しかし案の定はまりまくる。ほんと「貧乏だから新しいの買えないから古いので我慢するんだ」とか思ってるけど、費用対効果を考えても作業時間分時給で働いて新しいパソコン買う方が正しいな……。

VMware vSphere Hypervisor (ESXi)

  • 6.0 or 5.5 or 4.1 + Rufus(USBメモリ) ×インストール画面まで進めない。
  • 6.0 or 5.5 or 4.1 + DDforWindows(USBメモリ) ×インストール画面まで進めない。
  • 6.0 5.5 4.1 + syslinux最新版 ×
  • 6.0 5.5 4.1 + syslinux4.04 △boot画面まで進めた。menu.c32: not a COM32R image
  • 6.0 5.5 + syslinux3.72 △インストール画面を通過。その後、CPU AMD Opteron 1210 がサポート外と出る。(というかハードウェア拡張機能AMD-Vが有効になってないよと言われる。Intel-VT,ML115G5環境だとBIOSに設定画面が出るけど、G1には設定画面がない。それでもデフォルトで AMD-Vは有効になるはずなんだけど…)
  • 4.1 + syslinux3.72 △インストール画面を通過。その後、CD-ROMドライブがサポート外の表記。使ってないのに。
  • 4.0 + syslinux3.72 をUSBドライブへインストール 〇インストール完了。その後、パープルスクリーン。
  • HP版 4.1へアップグレードを行ってみる。 ×CD-ROMがサポート外。

VMware vSphere Hypervisor HewlettPackard版

  • 6.0 5.1 4.1(ESXi) + Rufus(USBメモリ) △boot画面まで進めた。menu.c32: not a COM32R image
  • 6.0 5.1 4.1 (ESXi)+ DDforWindows(USBメモリ) △boot画面で menu.c32: not a COM32R image
  • 6.0 5.1 4.1 + syslinux最新版 ×
  • 6.0 5.1 4.1 + syslinux4.04 △boot画面まで進めた。menu.c32: not a COM32R image
  • 6.0 + syslinux3.72 △インストール画面を通過。その後、CPU AMD Opteron 1210 がサポート外。
  • 5.1 + syslinux3.72 △インストール画面を通過。その後、CPU AMD Opteron 1210 がサポート外。
  • 4.1 + syslinux3.72 △インストール画面を通過。その後、HDDがサポート外。
  • 4.1 + syslinux3.72 をUSBドライブへインストール △インストール画面を通過。その後、CD-ROMがサポート外。
  • HP版じゃない方の 4.0 ESXi でインストール完了 〇。その後パープルスクリーン ×。
  • 5.1 + syslinux3.72 でアップグレードインストール。 〇やはりOpteron1210は対象外。だがなぜかインストールは完了した。4.0から設定がうまく引き継がれているということだろうか。以後しばらく様子を見て6.0へのアップグレードも試してみる。

以下詳細。
最新の6.0を(CD-Rドライブがないため)USBメモリからインストールしてみたけどダメ。5.5もダメ。 https://my.vmware.com/jp/web/vmware/evalcenter?p=free-esxi6 https://my.vmware.com/jp/web/vmware/info/slug/datacenter_cloud_infrastructure/vmware_vsphere_hypervisor_esxi/5_0

検索してみるとML115で4.1をインストールしてあるのが幾つか見つかった。
http://blog.pdns.jp/vmware-esxi-4-1-0-vmware-vsphere-hypervisor/ Installing and Running VMware vSphere (ESX 4.0) on your lab HP Proliant ML110 or ML115.
HP ML115にVMware ESXi 4.1をUSBメモリインストール - Symfoware

なのでまず4.1を試す。
本家にはもう置いてないのでググって落とす……。
isoファイルをDVDに焼いて試すのが通常だけど、DVD-ROMしかついてないので焼けない。USBブートを目指す。
技術メモメモ: Shuttle DS81を買ってESXi 6.0をインストールした話② (ESXi Custom Image作成~インストール完了まで)
上記を参考に
Rufus - Create bootable USB drives the easy way
でブータブルUSBドライブを作成

6.0+Rufus 5.5+Rufus 4.1+Rufus 全部ダメ。
Rufas の換わりに DDforWindows でも試してみる。 http://blog.pdns.jp/vmware-esxi-4-1-0-vmware-vsphere-hypervisor/
6.0 5.5 4.1 ダメ。

ドライバとかが合ってないのかもしれないなと思う。
ESXi-Customizerでドライバを組み込んだISOを作成できるんですが、何が必要なのかよく分からない。
自宅ESXi 6.0 小型PC NUC(NUC5i7RYH)に構築 その2:ESXiインストール編 - Qiita

そこでふと思いついたのが、HPやらDELLやらってベンダー独自でドライバを組み込んだISOファイルを配布してたよな?ということ。
ありました。
Hewlett Packard Enterprise
HPE and VMware’s infrastructure as a service solution | Hewlett Packard Enterprise
VMware vSphere Hypervisor 4 (ESXi) and Updates を落として、再度RufasでUSBに書き込みインストールを試してみる。

通った。しかし、boot画面で menu.c32: not a COM32R image と出て進めない。
ESXi インストール from USBメモリ - 飛光よ、飛光よ
ESXi 5.0をUSBメモリからインストールする(Windows上で作業)
boot: mboot.c32[Enter]でいけるとのことだけど、私の環境ではだめだった。

続けて、上記2ブログを参考に syslinuxでのブートを試してみる。 やっぱりダメ。

もういい加減に諦めようかなと思ったけど最後に次のブログを見つけた。
ESXi install from USB flash drive
当初、「最新のsyslinuxは通らんから4.04を使え」とのことで4.04を使っていたが、上記ブログには「not a COM32R には3.72でやれ」と書いてある。

syslinux3.72 でようやくboot画面を通過し、インストールへ進んだ。しかしその先でもCPU、CD-ROM、HDDが各種対象外のようで、最終的に ESXi4.0 + syslinux3.72 + USBドライブへのインストールで一応完了した。

  1. PCにUSBメモリーカードを刺しFAT32でフォーマットする。最近のUSBメモリは大容量で、Windows10だとexFATかNTFSでしかフォーマットできなかったため、上記Rufasを使ってFAT32でフォーマットする。
  2. http://ftp.jaist.ac.jp/pub/Linux/kernel.org/linux/utils/boot/syslinux/ からsyslinux3.72をダウンロードし、適当なフォルダで解凍する。 コマンドプロンプトを管理者権限で実行し\syslinux-3.72\win32\に移動する。
    syslinux -mfa [USBのドライブレター]:と入力。ドライブレターを間違うとそこのデータが全部消えちゃうので厳重に注意。
  3. ESXiの.isoファイルのマウントするなどして中を見る(winodws10なら.isoファイルをそのままダブルクリックしたら中を見られる)。中のファイルを全部USBメモリにコピーする。
  4. USBの中のisolinux.cfg を syslinux.cfg にリネームする。
  5. ESXiをインストールするPCにUSBメモリーカードを挿す。
  6. 起動後、HPと表示される後くらいにF10キーを押してBIOS設定画面に入る。
  7. USB Mass Strage Device Configuretion からUSBメモリーカードをHard Disk として認識させる(CD-ROMとしてはダメ)。
  8. インストール先を聞かれるが、HDDドライブは認識しなかったため、別のUSBメモリーカードにインストールする(ML115マザーボード上にもUSBコネクタがあるのでそこに挿しておく方が外れにくい)。
  9. ようやくインストール完了画面まで進む。再起動時にインストール先のUSBドライブをBIOS画面からもう一度HDDとして認識させておかないと、Panic: No usable banks found.と出る。
  10. とりあえず電源を切ってアップデートなどの残りは後日、と思ったところで薄紫色のエラー画面に変わった(#PF Exception(14))。まるでブルースクリーンの紫版。パープルスクリーンとでも言うか。→実際にそう言うようだ。ESX/ESXi ホストのパープル スクリーンの解析
  11. バージョンが古すぎて対応できてないのかもなと考え、どうせ無理だろうけどと諦めつつ最後にアップデートを試してみた。4.0は立ち上がって一分もしないうちにパープルスクリーンに移行するのでESXiのコンソールからのアップデートは諦め、再度USBメモリーから HP版4.1のアップグレードを試す。始めの一覧通り、やはり「CD-ROMが読み取れませーん」みたいなこと言われる。CD-ROMなんて使わなくていいっつーの。
  12. と文句を言いつつ諦めてHP版5.1を試す。同じく「CPUが対象外っすよ」と言われるが今回は「Continue」という文字が、押してみると……インストール完了してしまった。4.0からうまいこと設定が引き継がれたようだ。時間が経ってもパープルスクリーンに移行する様子はない。メインのWindows機からIPアドレス,vSphere Clientでの接続もできた。しばらく様子を見て、6.0にアップグレードしたい。
  13. 5.1が問題なく動いているので、USBメモリにHP版6.0を入れて起動、アップグレードしてみる。「CPUが対象外」で「Continue...」。インストール完了。Reboot。IPでの接続。vSphere Client6.0での接続を確認。問題ないみたい。

USBメモリからUSBメモリへインストールしてそのUSBからbootさせているんだけど、ML115の場合、毎回BIOSでUSBをHDDとして認識させてあげないといけない…。面倒だけど、サーバーなら一度立ち上げたらめったに落とさないから……まあ遊び用だし。

今回「もうこれがうまくいかなかったら諦めよう」という最後の方法がうまくいってしまい先に進む羽目になることが3回くらいあった…疲れた。費用対効果が悪すぎる。新しいパソコン買いたい。

Windows10 インストールエラー INACCESSIBLE BOOT DEVICE 他

Windows10をインストールしたらはまりまくった。
次のような経緯をたどっています。

  • Windows10 Version 1511 HomeEdition をクリーンインストール。正常に完了。
  • しばらくは普通に使えたが何回かの再起動後
    「問題が発生したため、PCを再起動する必要があります。自動的に再起動します。」
    「詳細については、次のエラーを後からオンラインで検索してみてください: INACCESSIBLE BOOT DEVICE(エラーコードなし)」を繰り返す。(LANケーブルを引っこ抜いて更新不可状態でも陥る)
    →自動修復(スタートアップ修復)、失敗。
    →セーフモードでの起動、失敗。
    コマンドプロンプトからディスクチェック,マスターブートレコードの修復、失敗。
    →このコンピュータを初期状態に戻す、成功。しかし結局しばらく使っていると同様に「INACCESSIBLE BOOT DEVICE」となる。

  • Microsoftサポートに電話で聞いてみる。
    MS「ハード的な不具合があるのかもしれません。Windows7に戻してしばらく使ってみてください」
    →ハードの故障チェックはしてるよ……壊れてはいない。とはいえ、一度 Windows7に戻してみる →ずっと使っていても何ら問題なし。
    MS「Windows 10 Anniversary Update(Ver1607) をインストールしてみてください」
    →インストール時にHDDを読み込まない。"1511"の際にデバイスドライバを確認するとHDDの各種ドライバはRAIDを含めWindows10用が用意されており、無事読み込まれているのに。

  • HDDを認識させる場所でDVDディスクを"1607"から"1511"に入れ替え、ドライバを取り込んでみる。再度"1607"に入れ替えると、一度HDDを認識したかに見えたが再現手順を確認しようとバックしたら再現できなくなった……。

  • Windows10 1511 はHDDを読みこみ初回インストールも完了するので、クリーンインストールではなく"1511"のデスクトップ画面からDVD-ROMを開いて "1607"の上書きインストールを試す。
    →インストールプロセスが進み、成功に見えたが、やはり起動に失敗。さらにRAID 0+1の繋がりが破壊される。(10年ほど前1万円を切る値段で話題になった HP ML115 G5 を使っています。ML115RAID 0+1の復旧方法はこちらまた後日)

  • RAIDの問題を疑い、一度RAIDを切り1台のHDDだけにし "1607"をインストールしてみる。 →成功

  • でもせっかく純正ハードウェアRAID機能がついてるのに使えないなんてヤダヤダ!!
    →USBフラッシュドライブにWindows10 Anniversary Update 回復ドライブを作成,システムイメージバックアップを作成。RAID構成上にインストールした "1511" から "1607" が復旧できないか試す
    https://support.microsoft.com/ja-jp/help/12387/windows-10-update-history からexe形式の最新バージョンで試す。
    →どちらもやっぱり無理。

結局私の場合は「Windwos7でRAIDを選ぶ」か「RAIDなしでWindows10を選ぶ」か、で後者にしました。

ただ、私のPC環境は2008年だか2009年だかに発売されたML115 G5 に同じく同時期に発売の AMD PhenomII X4 940 Black Edition, NVIDIA GeForce 9800 GTX+という古い構成です。
昨今の新しいグラフィックボードに付属するRAIDドライバならちゃんと動くかもしれません。

WindowsもHomeEditionではなくProfessionalならソフトウェアRAIDが使えます。
「INACCESSIBLE BOOT DEVICE」はその名の通り多種多様な原因により起こりますので、別の解決方法がある可能性も高いです。