[ちゃたろうふぁんくらぶ] > [ちゃたろう日記]

ちゃたろう日記
- ここは日々の取りまとめない思考を書き連ねた物です.
- ご問合せあればメールください.

calendar
<<   November 2009   >>
SUN MON TUE WED THR FRY SAT
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -

Search

archives
2017年
2016年
2015年
2014年
2013年
2013年11月の日記
2012年
2012年12月の日記
2011年
2011年5月の日記
2011年4月の日記
2010年
2010年4月の日記
2009年
2009年12月の日記
2009年11月の日記
2009年10月の日記
2009年9月の日記
2009年8月の日記
2009年7月の日記
2009年6月の日記
2009年5月の日記
2009年4月の日記
2009年3月の日記
2009年2月の日記
2009年1月の日記
2008年
2008年12月の日記
2008年11月の日記
2008年10月の日記
2008年9月の日記
2008年8月の日記
2008年7月の日記
2008年6月の日記
2008年5月の日記
2008年4月の日記
2008年3月の日記
2008年2月の日記
2008年1月の日記
2007年
2007年12月の日記
2007年11月の日記
2007年10月の日記
2007年9月の日記
2007年8月の日記
2007年7月の日記
2007年6月の日記
2007年5月の日記
2007年4月の日記
2007年3月の日記
2007年2月の日記
2007年1月の日記
2006年
2006年12月の日記
2006年11月の日記
2006年10月の日記
2006年9月の日記
2006年8月の日記
2006年7月の日記
2006年6月の日記
2006年5月の日記
2006年4月の日記
2006年3月の日記
2006年2月の日記
2006年1月の日記
2005年
2005年12月の日記
2005年11月の日記
2005年10月の日記
2005年9月の日記
2005年8月の日記
2005年7月の日記
2005年6月の日記
2005年5月の日記
2005年4月の日記
2005年3月の日記
2005年2月の日記
2005年1月の日記
2004年
2004年12月の日記
2004年11月の日記
2004年10月の日記
2004年9月の日記
2004年8月の日記
2004年7月の日記
2004年6月の日記
2004年5月の日記
2004年4月の日記
2004年3月の日記
2004年2月の日記
2004年1月の日記
2003年
2003年12月の日記
2003年11月の日記
2003年10月の日記
2003年9月の日記
2003年8月の日記
2003年7月の日記
2003年6月の日記
2003年5月の日記
2003年4月の日記
2003年3月の日記
2003年2月の日記
2003年1月の日記
2002年
2002年12月の日記
2002年11月の日記
2002年10月の日記
 Gavotte RAMDiskとRamPhantom ■
day : 2009/11/11  url : https://old.chatarou.net/diary/200911.html#11  あめ
僕は今まで,RamPhantomの愛用者だったけど,今回Gavotte RAMDiskに乗り換えてみた.
RamPhantom愛用暦は長くて,バージョンが1の頃から愛用していたのだけど,今回,RamPhantom7が出て,入れ替え等々しているうちに,今までずっと懸案だった項をGavotteで解決できることが分かったので.
そこで,両者の比較とGavotte用のちょっとしたtip等々をつらつらとまとめてみた.

【RamPhantomとGavotteの違い】
基本的に,どちらもメインメモリ(さらに言うなら32bitOSの管理外のメモリを)HDDドライブの用に見せかけて利用できるソフト.
端々を見れば細かい違いはあると思うけど,基本的にはメインメモリをHDDのように使うことで,高速なストレージに見せかけることが出来る,と言う点では同じ.
実際のアクセス速度は,RamPhantomとGavotteでは若干違うらしい.環境によりけりだけど,RamPhantomの方が速いことが多い?(とは言え,どっちも普通のストレージに比べれば文字通り桁違いに速いので,多少の数字の大小を言うのもどうかと思う.)
で,実際に使い込んでみてクリティカルに違うという点を並べていくと,

