orz記録

おうちとかいしゃのシステム技術のことを中心に書いていこうと思っています。

2011/02/22 23:26 【P2V】P2V後にpcAnywhereが動作しなかったのさー。

P2Vやった後に、pcAnywhereが動作しなかったことがあって、慌てて何とかしたときのメモがあったので、上げておこ。

■現象
P2V後(VMwareToolsインストール後)に、P2V前には起動時にサービスとして
立ちあがっていたSymantec pcAnywhereが立ち上がらなくなっていた。
手動で起動しようとすると、以下のメッセージが表示され、立ち上がらなかった。
「pcAnywhereドライバをロード仕様とする間に原因不明のエラーが起きました。」

調査してみると、以下の現象と同様のようだ。
http://qa.itmedia.co.jp/qa3628732.html

■環境
Windows 2003 Server Standard
pcAnywhere(バージョンは失念)

■原因
不明だが、P2VなどでSIDが変更されると、起動できないらしい。

■対処
レジストリの変更が必要。

1.以下のレジストリキーを開く
HKEY_LOCAL_MACHINE>System>CurrentControlSet>Services>AWHOST
2.右側のペインで、Startをクリック
3.DWORD型の変数ValueDataを1に変更(ちなみに、現環境では0004だった)→OK

参考情報
http://service1.symantec.com/SUPPORT/pca.nsf/docid/2003082808432312?Open&docid=2003112109262212&nsf=pca.nsf&view=docid
http://www.symantec.com/connect/forums/unknown-error-occurred-while-trying-load-pcanywhere-drivers

では、またー。

2011/02/06 21:48 【P2V】ddによるP2Vのやり方(Linux限定)

だーいぶ前に、VMwareConverter使わなくても、VMwareのP2Vなんてできるよーんと書いた記憶があって、いつか紹介しますよーなんて書いていたのですが、忘れていました。

以下、手順。
準備物
・CentOSのCD2枚(KNOPPIXでもOKでしょう)。ここではCentOS3.9Serverを2枚用意しました。
・P2Vするマシン同士のネットワーク接続(なるべくなら直結に近いほうがよいです)
・移行元と移行先で通信するためのIP2つ

説明がややこしくなりそうなので、
P2Vされるマシンを移行元、P2Vで乗っけるマシンを移行先と呼ぶことにします。
移行元のIPは192.168.1.100、移行先のIPは192.168.1.200とします。
移行元、移行先ともに、ディスクは/dev/sdaとします。
HPのサーバとかだったら、/dev/cciss/c0d0とかに読み替えて下さい。

■移行先のマシンの操作
1. 移行先の仮想マシン作成
移行先の仮想マシンを作成します。
HDDは移行元の容量の同等以上のサイズを準備。

2. 移行先のマシンをCDからブート
CentOSを入れ、CDからブートします。
ブート画面で、linux rescue
と入力し、レスキューモードで起動します。
ファイルシステムをマウントする時は
Continueを選択します。
IPを192.168.1.200でつけます。

3.ncコマンドにてデータ受信準備完了。
プロンプトが出たら、以下のコマンドで、データ受信の準備が完了します。
# nc -l -p 9999 dd of=/dev/sda bs=128M

ncはlinuxでのnetcatコマンド。-lオプションでリッスン、-pオプションでポート番号を指定。
ddコマンドのbs=128Mは経験から何となくそのほうが良さそうだから。意味ないかもしれないけれど、デフォルトよりは転送は早いはず。

■移行元のマシンの操作
1. CentOSを入れ、CDからブートします。
ブート画面で、linux rescue
と入力し、レスキューモードで起動します。
ファイルシステムをマウントする時は、
readonlyを選択します(移行元マシンのファイルシステム保護のため)
IPを192.168.1.100とします。

2. データの転送
以下のコマンドで、データを丸ごとコピーします。
コピーの前に、Pingとかで疎通できることを確認しておきましょう。
# time dd if=/dev/sda bs=1M nc 192.168.1.200 9999 &
ハードディスクがガリガリ言い出したら、転送が始まっている証拠です。
すぐに終わっちゃったら、コマンドが間違ったりしてます。見直しましょう。

