SAND STORM

あ そ ぶ

2012年3月2日

RAM diskを用いてWindowsを高速化

Filed under: 未分類 — Tags: , — sajin @ 17:19

RAM diskとは物理memory領域の一部をまるでdisk driveの様に扱うもので、同じRAMを用いたものでも元から独立したdriveとして作られたものはRAM driveやSolid-state driveと呼ばれる。

#一般向けに売られているものの大半はflash based SSD。RAMを用いたものはRAM based SSDで専門的な用途で使われる。

[Menu]

使用目的による最適なutility

Gavotte Ramdiskの入手

install – 32bit OS

install – 64bit OS

NTFS化

使用例

imageの保存と展開

Link

[用途]

左がHDDより遥かに高速なSSD、右がRamdiskだが桁違いに高速であることがわかる。ちなみにHDDだとsequential(連続領域の読み書き)でも100MB/sに届かず、512Kで30MB/s程度、4Kのrandom accessに至っては小数点以下にまで落ち込む。

Laptop harddisks (HDD, SSD) comparison – Notebookcheck.net Tech

通常のaccessが圧倒的に高速であるのみならず、random accessの高速さはdisk媒体が決して追いつくことができない。よって以下のような用途に向いている。

・temporary fileなど一時的に処理して、必要がなくなったらすぐ消すdataに最適

OSのTEMP,browserのcache,圧縮fileの保存と展開,setup programの一時展開など。OSやprogram本体、保存してずっと使っていくdataなどには向かない。それらの高速accessを求めるならSSDなど電源が切れても飛ばないhardwareを求めた方がいい。

・仮想memoryであるpaging file(pagefile.sys)の割り当て先

32bit OSでも実質的にmemory空間の拡張が可能。

・頻繁に利用するprogramやtorrentなどでhostする際のrandomな場所を頻繁に参照されるdata

何度もrandom accessを行うならRAM上にあるに限る。ただしOS側のcacheやfetchがちゃんとしていればわざわざRAMdiskにしても意義は薄い。



[使用目的による最適なutility]

OS管理内(主に64bit OS向き。OSが使っているmemoryからRAMdisk用に確保する。OSが使用できるmemoryは減る。)

Buffalo RAMdisk utility (日本語で簡単。自動backup付き。ただし、除外や圧縮などはできない。長期間使っているとBSOD=blue screen of deathがたまに起きる。)

→Gavotte Ramdisk (64bit Vista以降ではdriverにpatchを当ててinstallする必要あり。難度は高いが柔軟な運用が可能。高速で安定性が高くBSODが起きない。)

OS管理外(32bit OSでは3.2GB以上のmemoryは物理的に存在しても使用されない。そのOSが使っていない遊んでいるmemoryをRAMdiskとして確保する。OSが使用できるmemoryは減らない。)

→Gavotte Ramdisk。以下を参照。


[Gavotte Ramdiskの入手]

1.Gavotte Ramdiskをdownload。v1.0.4096.5が最終。official siteはないが下のthreadが実質的な公式発表の場となっている。

【原创】ramdisk 驱动更新: 32位下使用全4G内存支持, v1.0.4096.4 @ ClassiClub ForuM

このutilityにはofficial siteがないので”gavotte+v1.0.4096.5″などで適当に検索して探す。中国語圏が元なので繁体字/簡体字が多い。軟件=software,下載=download。05.23.2007より前のversioinは64bitに対応していないので使えない。

2.registryの適用

Windows Registry editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RRamdisk\Parameters]
“UsePAE”=dword:00000001

Gavotteに同梱されている上の中身が書かれたram4g.regを右clickして結合する。

32bit/64bitに限らず、上が適用されていないと機能しない。

Gavotteで生成されるRamdisk driveの容量やsizeは上のkey以下に登録される。


[導入 - 64bit OS]

1.Control panel > device manager > 一番上の自分のPC名をright click > legacy hardwareの追加

[一覧から選択したハードウェアをインストールする]>[すべてのデバイスを表示]>[ディスク使用]>[参照]>gavotteのfolderからrramdisk.infを開いて追加。

※この状態ではGavotteにはVista/7 64bitで強制される有料driver認証がないため”!”がついて使えない。下のDSEOでその回避を行う。

2.DSEOでdriver改変