■RAMディスク内ファイル保存(退避)機能について
当たり前だけど,市販ソフトであるとことのRamPhantomの方がセットアップははるかに楽.RAMディスクと言うのは基本的にPCの電源を切るとそのディスクの中身は失われてしまうものなのだけど,RamPhantomは設定ボタン一つで,ログオフ時に退避したり,CPUアイドル時に退避したり出来る.
Gavotteでも,バッチファイルを書いてやれば不可能ではないが,敷居が若干高い印象を受ける.また,Gavotteでも逐次バックアップや一定時間バックアップは可能だろうだけど,CPUアイドルに連動のような便利かつ楽な機能はないだろう.
ただし,バックアップ方式の違いから,別の違いが出る.RamPhantomのバックアップは文字通りドライブイメージをそのままバイナリで保存するのに対し,Gavotteの場合は通常,ドライブ内ファイルを書庫に固めて保存する,と言う仕様になる.
そのため,バックアップファイルの数とサイズを見ると,RamPhantomでは作成したドライブのサイズ(空き容量等無視して)のサイズになる.例えば,5GBのRAMディスクを作って100MB程度実際に埋まっているケースを想定すると,RamPhantomではバックアップイメージは5GBになる(実際には,FAT等の制限からか,約2GB毎にファイルを分割するので,2+2+1GBの3ファイルできる).一方で,Gavotteの場合は100MBを圧縮書庫にしたサイズに相当するバックアップイメージしかない.
このため,バックアップ先のファイル容量を見ると,Gavotteの方がドライブに優しい.
また,RamPhantomは毎回起動時に,ドライブサイズのイメージを読み込むので,起動に時間がかかることが多い.(これはGavotteでドライブ内の実体使用サイズが大きければ大差はない)
一方で,毎回終了時は,RamPhantomはバイナリ比較で差分だけバックアップし直す.Gavotteでは毎回ドライブ全体をアーカイブし直す.
以上の事から,以下のような違いが発生する.
・RAMディスクに置くのは一時ファイルばかりで,置きっぱなしのファイルが少ない場合は,Gavotteの方が起動/終了共に短時間で済む.
・RAMディスクにかなりのファイル(実行ファイルとかデータとか)を置きっぱなしにする場合は,RamPhantomの方が起動/終了共に短時間で済む.
・起動中にRAMディスクの書き換えが頻繁に発生している場合,RamPhantomは終了時に時間がかかるようになる(Gavotteでは最終的なトータルファイルサイズのみに依存する).
・起動するRAMディスクのサイズが大きい時は,RamPhantomは起動時に時間がかかる(Gavotteではディスクサイズではなくトータルファイルサイズに依存する).

※尚,ページファイルは保存対象にならないので,Gavotte上に大きなpagefile.sysがあっても保存イメージが膨らむ事はない.一方でRamPhantomは根本的な性質としてページファイルをおくことが出来ない.

■RamPhantomとGavotteの発生的な違い
RamPhantomは,あくまでWindowsOSの上で起動するアプリの一つ.一方で,Gavotteは仮想的なデバイスとして存在する.
そこで,各々の起動するタイミングを比較すると,
・RamPhantomはログイン後,スタートアップアプリの一つとして起動し,イメージを全部ロードし終えるとディスクが認識される.
・Gavotteはログイン前に既にrdutilでレジストリに書き込んだ分のフォルダツリー等のイメージはロードされている(退避ファイルはログオンスクリプトとして実行されるので,起動直後まで読み込みは一応続く).

この為,RamPhantomはログイン画面が出るまでは速いが,ログオン後に待たされる.Gavotteはログイン画面までに時間がかかるが,ログオン後は殆ど待ち時間無し.※尚,前述のロードイメージの違いから,トータルの待ち時間は常にRamPhantomの方が多いはず.
また,上記違いから,Gavotteの方が『仮想的』とは言え,一つのデバイスとしてのイメージにはより近いので,
・RamPhantomにはページファイルが置けない(例え管理外領域メモリであっても).Gavotteはページファイルをおくことが出来る.
・環境変数TEMP/TMP等をRAMディスクに向けると,スタートアップアプリがテンポラリ領域を使用する際に,RamPhantomではエラーが記録されることが多い(実際に,僕の環境では,無視できるとは言え,avastの起動時警告がRamPhantomでは毎回記録されていた).