3. ファイル転送まで待つ
ファイル転送まで待ちます。転送時間は、ディスクの速度や、ネットワーク速度に依存します。
ddコマンドでデータ転送をしていると、終わるまでプロンプトが帰ってこないので、どのくらい進んでいるのか心配になってきます。
進捗状態を知りたい時は、以下のようにすると良いです。
ddを実行しているプロセスを探します。
# ps aux grep dd
プロセスを見つけたら、ddを一時的にスリープさせて進捗を見ます。
# kill -USR プロセスID;sleep 1
転送されたブロック数が表示されます。
今回の場合は、1Mで転送しているので、ブロック数×1Mで何MB転送済み可が分かります。
※たしか、ddコマンドって、進捗が見れるようなパワーアップした物があったような。まぁ、いいですけど。

ちなみに、timeコマンドをかましているのは転送が終わったときに、時間を測る手間が省けるからです。

4.ファイル転送の完了。
ファイルの転送が完了すると、timeコマンドの結果が表示されますので、記録しておくとよいでしょう。
あと、転送先のマシンの方も、プロンプトが返ってきます。
これで、転送元マシンの作業は終了です。CDを取り出して、リブートしましょう。

■移行先マシンの操作
5. もっかいレスキューモードで再起動
データ転送が終わったら、もう一回レスキューモードで再起動しましょう。
この段階では転送先マシンは起動しないので。
転送がされていることを確認したかったら、dfコマンドでも一回打って確認してもいいかもね。
さらに心配だったら、現在の状態をVMwareでスナップショット取っておいてもよいかもね。

レスキューモードで起動したら、ディスクをマウントするか聞かれるので、
continue
で/mnt/sysimageにマウントしましょう。最初の起動時はパーティションテーブルも定義していなかったから、
ワーニングの表示が出ますが、今回はマウントするように表示が出るはず。

6. ルートディレクトリ変更
別に必須じゃないですが、わかりやすく作業するために、ルートディレクトリをマウントポイントに変更しておきましょう。
# chroot /mnt/sysimage

7. ファイル編集、initrd再作成
/etc/modules.conf(kernel2.4の場合)、/etc/modprobe.conf(kernel2.6の場合)のファイルを編集します。
編集する場所は、alias scsi_hostadapterの行です。
# vi /etc/modules.conf
転送したLinuxOSがRedHat7,8,9系で古い場合は、以下のscsi_hostadapter行を以下のように編集。
alias scsi_hostadapter BusLogic
比較的新しいLinuxOSがRHEL4,5系の場合は、以下の用に編集。
alias scsi_hostadapter mptscsih
scsi_hostadapter行がない場合は、追記します。

あと、移行元のマシンがHPのサーバだったりした場合は、以下のファイルを修正しておきます。
/boot/grub/device.map
/etc/fstab
/etc/sysconfig/grub
cciss→sda

次に、initrdを再作成します。
# cd /boot
# mv initrd-2.4.xx-x.img /tmp/
# mkinitrd initrd-2.4.xx-x.img 2.4.xx-x
カーネルバージョンのところは、移行先のカーネルバージョンに合わせます。

8. CDを抜いて、通常の再起動とkudzuによるハードウェアの整理
CDを抜いて再起動します。
次はカーネルパニックにならずに、起動します。
kudzuをONにしておくと、ハードウェアの変更を検出してくれるので、表示される画面にしたがってハードウェアを変更していきます。

9. VMware-Toolsのインストール
忘れずにVMware-Toolsをインストールします。
OSがRedHat9とか、RHEL3だとインストールに失敗することがあります。
その時は、以下のファイルを編集して、再度やってみます。
vi /etc/sysconfig/i18n
ja_JP.eucJP→C
ja_JP.eucJP:ja_JP:ja→C

