きぬろぐ
Windows 98のインストールに手こずる
投稿者: kinusati, カテゴリー: Windows
今更なんですが、VMware Player上でWindows 98を動かそうとしたのですが、そもそもインストールができませんでした。まぁいろいろはまったんですが・・・
- Windows 98のCD-ROMはある物の、CD-ROMから起動できない
- 上述のCD-ROMを認識させるためにはCD-ROMを読み込ませたMS-DOSの起動ディスクが必要だが、そんな物はない(物理ドライブもない・・・)
- Windows 98が動作する環境があれば何とかしてCD-ROMを読み込むMS-DOS起動ディスクを作成できるが、そもそもそんな環境あれば苦労しねーよ!
という点に一番はまりました。
で結論から言うと、起動ディスクをまとめたサイトがあるんですね。すてき!
WindowsNT系OS上で、Windows98起動ディスクを作る方法
Windows 98の起動フロッピーディスクをVMwareに読み込ませて、無事にCD-ROMを認識!ばっちりインストールできましたよ。
ただ音を鳴らすことができていないので、ゲームができるようになるまではまだまだ遠いようです・・・三国志Vしたいよー
cactiのバージョンアップができない件について
投稿者: kinusati, カテゴリー: freebsd
ノードごとのリソースグラフを管理するため、cactiを0.8.7b から 0.8.7eにバージョンアップしようとしたのですが、以下のエラーが出ます。
Invalid Cacti version 0.8.7b , cannot upgrade to 0.8.7e
なんでだろうと調べてみたら、結論から言うと、my.cnfにdefault-character-set = binaryの設定を登録していたことが原因だった。では何故こうなるのか?を以下にまとめます。
原因詳細
上記エラーを出す部分のソースコードですが、cacti0.8.7eのバージョンアップ画面で利用されるinstall/index.phpの364-369行目が該当します。
364 if (!is_int($old_version_index)) {
365 print " <p style='font-family: Verdana, Arial; font-size: 16px; font-weight: bold; color: red;'>
Error</p>
366 <p style='font-family: Verdana, Arial; font-size: 12px;'>Invalid Cacti version
367 <strong>$old_cacti_version</strong>, cannot upgrade to <strong>" . $config["cacti_versio
n"] . "
368 </strong></p>";
369 exit;
370 }
364行目で$old_version_index変数の条件判定が失敗するため、エラーになることがわかります。
この$old_version_index変数の中身はmysqlのversionテーブルから取得したもので、mysqlからバージョンアップ前のバージョン情報を取得することで、バージョンアップ可能かどうかを判定しています。
データベースのcharacter-setがutf8の場合
データベースのcharacter-set=utf8だと正常にバージョンアップできます。試しにmysqlに対してversionテーブルが持つ値を検索してみたところ、以下応答となります。versionテーブルのcactiカラムはchar(20)であり、取得できるバージョンも”0.8.7b”となります。
mysql> desc version; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | cacti | char(20) | YES | | NULL | | +-------+----------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> select * from version; +--------+ | cacti | +--------+ | 0.8.7b | +--------+ 1 row in set (0.00 sec)
データベースのcharacter-setがbinaryの場合
character-setがbinaryだと以下のようにversionテーブルのcactiカラムがbinary(20)!!!となり、応答結果は”0.8.7b______________”‘(表示都合上、NULL文字を”_”で表現)”となります。cactiの初期データ作成に用いるcacti.sqlではCHAR(20)を指定しているのに・・・binary型に変換されるようですね。
mysql> desc version; +-------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------+------+-----+---------+-------+ | cacti | binary(20) | YES | | NULL | | +-------+------------+------+-----+---------+-------+ 1 row in set (0.00 sec) mysql> select * from version; +----------------------+ | cacti | +----------------------+ | 0.8.7b | +----------------------+ 1 row in set (0.00 sec)
この場合、上述の$old_version_index変数にはバージョン情報 + NULL情報を含んだ値が返されるため、エラーになる・・ということがことの真相のようです。
データベースのキャラクタセットにbainaryを使う際は注意が必要ということか。
言い訳ですが、今回cactiに利用しているデータベースは昔MySQL 4.0系を利用していた物を流用しました。流用の中で、セキュリティ対策を考慮して4.0系から5.1系までバージョンアップさせた物を使っています。
有名な話ですが、4.0系から5.0系以上にバージョンアップすることは大変な苦労を伴います。理由はMySQLの4.1系で文字コード自動変換が実装された事が原因であり、そのままバージョンアップすると、文字化けすると既存データ破損が大量に発生するため、苦肉の策としてcharacter-setをbinaryにした上でバージョンアップ作業を行っていました。
でもまさかこんなところで落とし穴があるとは・・・・。
下手なことはやらないものですね。以後気をつけます。
VMware ESXi 4.0 から VMware ESXi 4.0 Update 1にバージョンアップしたというのを昨日ブログに書きました。
バージョンアップは難しくなかったのですが、私の備忘録をかねて記事にします。以前と違ってWindows7でバージョンアップできるようになったのは大きいですね。
バージョンアップ手順
1. VMware ESXi 4.0から Update1にバージョンアップするには、vSphere Host Update Utilityを利用します。VMwareサイトからダウンロード時は「VMware vSphere Client and Host」をクリックします。
まず、上記ダウンロードしたものをインストールします。Windows7上で実行しました。
重要 : インストール時にvSphere Host Update Utility 4.0も併せてインストールしてください。
2. バージョンアップ時にはホストOSであるESXi上で動作するゲストOSを停止する必要があります。
またホスト側のESXiをメンテナンスモードに切り替える必要もあります。メンテナンスモードへの切り替えはvSphereClientを利用します。
メンテナンスモードに切り替えますか?と確認画面が出ますが気にせずメンテナンスモードに。
3. スタートアップメニューから vSphere Host Update Utilityを起動します。
起動後の画面は以下の通りです。
まず、VMwareからパッチをダウンロードします。
VMwareからパッチのダウンロードについて確認画面が出ますので、「はい(Y)」をクリック。
4. 対象ホストをクリックし、「ホストのパッチ処理」ボタンをクリックします
初めての接続時は認証を求められます。
5. 適用パッチ一覧が表示されます。「VMware ESXi 4.0 Update 1」が含まれていることを確認し「インストール」ボタンをクリックします
6. アップデートが完了するまで待ちます。途中ホストOSが再起動を行います。
7. アップデート作業完了後、ホストOSであるESXiのメンテナンスモードを終了します。
メンテナンスモードを終了後、ゲストOSのVMを起動していきましょう。