…等々から,RamPhantomの方がイージーに使える一方で,設定を作りこむにはGavotteの方がより深い作りこみを行える.
僕は環境変数はRAMディスクに向けたいし,起動時の待ち時間が少ない(かつ,ログオンした後に砂時計マウスカーソルを見るのはあまり好きではなかった)等々の理由で,RamPhantomからGavotteに乗換えを決心した.

※オマケ
■原因不明の違い
まあ本質的に意味はないのだけど,RamPhantomはXP標準のデフラグが実行できる.が,何故かGavotteはデフラグ画面やディスクの管理画面でドライブとして認識されていない.これは僕の環境固有の問題なのか,Gavotteの成り立ちに関わるものなのか原因を突き止められなかったが,なんとなくデフラグ画面に認識されて,爆速のデフラグが出来る(笑)RamPhantomの方が良かった.


【Gavotteを使う上でのTips】
GavotteはあくまでRAMディスクを作る事のみに特化したシンプルなツールなので,イメージバックアップ等,細かいセッティングは自分で考えなくてはならない.※とは言え,実際にはまとめサイトが存在するので,見よう見まねでもなんとかなる.
で,以下は僕なりにこうした方が良かろう,と言う手順のメモ.

■インストール時の手順
まず,Gavotteをインストールしたら再起動.で,再起動後しょっぱなに以下のコマンドを書いたバッチファイルを実行(僕はRAMドライブはR:にドライブレターを当てている).
@RamDriveRenew.batなどと記述して実行

FORMAT R: /FS:NTFS /V:RAMドライブ /Q /X /Y
CHKDSK R: /L:2048
CACLS R:\ /G BUILTIN\Administrators:F

MKDIR R:Desktop
MKDIR R:TEMP
MKDIR R:\TEMP\SYSLOG
MKDIR R:SPOOL
rdutil link C:\Windows\Temp TEMP
rdutil R: registry
@pause

バッチファイルでは,RAMドライブをNTFSでフォーマットした後,必要なフォルダを作り,その内TEMPフォルダにはWINDOWS/TEMPからのジャンクションをはり,最終的に状態をレジストリに記録させている.
最後のレジストリ登録で,記録失敗するときがあるけど,そしたら再起動してバッチファイル実行し直しを繰り返す.
そして,バッチファイル実行が終わったらいったん再起動.その後,環境変数をRAMドライブに割り当て,ページファイルをRAMドライブに割り当て,IEテンポラリのターゲットをRAMドライブに向ける作業を行う.
アンインストールしたり,失敗してやり直すときは,環境変数・ページファイル・IEテンポラリを必ず外して再起動してから作業をすること(もちろん,アンインストール後はjunctionも削除する).特に,環境変数etcをRAMディスクに向けているとロックがかかってrdutilコマンドはほぼ実行できなくなるので,地道に毎回手動で全部指定を外すこと.
尚,Gavotteの場合は,『rdutil registry』で登録した分に関しては,OS起動中のデバイス認識時に読み込まれるようだ.なので,システムログやデスクトップフォルダ等は予めレジストリに登録しておかないと,起動時にシステムエラーを引き起こす可能性が高い.一方で,レジストリに登録できる量があまり大きくない(パッキングされたイメージサイズで64KB以下?)ので,フォルダツリー構成だけレジストリに登録しておくのが無難かと思う.
(※参考までに,僕はイベントログをRamDriveに書き出す設定に変更した.このとき,R:\TEMP\SYSLOG等の様なイベントログを書き出すフォルダを事前にrdutilに登録しておかないと,移動できないので注意.また,イベントログ自体は毎回再起動で全て消えてしまう.試していないが,おそらくファイル実体を作成してレジストリ登録は不可能だろう.ログファイルのサイズ下限が64KBな上,圧縮して格納できたとしても毎回イベントログサービスが起動する時に存在するファイルは前回シャットダウン時のファイルではなくなっているから.)

■起動・終了時のバッチ
結局,まとめサイトのほぼコピペだけど,以下のバッチをC:\WINDOWSフォルダ下に置いて,シャットダウン/スタートアップスクリプトとして実行している.
@RamDriveStart.batなどと記述