Driver Signature Enforcement Overrider 1.3bをdownloadし、dseo13b.exeで

Sign a System File > %SystemRoot%\System32\drivers\rramdisk64.sys ※このpathの指定を誤るとOS起動時強制的にrecovery modeに入る。successfullyの表示はpath指定が合っていても合っていなくとも表示されるので信用ならない。

Enable Test Mode  (正規認証でないdriverでも使用可能にする。ただしtest markが表示される)

Remove Watermarks (test markを隠すprogramをdownloadできるsiteに飛ぶ)

を実施。再起動。

3.ramdisk.exeを実行

ramdisk.exeを管理者として実行し、Fixed Mediaの選択とsize選択を行ってまた再起動。

このtoolで設定できる容量は最大3GBに止まる。それ以上を設定したい場合やsizeが16MB以上にならない場合、

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RRamdisk\Parameters
“DiskSizeM”=dword:00000010
“DriveLetter”=”R:”

上のregistry keyのDiskSizeMを十進数(単位はMB)表示にして直接編集する。

知らないと損するWindows 7にGavotte RAMDISKを導入  – 画像付きで逐一説明してありわかりやすい。


[導入 - 32bit]

1.PAE(Physical Address Extension)を有効にする。

※PAEは32bit OSのmemory制限外を扱うためにつくられたもので64bit OSであれば必要ない。

物理アドレス拡張PAEを強制的に有効にする @IT

XPの場合

%SystemDrive%\boot.iniの

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect /usepmtimer

行に/PAEを追加し以下の様にする。

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional” /noexecute=optin /fastdetect /usepmtimer /PAE

7/Vistaの場合

Command promptを管理者権限で実行(アクセサリ>コマンドプロンプト>right click>管理者として実行、Windows key+R>cmd>Ctrl+Shift+Enterなど)して、

bcdedit /set pae ForceEnable

と入力(copyしてpromptの出ている場所にright click>貼り付けで可)しreturn。

正常に終了したらbcdeditでPAEがForceEnableになっていることを確認。

※いずれにせよPAEを有効にしたら再起動する。

2.ramdisk.exeを実行

ramdisk.exeを実行し、Fixed mediaでinstallする。※failedと表示される場合、right clickの管理者として実行するから起動する。

registryが正しく設定されていればどんなに小さくsizeを指定しようと、自動的に最大まで確保される。※registry指定が適切に行われていないと、Fixed Mediaで設定した時に指定した分の容量にしかならず、自動的に最大まで容量が確保されない。


[NTFS化]

Gavotteは初期状態でFAT32で、OSを再起動すると生成されたRamdisk driveは常にFAT32になる。

command prompt、もしくはbatch fileで

echo RAMDISK|convert R: /FS:NTFS /X

を実行。



[使用例]

page file(ページ・ファイル)をRam driveに移動

paging fileとはmemory領域が足らなくなった時にdisk上にdataを退避する機能で、大概OSと同じdriveにある為に、これが使用されるとかなりのperformance低下となる。

マイコンピュータ > プロパティ > 詳細設定 > パフォーマンス > 設定 > 詳細設定 > 仮想メモリ > 変更と選択して仮想メモリのwindowを開く。

ここで既存のHDD上にあるページングファイルをなしにして消去し、逆にRam drive上に作ればpage file使用に伴うperformance低下はHDDなどと比べ激減し、disk使用に伴う消耗もなくなる。

@IT:Windows TIPS — Tips:ページ・ファイルによるディスクのフラグメントを防止する方法

実質3.2GBに限られた32bit OSのmemory空間を拡張しながら、こういった古臭い問題と無縁になれるという訳だ。この処理を行った後、隠しファイルを表示してpagefile.sysを消せばdiskの空き領域も増える。

◇Temp folderをRam driveに設定

browserで何かfileを落としたり、setup programを起動したりすると一時fileは

%SystemDrive%\Documents and Settings\[user account]\Local Settings\Temp

に展開され、以後ずっと残ってしまう。これをRam drive上に移動するには、registry editorを開き

HKEY_CURRENT_USER\Environment\TEMP
HKEY_CURRENT_USER\Environment\TMP

上の二つの設定の中身をR:\Tempとして、両方Ram driveに変えてしまう。

◇Applicationの一時処理場所をRam driveに設定

