💿

SSDをUnityのいじめから守りたい

2022/01/02に公開

Unityのプロジェクトでも何でも、作業フォルダはいつだって高速で有りたいものです。
しかし、UnityのプロジェクトをSSDに置く場合、unitypackageのImportとかで一度の処理で
大量のファイルを書き込む時にSSDの認識ごとWindowsから消える事があります。
え?そんなことないって?私はあったんですぅ~~~!!!!!!(10敗以上)

Sceneファイルの書き込みで死なれると書き込みに失敗してデータ戻せなくなりますからね。
VRChatワールド「Autumn House」はそれで更新ができなくなりました。
バックアップは本当に大事だけどストレージを用意する予算がない....タスケテ

特にVRChatのエディタ拡張でこねこねやってるとSDKがうんともすんとも言わなくなり、
どうしようもなくなる時が頻繁に起こる環境ではReImportを行う場合もあるでしょう。
そんな時にデータが飛んでしまってはたまったものじゃありません。

とりあえず自分のやった対策を書いておきます。
言い訳はその後書きます。

インデックスを無効にする

Windowsにはファイルの検索機能があり、その検索のすばやさをアップさせるために
ほぼすべてのフォルダやファイルに対してインデックスをつけます。
いつでも引っ張り出せるようにしておくわけです。

そのインデックスを付ける作業が頻繁にファイルを更新するプロジェクト系には相性が悪い。
そう思ってインデックスオプションを無効にしました。

やり方

プロジェクトフォルダ(もしくはその親)の[プロパティ]から
[属性] > [詳細設定] > [このフォルダー内のファイルに対し...インデックスを付ける]のチェックを外す
[OK]を押すと全てのファイルの属性を変更しにかかりますので時間かかります。
これで死んだことはないです。(今の所)

書き込みキャッシュの無効化

効果はわからないけどとりあえずやった。
説明文読んだけどネットの記事(検索上位流し読み)となんか解釈一致しなくて困った。

やり方

デバイスマネージャーから対象のドライブの[プロパティ]を開き、
[ポリシー] > [デバイスの書き込みキャッシュを有効にする]のチェックを外す。

蛇足

本当に読みにくい

ちょっとした作業を外出先から自宅PCを遠隔操作でしていて、
Unityを立ち上げようと起動したら起動中にSSDが死亡。
放置してたらなんかドライブが減っててびっくりした。

なんかVRChat SDKの様子がおかしいのでReImport。
無事SSDが家出。

Unity 2018から2019へのアップグレードで死亡。

タスクマネージャーで見てたら使用率が 100% になってました。
でしばらくして家出してしまったんです。

初めはUnityが

Fatal Error:dataOffset !=file.GetPosition()

みたいなエラー出してて「見たことないエラーだなぁ」なんて思いつつ
再度Unityを起動しようとUnity Hubから起動するとフォルダが見つかりませんって言われるじゃないですか。
そしてエクスプローラー見るとドライブが減ってる。お前リムーバブルじゃねーだろ。

初見の時は血の気が引きました。

過去一だったと思います。

落ち着いてシャットダウンからの再起動でドライブが復帰することを確認して、
ひとまずホッとした私でしたがこれでは作業できない...

なんでドライブが消えるのか、イベントビューアーとか色々使って探ってました。
ちなみにこの時期うちのPCスリープに落ちるとBSoDするみたいで
つけっぱなしでちょっと外出て家帰ったらロック画面が初期壁紙になってて
「どぉぉぉしてぇぇぇぇぇ」ってなってました。しんどい。

最後に

バックアップは、しようね!

Mediumの記事より

Discussion