@ECHO OFF
SETLOCAL
SET RAMDrive=R
SET BackupFileName="C:\WINDOWS\RAMDriveBackup.zip"
SET SevenZipDir=C:\Program Files\7-Zip
IF NOT EXIST %RAMDrive%:\ GOTO END
IF NOT EXIST コckupFileName% GOTO END
"%SevenZipDir%\7z.exe" x -aoa -y コckupFileName% -o %RAMDrive%:
:END
ENDLOCAL


@RamDriveEnd.batなどと記述

@ECHO OFF
SETLOCAL
SET RAMDrive=R
SET BackupFileName="C:\WINDOWS\RAMDriveBackup.zip"
SET SevenZipDir=C:\Program Files\7-Zip
IF NOT EXIST %RAMDrive%:\ GOTO END
"%SevenZipDir%\7z.exe" u -tzip -mx1 -aoa -r -ssw -y -up1q0r2x1y2z1w2 コckupFileName% %RAMDrive%:
:END
ENDLOCAL


また,何度も試行錯誤している際に,『RAMドライブのごみ箱が壊れる』事象が発生した.これは,バックアップ時にRAMディスクのrecycledやrecyclerフォルダを取り込む(これらのファイルは,通常は見えない)際に失敗すると発生するようなので,一度この異常が起きたら,起動/終了のバッチをいったん削除して再起動してあげることで解消された.(再起動の結果,失われるRAMディスク内のファイルは,起動後にRAMDriveBackup.zipを解凍し,自分でコピーして復活させてあげる.)
※加筆訂正.デスクトップをRAMドライブに向けると,起動時にRAMドライブのごみ箱が壊れてしまう現象からは不可避のようだった.エラーメッセージが出て,一度ごみ箱が再作成されると,再起動するまではエラーメッセージは出ないので,再起動の頻度が少ない人は諦めて毎回おまじないだと思ってごみ箱の修復を,エラーが嫌ならデスクトップ(等,ドライブをまたぐ特別なフォルダやジャンクション等)の設定は避けるべし.

■デスクトップをRAMディスク上に展開させる
デスクトップに関しては,まとめサイト等で以下のバッチを利用する方法が紹介されている.

rdutil link "%SystemDrive%\Documents and Settings\<ユーザー名>\デスクトップ" DESKTOP
rdutil R: registry
@pause

を『別ユーザアカウント』で実行してあげる方法が出ていたが,これがうまく行ったり,失敗したりが多い(特に,junctionをはった後にレジストリ登録を忘れると不具合が発生しやすい).僕の場合,結局,一見うまく行っても今度はごみ箱でフォルダが捨てられなくなるトラブルが発生し,解消しなかった(これは既知の問題らしいが,解決策が見当たらなかった).
ので,junctionをはるのではなく,直接『デスクトップフォルダのターゲットをRAMディスクに振り向ける』事で回避した.
具体的にはレジストリの
[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders]の"Desktop"のターゲットを変更するのだけど,僕はTweakUI XPで変更した.TweakUIでも,起動時最初のごみ箱操作に失敗すると言う弱点はあるものの,junctionと違ってユーザアカウントを変更して作業する必要はない.

 さよならT761 ■
day : 2009/11/5  url : https://old.chatarou.net/diary/200911.html#5  はれ
今日,ついにNANAOのCRT,T761を処分した.
中古でネットオークションで処分しようかと思ったけど,今時,いくらかつての高級CRTと言っても殆ど値段が付かないだろうし,デカくて配送時にトラブっても面倒だし,かと言って廃棄するにはもったいないし…と言うことで,PC用品無料引取りのところへ送り出してしまった.
どこかでなんらかに生き残って,役に立ってくれるといいなあ.

後釜はL997がしっかり引き継いでいるので問題なし.


javascript,cookieをONにしてもらえると(とくにちゃっと・掲示板で)ありがたいです.
email
(spam対策のため、画像表記になっています。上記アドレス宛にはspam判定が厳密に行われますので、正しく受信されないおそれがあります。)