・Internet Explore

インターネットオプション > 全般 > 閲覧の履歴 > 設定 > folderーの移動

でRam driveを指定。自動的にTemporary Internet filesが隠し属性で生成され、以後そこがCacheとして使われる。

・Firefox

URLを入力する場所にabout:configと入力し開く。「動作保障対象外となります」などと出るが無視して、「細心の注意を払って使用する」を押す。

ズラっと設定一覧が出るのでfilterにcacheと入力。browser.cache.disk.parent_directoryの設定をR:\Temporary Internet filesとでもしてしまえば以後cacheによるperformanceの低下とHDDの浪費はなくなる。もっともFirefoxはdefaultでcacheを作成せず、溢れない限りまずmemory上で済ませるようになっているのでわざわざramdiskにspaceを割くことはあまり意味がない。

browser.cache.disk.parent_directory to ram disk @ mozillaZine Forums

・Chrome

Chromeのshortcutをright clickで開き、chrome.exeの後に以下の様にcommand lineを付け加える。

chrome.exe --disk-cache-dir=”R:\TEMP\Chrome”

Google Chrome まとめWiki起動オプション既定のブラウザに設定時、他のアプリケーションからGoogle Chromeを起動した時に起動オプションを適用する

上の様にshortcutにcommand lineを付けるやり方や、registryを書き換えるやり方があるが、前者はそのshortcutから起動した時しか機能せず、後者は上手く働かない上に様々な問題を起こす。

よってJunctionを作成して、Chromeのcache folderを参照するとそれが自動的にRAMdiskに飛ぶようにする。

1.Junction.exeをここからdownloadし、解凍してできるjunction.exeをWindows\system32に置く。

2.Chromeを終了させ、%USERPROFILE%\AppData\Local\Google\Chrome\User Data\default\にあるCache folderを消去する。

3.Windows key+Rからcmd.exeを実行してcommand promptを立ち上げ、junctionを作成する。

junction.exe [junction directory] [junction target]

例:junction “%USERPROFILE%\AppData\Local\Google\Chrome\User Data\default\Cache” R:\TEMP\Chrome\

あらかじめtext editorで文章を書いてcopy、command prompt上でright click > pasteして実行する。

成功すれば%USERPROFILE%\AppData\Local\Google\Chrome\User Data\default\にCacheというshortcut fileの様なものが生成される。以後はprogramが%USERPROFILE%\AppData\Local\Google\Chrome\User Data\default\Cacheを触ろうとするとR:\TEMP\Chrome\に飛ばされる。前者にfileが作られることはなく、後者の中にだけfileは生成される。

※junctionをつくる前に、生成される側([User Accout]\~\Cache)が存在してはならない。?????????とerrorが出てjunctionを生成できずに終わるのであらかじめ消しておく。また、linkを貼られる側(R:\TEMP\Chrome\)がfull pathで存在していないと、Chromeは起動時に%USERPROFILE%\AppData\Local\Google\Chrome\User Data\default\Cacheにjunction linkを上書きして実folderを生成してしまうので必ずRAMdisk上のcacheを置く場所を予めつくっておく。

RD /S /Q “%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache”
MD R:\TEMP\Chrome_Cache\
junction “%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Cache” R:\TEMP\Chrome_Cache\

例えば上の文を書いたbatch fileを作ってstartupに入れておけば起動時に自動的にHDDなどのcacheを削除>folderが生成>junction作成が為されるので、Chromeに上書きされることはない。

http://d.hatena.ne.jp/sona-zip/20080514/

◇Programをramdiskにおいて高速作動

Junction/Symbolic linkを用いるので下の記事を参照してLink Shell Extensionを導入しておく。

Hard link,Symbolic link,Junction,Shortcutの差異

まずinstallした場所からprogram全体をfolderごと別の場所に移す。その移動先のprogram全体をramdisk上にcopyする(batchで起動ごとに自動的に行われるようにする)。そしてramdiskにおいたfolderをPick Link Sourceで拾い、もともとinstallした場所にJunction/Symbolic linkを置く。するとWindowsがもともとHDDにあったprogramを起動しようとするとramdisk上のfolderから起動するので高速になる。ただし、この場合logや保存したdata,設定などがそのramdisk上のfolder内に保存されるとresetされた場合などは当然それらは消えてしまう。