以上で移行作業は終わりです。
さて、ここまでで移行は完了するのですが、ddコマンドを使用すると全量コピーになってしまいます。つまり、使っていない部分も全部コピーするので、VMwareのシンプロビジョニングが効かないことになります。

が、実はシンプロビジョニングを活用するやり方もあります。
やり方は結構単純で、sfdiskでパーティションテーブルダンプして、dump/restoreコマンドを使用します。
今までのコマンドを再利用してやればよいだけです。ファイル分だけコピーされるので、よいかもしれませんねー。

では、またー。

2011/02/06 19:43 USBメモリにTinyCoreをインストール

うちにあるEeePCに軽量なディストリビューションを入れようと思っているうちに、なぜか趣旨が変わってしまいました。
結局は目的は果たせたのでよいのですが・・・。

さて、タイトルについての手順です。結構ハマりましたので、備忘録取ります。
実現方法は以下の通りでした。
1.最初Syslinux付属のExtlinuxコマンドを使ったけれど、失敗。
2.grubを使ったところ成功。参考になるサイトもあったので。

TinyCoreの日本語版は、sourceforgeから手に入れることができます。
http://sourceforge.jp/projects/tinycore-jp/

参考にしたサイトはココ。
http://wiki.tinycorelinux.com/tiki-index.php?page=Installing+TC+on+USB#Installing_to_USB_with_GRUB_under_a_Linux_distro

以下、手順。
1. USBメモリを初期化。
USBメモリが/dev/sdbで検出されたとして
パーティション(/dev/sdb1)と、ext3でファイルシステムまでは作っておく。
# fdisk /dev/sdb
パーティションテーブル作成はm:(ヘルプ)を見ながら実施。
ファイルシステム作成
# mke2fs -j /dev/sdb1

2. TinyCoreのisoイメージをUSBメモリにコピー
TinyCoreイメージマウント用のディレクトリ作成
# mkdir /mnt/isoimage
USBメモリコピー用ディレクトリ作成
# mkdir /mnt/usb

それぞれマウント
# mount -o loop tc-3.4-jp-pizza.iso /mnt/isoimage
# mount /dev/sdb1 /mnt/usb

丸コピー
# cp -var /mnt/isoimage/* /mnt/usb/
# ls
NetBook-Tips.utf8.txt Readme.utf8.txt WPA-Tips.utf8.txt boot lost+found omake tce

3. grub-installコマンドでgrubをインストール
grub-install --root-directory=/mnt/usb /dev/sdb

そのままgrub-installコマンドを実行すると以下のメッセージが表示されて失敗します。
/dev/sde does not have any corresponding BIOS drive.
/boot/grub/device.map ファイルを書き換えます。
(hd0) /dev/sda

(hd0) /dev/sdb
に書き換えて再度実行。成功するはず。

もしかしたら、--root-directoryオプションはいらないかも。

4. menu.lstファイルを作成
grub.confかmenu.lstを/mnt/usb/boot/grub/ディレクトリ以下に作成する。
元ファイルは/boot/grub/grub.confからコピーして来ると楽。
作成したファイルを以下に晒しておく。
[root@sperion grub]# cat grub.conf
hiddenmenu
title tinycore
root (hd0,0)
kernel /boot/bzImage root=/dev/sda1
initrd /boot/tinycore.gz

5. 起動の確認
/mntディレクトリ以下を忘れないうちにアンマウントしとけ。
USBメモリで起動をかけて、grubのstage2画面が出ればおめでとさん。出ない場合はgrub-installかgrug.confファイルの記述が間違っている可能性が大。

ほいじゃ。またー。

2011/02/06 13:13 ls -lコマンドで

ls コマンドを叩いてみたら、何だこりゃ?って思ったことがあったので。
# ls -l
合計 16
drwxrwx---+ 9 root root 4096 2011-01-26 23:20 VirtualMachines

"+"ってなに?
同じ疑問を持っていた人がいました。

ls -lで表示されるモードの11桁目
http://bkclass.blog.ocn.ne.jp/blog/2009/11/ls_l11_f817.html

aclですか。あくせすこんとろーるりすと、ですか。納得。