2007/12/24

LVMスナップショットのマウント

LVMスナップショットを利用してDBのバックアップスクリプトを作成中にちょっとつまずいたのでメモ

まず一つ目、"xfs_freeze中にはLVMスナップショットは作成できない"

LVMのスナップショット作成時に、キャッシュ中のデータとかがあるとデータの不整合が発生するので、出来れば確実にディスクに書き込まれた状態を保証したい。そのためにxfs_freezeを使おうかと思ったが、zfs_freezeをしてしまうと、スナップショットが作成できない。(コンソールが帰ってこなくなる)

別のコンソールでxfs_freezeを解除してやればスナップショットは作成できるが、思った動作とは違う。

どうやら、Kernel2.4と2.6ではLVMスナップショットの動作が違うようだ。今回はkernel2.6なので、xfs_freezeを使わずに、DBを止めてバックアップすることにしよう。(別にいい方法があればそっちを検証してみるが・・・)

二つ目は"スナップショットをマウントしようとしたらuuidの重複でマウントできない"

コレは簡単、マウント時のオプションにuuidを無視するnouuidをつけてやるだけ。ついでに、roオプション(読み取り専用)を付けておく。

mount -t xfs -o nouuid,ro {デバイス} {マウントポイント}

2007/11/17

VMWarePlayerのビープ音を消す

Windowsのビープ音を消して、ボリュームコントロールで音量もミュートにしてもVMWare Playerのビープ音が消せなかったので、メモ

設定ファイルを編集するとビープ音が消せる
C:\Documents and Settings\[User Name]\Application Data\VMware\preferences.ini
mks.noBeep="TRUE"

Linuxならここらへんの設定を編集するといいらしい
/etc/vmware/config
~/.vmware/preferences
~/.vmware/config

2007/11/04

Linuxでもトラックポイントを使えるようにする

Think Pad X31にUbuntu 7.10をインストールして使うとトラックポイント自体は問題なく使えるんだが、センターボタンを使ってスクロールが出来なかった。設定を変更して使えるようになったのでメモ

編集するファイル
/etc/X11/xorg.conf

編集内容
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"

Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "EmulateInertia" "50"

EndSection

(赤文字部分が追記部分)

あとはXの再起動で使えるようになる

参考にしたサイトはこっち
http://www.nurs.or.jp/~sugi/tp-track.htm

2007/04/15

ログオフ or 電源オフに時間がかかる

Windowsのログオフや電源オフの時間がかかるようになって、イライラしてきた。
調べてみると、どうやらレジストリのタイムアウト待ちが原因のようだ。
なので、こいつをインストールして解消できた。

==User Profile Hive Cleanup Service==
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=1b286e6d-8912-4e18-b570-42470e2f3582

詳細についてはこっちを参照

==プロファイルのアンロードに関する問題のトラブルシューティング==
http://support.microsoft.com/default.aspx?scid=kb;ja;837115

2007/04/12

Windows Updateが上手く動かない

同僚がWindows Update が上手く動かず(CPU 100%で固まる)悪戦苦闘していた。いっしょに調べていていくつか原因のようなものを見つけたのでメモ

  1. cygrunsrvを動かしている
  2. MS Office 2003が入っている & Microsoft Update を使っている
  3. その他
まずは1番目、cygwinのデーモンをWindowsサービスに登録して動かすためのツール"cygrunsrv"がサービスとして動いているとWindows Update が上手く動かないことがあるらしい。ただ、サービスを停止してしまえばいいらしいので対応は楽。ただ、同僚のマシンにはcygwin自体がインストールされていなかった

2番目の"MS Office 2003が入っている & Microsoft Update を使っている"場合はパッチがあるようなので、それをダウンロードして、インストールしてみる。原因はSvchostがCPUを100%使い切ってしまうためらしい。

ただ、このパッチをインストールするために、Windows Installer をアップデートする必要があるので、要注意!

==ホットフィックス パッケージ 916089 を適用した後に、 Windows Update から更新をインストールするとき、アクセス違反が表示されます。==
http://support.microsoft.com/kb/927891/

==Windows インストーラ 3.1 v2==
http://support.microsoft.com/kb/893803/

ただ、このパッチを当てても問題は解決しなかった