[Ramdisk imageの保存と展開]

Ramdiskは電源を切るとRAMがresetされてそのdataも消えてしまうのでshutdownやreset時はHDD/SSDなど不揮発性の記録媒体にimageを保存し、それを再起動後に展開しなければならない。

ImageXによる自動backupとrestore – 手動/自動での保存&展開、task schedulerによる定期backupの説明。



[Link]

Dataram RAMDisk – 64bit OS,自動backup/restore対応。4GBまでの制限版なら無料で使える。

RAMディスク導入ガイド── RamPhantom3とGavotte Ramdiskの使い勝手と性能 ──

 


関連記事

24 Comments »

  1. Buffalo RAMdisk utilityが64版WindowsやOS管理内もいけるということで試したが、
    M2R32-MVP機/6GB/Vista 32bitでOS管理内のみしか利用できない。つまり肝心の3.2GB外が死んでしまう。Buffaloのは一々設定するごとに再起動しなければならないし、OS管理外には向かないようだ。
    Gavottは自動backupがないし、ちょっと他のを試してみなければならない。

    Comment by sajin — 2011年5月28日 @ 21:27

  2. ImageX
    http://technet.microsoft.com/ja-jp/library/dd744377(WS.10).aspx
    を使うのがいいようだ。

    downloadはWindows 自動インストール キット (AIK)
    http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=C7D4BC6D-15F3-4284-9123-679830D629F2

    gavotte で作った ramdisk をイメージ化して高速バックアップ・リストア @ 虫けらロック
    http://d.hatena.ne.jp/miruto824/20090722/1248259141

    Comment by sajin — 2011年5月28日 @ 21:45

  3. 7/VistaにおけるPAE有効化手順

    Command Promptを管理者権限で実行(アクセサリ>コマンドプロンプト>right click>管理者として実行、ファイル名を指定して実行でcmd)して
    bcdedit /set pae ForceEnable
    と実行。正常に終了したらbcdeditでForceEnableになっていることを確認。

    再起動後、

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RRamdisk\Parameters]
    “UsePAE”=dword:00000001

    が記述されたreg(gavotteに同梱)を実行。

    http://www.jensscheffler.de/using-gavotte-ramdisk-in-windows-7

    Comment by sajin — 2011年5月28日 @ 21:59

  4. http://www.unawave.de/windows-7-tipps/32-bit-ram-barrier.html?lang=EN

    Kernelにpatchを当てて32bitで64GBまでOSがRAMを使えるようにしている。

    Comment by sajin — 2011年5月28日 @ 23:10

  5. RAMdiskは本当幾らあっても足らないぐらい使い勝手がいい。

    downloadしたfileはまずRAMdisk。同じ圧縮fileのあるHDDにそのまま解凍するとかなりの時間がかかるがRAMdiskからの展開なら最小の手間で済む。

    Frapsなどでscreenshotを撮るのもRAMdiskなら遅れが生じることもない。容量が大きければ動画だって有りだろう。

    imageXで起動時に大量のaccessが発生するprogramをRAMdisk上に展開、そこから実行すればHDDでは思いもよらなかったsmoothな実行が可能だ。

    torrentで何かをhostする時、HDDでやれば同時に数十のconnectionが発生し延々HDDを痛め続けることになるがRAMdiskならそんな心配もない。

    最近はRAMの値段も安くなってきたし、M/Bが許す量目一杯を積んでもまず損はない。

    Comment by sajin — 2011年5月29日 @ 09:30

  6. SSDもあれば完璧になりますね
    それこそ休止状態がいらなくなるぐらい
    (休止状態はページファイルに書き込むものだと思ってたので、RAM依存だとちょっと不安というのもある)

    Comment by nanashi — 2011年5月29日 @ 10:50

  7. OSやapplicationがtemporalな処理をRAM上で済ませることを前提としていない今の状態だと、SSDこそRAM diskを前提としないと危なくて長期間使えないhardだと思うなぁ。OSがRAM上を前提とした上で一括してTEMPを指定し、各applicationは優先してそれを用いるって形にならないと解消しない。

    ほとんどPCをshutdownしない(上にRAM diskを前提としている)自分の使い方だと、Gameとかdata系は物理的に別々のHDDにしているので今のSSDはそこまで魅力を感じない。SSDは256GB-500GB辺りの価格がもっと下がってlaptopで主流になってくれれば素晴らしいんだけど、今年はまだ厳しいだろうか。

    Comment by sajin — 2011年5月31日 @ 23:40

  8. Chromeのcache位置変更をregistryで行う方法は、registryのopen\commandがchrome.exeになっているのをすべて書き換えても機能しない。

    PATHの表名義と実体を書き換えるtoolを使うのが一番確実で手っ取り早いようだ。

    http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

    生成
    junction.exe [junction directory] [junction target]

    つまり、これで本名=本体となっているのを、別名=本体に書き換えてしまう。

    削除
    junction.exe -d [junction directory] [junction target]

    実体はR:\TEMP\Chrome\にあり、それを参照するjunctionがC:\Users\[account]\AppData\Local\Google\Chrome\User Data\Default\Cacheになければならない。

    junction.exe “C:\Users\[account]\AppData\Local\Google\Chrome\User Data\Default\Cache” R:\TEMP\Chrome\

    ※生成される側([User Accout]\~\Cache)が存在してはならない。?????????とerrorが出てjunctionを生成できずに終わるのであらかじめ消しておく。また、linkを貼られる側(R:\TEMP\Chrome\)がfull pathで存在していないと、Chromeは起動時に[User Accout]\~\Cacheにjunction linkを上書きして実folderを生成してしまうので必ずRAMdisk上のcacheを置く場所を予めつくっておく。

    http://d.hatena.ne.jp/sona-zip/20080514/

    Comment by sajin — 2011年6月9日 @ 18:39

  9. http://homepage1.nifty.com/emk/symlink.html
    http://e-words.jp/w/E382B7E383B3E3839CE383AAE38383E382AFE383AAE383B3E382AF.html

    Hard Link=fileに対する同格本名の増設
    Soft Link/Symbolic link=file/directoryを参照する別名の入ったfileを生成し、以後それ経由で本名経由とまったく同じ操作が行え得る。
    Shortcut link=file/directoryを参照するfileを生成するが、それは本名を格納しているだけで、別名を増設する訳でもなんでもない。
    Junction=Symbolic linkの制限版。Windows 2000-XPまではこれしか使うことができなかった。

    Comment by sajin — 2011年6月9日 @ 18:41

  10. Junctionというのは存在としてはshortcut linkに近い。
    junction.exe “C:\Users\[account]\AppData\Local\Google\Chrome\User Data\Default\Cache” R:\TEMP\Chrome\

    で作成すると、C:\Users\[account]\AppData\Local\Google\Chrome\User Data\Default\CacheにCacheという名前のshortcutのようなものが作成される。そこをOSなりprogramなりが参照するとR:\TEMP\Chrome\を操作することになる。

    Comment by sajin — 2011年6月10日 @ 09:05

  11. BuffaloのRAMdisk utilityなどは自動でramdiskの保存復旧を行ってくれるが、特定のfolder/fileを除外するといったことはできない。
    この場合、保存と復旧がまったく不用なtemporaryやcacheに対しても行われてしまう。

    Comment by sajin — 2011年6月10日 @ 13:02

  12. 先日laptopのmemoryを8GBに換装して、RAMdiskの容量も3.5GBに上げたが、
    Buffalo RAMdisk utilityはhybrid sleep:onで時間経過での自動sleep状態に入ると、RAMdiskのdataが書き出された後、復帰後それが書き戻されない。
    以前はこういうことはなかったように思ったが・・・
    Buffalo RAMdisk utilityの常駐programだけを終了してWindowsを再起動したがそれでも書き戻されない。

    Comment by sajin — 2011年8月24日 @ 00:11

  13. http://windows.microsoft.com/ja-JP/windows7/Sleep-and-hibernation-frequently-asked-questions

    Sleep: memoryのみ通電して状態保持
    Suspend(休止): すべてHDDなどに退避して電源遮断
    Hybrid Sleep: memory保持とHDD退避の両方を行う、もしくはmemory保持→一定時間経過→HDD退避して電源停止を行う

    http://e-words.jp/w/E3838FE382A4E38396E383AAE38383E38389E382B9E383AAE383BCE38397.html

    休止状態に入る=HDDにmemory内容が移される、そのmemory内部にramdisk driveが含まれる→休止状態から復帰する=HDDからmemory内容が書き戻される。
    しかし、ramdiskのdriveはformat状態で復帰し中身はない。
    これは本来静的に存在しているdrive類がmemoryに依存する動的存在になっているにも関わらず、先にdrive状況が復元されて、その時点でramdiskがformat状態で存在してしまい、ramdiskの内容を書き戻す措置をbuffalo ramdisk utilityが休止状態からの復帰時は行わないのが原因と思われる。

    Comment by sajin — 2011年8月24日 @ 00:38

  14. つまり結論として、memory状態をOSの再起動を介さずにresetしてしまうようなhybrid sleepは切っておかなければならない。

    Comment by sajin — 2011年8月24日 @ 00:41

  15. 3GBにしてから気づいたが、Buffalo RAMdisk utilityは終了時、ramdisk全体のimageを何の圧縮もかけずにbit単位で保存するために、OS shut down時異常に時間がかかる。
    せめて存在するfileだけcopyするとかできないのか。
    ほとんど終了も再起動もしないからいいようなものの、基本的に使ったら電源を切る人には向かない。

    Comment by sajin — 2011年9月8日 @ 13:42

  16. Link Shell Extention
    http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

    別のsoftwareやbatchを介さずright click menuから直接選択したfile/directoryのhard link/symbolic link/junctionなどを作成できる。

    自分のOS用の物をdownloadし、”管理者として実行”からinstall。

    fileに対してはsymbolic link/hard linkを、folderに対してはsymbolic link/junctionを作成でき、またmirrorなども行えるようだ。
    やり方はright click > Pick Link Source > 作りたい場所でright click > Drop As

    Hard Link=一旦、fileを構成するdata自体とその名義を切り離して考える。file systemにdataに対する名義を別に作成し、元の名義とまったく同じようにdata自体を扱えるよう結びつける。よってhard linkを消せばdata本体も消える。iconの矢印が赤。
    Symbolic Link=file/directoryを参照するfileを作成する。shortcut linkに似ているがこれを通じてfile操作を行うことができるので、programなどがそこに実fileがあるのと勘違いし同じ動作をする。iconの矢印が緑。
    Shortcut Link=file/directoryの場所を格納するfileを作成する。開くとその場所に移動するだけで、これを通じた操作はできない。programなどがshortcutを見て実fileを操作できたりはしない。iconの矢印が青。
    Junction=Symbolic linkの制限版でWindows 2000-XPまではこれしか使うことができなかった。実質symbolic linkとほとんど変わりはない。iconの矢印は表示されない。

    Link Shell Extentionではdirectoryのhard link作成は行えず、個別file(というより原data)に対するJunction作成はできない。

    Hardlink Shell Extention
    http://www.gigafree.net/system/explorer/hardlinkshellextension.html
    これも機能は同じか。

    Comment by sajin — 2011年10月14日 @ 23:51

  17. Symbolic linkの弱点は、linkを作成した時の参照先とそのlink双方のpathどちらか一方でも変わるとerrorが出て使えなくなることだ。これは環境変化に対してとても脆弱ということ。

    Hard linkは作成した場合、そのdataを参照するすべてのhard linkを削除するまでdata本体は消えない(正確には削除扱いにならない)。よって、むしろdata本体の残存性は高くなる。
    だからsymbolic linkの場所を移さないという確信がないならhard linkの方がいい。しかし、driveを跨ぐなどdata本体と別の場所にhard linkをつくっていくと、そもそも実態としてのdataはどこにあるんだ?ということになって、ややこしくなりそうだ。

    Junctionはsymbolic linkとhard linkの合いの子の様な性質がある。hard linkのように同格の別名を与える訳ではなく、元を消せばそのjunctionは無意味化するが、junction自体を別の場所に移してもsymbolic linkと違い参照先の場所しか格納しないので変わりなく使うことができる。問題はdirectoryにしかjunctionを生成できない点。

    hard linkに関しては色々とtestをしてみたほうがよさそうだ。

    Comment by sajin — 2011年10月16日 @ 04:42

  18. 答えは単純で別のdriveに跨るhard linkは不可能だった。選択肢がsymbolic linkのみになる。

    またhard link/symbolic linkともにfileを別のdriveにcopyすると、その先がNTFSでも実体を持ったfileとして新たに作成され、hard linkでもsymbolic linkでもなくなる。
    Junctionの場合、それを移そうとすると、元のfolderをcopy/moveしたのと同じ扱いになってしまう。だからjunctionそのものの移動はできない。ただし、junctionを消しても元が消されたりはしない。

    hard linkの場合、問題はbackupだろう。file system込みでbackupしてくれないとおかしな事になる。
    ざっと調べた所、問題があったのはNT系時代のWindowsで7ぐらいになると、defaultで対応しているので問題は起きないだろう。
    ただし、backup toolとの絡みはあるかもしれない。

    Comment by sajin — 2011年10月16日 @ 04:49

  19. Buffaloを外してGavottで全部賄おうかと思ったが、Windows 64bitはdriverが署名されていないとinstallできない。

    幾つかdriver署名をuser側で行う記事はあるが
    http://blog.livedoor.jp/endows_blog/archives/51395035.html#
    http://haizin.serveblog.net/?p=2225

    知らないと損するWindows 7にGavotte RAMDISKを導入
    http://ameblo.jp/ichitaso/entry-10910092891.html
    が一番新しい対策を取っている。

    Driver Signature Enforcement Overrider 1.3b
    http://www.ngohq.com/home.php?page=dseo

    DSEOが管理者modeでも起動しなかったが、一度再起動後は問題なく使えた。

    Comment by sajin — 2012年1月25日 @ 19:28

  20. Buffaloの方には
    convert R: /FS:NTFS /X
    での事後のNTFS化は不可能だが、Gavotteには問題なく使える。Formatだとdataが吹き飛ぶのでこちらの方がいい。
    起動するごとにFAT32になるので、batchでstartupから適用。

    convert R: /FS:NTFS /X
    label R: Ramdisk

    でvolume labelも再設定できる。

    Comment by sajin — 2012年1月25日 @ 22:31

  21. GavotteにしてからかNTFS化してからかはっきりしないが、Ramdiskに3GB割いているのに、Control Panel>Systemで8GB表示されている。以前はちゃんと割いた分が減っていたのになぜだろう。特に使用していて異常はなく、またBuffalo+FAT32で数日使いっぱなしにしていると起きたBSODが起きないようだ。
    BSODについてはもうちょっと期間をかけて観察する必要があるが安定性は高いのかもしれない。

    Comment by sajin — 2012年3月3日 @ 17:18

  22. すべてのprocessのprivate(共有不可能な分として物理memory上に存在)をちゃんと足した訳ではないが、どう見てもGavotte(+NTFS)でRamdiskとして確保した分はWindows側にdisk領域としてではなく、memory上に存在するものとして取り扱われている。圧縮解凍などの操作も格段に速くなったが、これもGavotteが外部のdiskではなくRAMとしてWindows側に扱わせるので処理に無駄が生じないためか。

    Comment by sajin — 2012年3月12日 @ 00:02

  23. pagefile.sysをramdiskに置くと、convert R: /FS:NTFS /Xが拒否され、task schedulerで次回起動時に変更するとなるが、gavotteがWindows起動後に設定されるためか機能しない。
    command lineでのpaging file操作を探した所、Windows Management Instrumentation Command-line (WMIC)で可能なようだが、これがcmdと異なる専用のcommand promptでどう動かせばいいか、batchが可能なのかといったことをこれから確かめなくてはならない。

    Windows XP Professional Product Documentation
    http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/wmic.mspx?mfr=true
    Microsoft TechNet
    WMIC – Take Command-line Control over WMI
    Microsoft Dev Center – Desktop
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa394531(v=vs.85).aspx

    Comment by sajin — 2012年3月19日 @ 21:41

  24. SoftPerfect RAM Disk
    http://www.gigafree.net/utility/virtualdrive/softperfectramdisk.html

    ・Free
    ・複数ramdisk driveの作成
    ・NTFS可
    ・Imageの保存・読み込み
    ・application読み込み

    まだ試してないけどざっと見た限り機能的にはほぼ完璧なんじゃないかな。32bit OSの方でNTFS化ができなくて困っていたからこれを試してみよう。

    Comment by sajin — 2012年10月31日 @ 01:32

RSS feed for comments on this post. TrackBack URL

Leave a comment


sand-storm.net