3番目のその他として、時刻がずれているとWindows Update に失敗するので同期を取ったり、ウイルス対策ソフトの設定をデフォルトに戻したりと色々やってみたが、まったく効果なし。ただ、何度か繰り返していると上手くWindows Update が出来てしまった。原因がつかめないまま終わったので、どうも釈然としない。

2007/04/11

マクロ関数!=関数

同じような処理(構造体にデータをセットして関数に渡すだけ)をソースのあちこちでやっていたので、マクロ関数を定義して読みやすくしてみた。関数を新しく作っても良かったが、引数の数が多くなりそうだったので、マクロ関数にした。

C言語のマクロ関数はただ単にプリプロセッサで文字列の置換がされるだけなので、型チェックや変数の値とかに注意する必要はあるけど、使うのは簡単(使い方を誤ると副作用もでかいけど・・・)

普通の関数と違って、ポインタ渡しで渡す必要が無かったり、戻り値が取れないとか使い所を分けてやる必要があるけれど、これってCの初歩じゃないのか?

2007/04/07

portupgradeの場所が変わってた

portupgradeのports Collectionでの場所が変わっていたのでメモ

/usr/ports/UPDATING の記述によると2007/2/5にはすでに変わっていたみたい・・・orz

新しい場所は、 ports-mgmt/portupgrade なので、sysutils/portupgradeを探しても見つからないわけだ

2007/03/13

Windows2000から Vistaへのアップグレードメモ

Windows 2000(W2k)からWindows Vistaへアップグレードしようとしたときに、いくつか躓いたのでメモ

  1. VistaのアップグレードにはHDDにインストール済みのWindowsが必要
  2. Vista 64bit は、インストールDVDからブートしてインストールする
  3. Vista 32bit は、Windows2000から直接インストールできるが、アップグレードではない
  4. Vista 32bit から64bitへのアップグレードは出来ない?
  5. Vistaでパーティションを切るとW2kのインストーラーから正常に見えない
まず1番の"HDDにインストール済みのWindowsが必要"なのは、アップグレードの上で面倒だった。
W2kのアップグレード版なら、Win98のCDを途中で要求されるが、それさえクリアすればそのままインストールが続行できたので楽だった。だが、Vistaのアップグレード用のプロダクトキーだと、HDDにW2kが入っていないとインストール出来なかった。なので、余っていたW2kのライセンスを使って新しいマシンにVistaのアップグレード版を入れようとするとインストールが面倒なので注意!

2番目は、W2kから64bit版Vistaへ移行しようとするには、VistaのインストールDVDから起動する必要がある。32bit版Vistaは、インストールDVDをW2kが起動しているときに入れてウイザードに従えば出来るから、セットアップ手順が異なるので気をつける。特に、64bit版のインストールDVDを入れてもまったく実行が出来ないが、これは仕様らしい(DVDからブートしろという表示は出てこないのが、不親切 ただ単に、実行できませんとだけ表示される) 

3番目は、MSのホームページで表示されているのでパス。バックアップを取っておきましょう(w

4番目は、32bit版でインストールしてしまった後で、64bit版をインストールしようとしたら出来なかった。これはアップグレードにはならないからなのか?(Ultimate版同士だから?) 仕方が無いので、W2kをインストールしなおして64bitへアップグレードした。ついでに、同じマシンなのに32bit版でアクティベーションしてしまうと、64bit版ではすんなりオンラインでアクティベーションが通らなくなった。
どうやら同じマシンでも32bit版と64版では違うらしい

5番目が一番厄介だった。4番でも書いたが、インストールに戸惑って何度もVistaのインストーラーで操作したHDDにW2kをインストールしようとしたらトラブった。原因は、Vistaで作ったパーティッションをW2kのインストーラーは上手く扱えないこと。Vistaで一度綺麗にパーティッションを削除しないとW2kが上手くインストールできない。
ただ、VistaのインストーラーもW2kのインストーラでパーティッションを操作した後だと上手く操作が出来ない(Vistaのインストーラーがエラーを吐いて落ちる)ので、W2kもVistaもインストール出来ないHDDになってしまう(w

そういう場合は、LinuxとかのLiveCDで修復可能(今回はFreeSBIEを使用)
コマンドは下記のとおり
$ su -
# dd if=/dev/zero of=/dev/hd0 count=1m

countの値は結構適当(w ただ、つけないとむちゃくちゃ遅いので適当な大きさをつけておくこと
C+tで転送量とか見えるので、ひまなら時々押してみるのが良いかも