RPGツクールメモ

ただのメモだよ。ネット上に転がってる怪しいpythonスクリプトを実行しちゃぁ、いけないよ…ヒッヒッヒ……

 

(なんか知らんけどmarkdown使えないよ。まあただのメモだからどうでもいいね。)

```py

import glob

filelist=glob.glob("*") #同フォルダ内の全ファイルリストを取得
for g in filelist:
    if not g[-6:]=="rpgmvp": #ファイル名に.rpgmvpがあるか確認
        #print("no")
        continue
    file=open(g,"rb")
    bytestr=file.read().hex() #bytes型で読ん(.read())でhexなstr型(.hex())にする。'5250474D560000...'となる
    file.close() #忘れないうちにcloseする
    pnghead="89504e470d0a1a0a0000000d49484452" #pngの先頭16バイト分
    png=bytes.fromhex(pnghead+bytestr[64:]) #rpgmvpの先頭32バイトを書き換えてbytes型にする
    pngfilename=g[0:-6]+"png" #hoge.rpgvmpをhoge.pngに変換。先頭(0)から末尾-6まで+"png"
    savefile=open(pngfilename,"wb") #bytes型で書き込む準備
    savefile.write(png) #書き込み
    savefile.close() #忘れぬうちにcloseする!特にwriteは気をつけろ!!

```

RAW化したSSDを直せなかった話

最初に注意。この記事はタイトルにもある通り「直せなかった」ので読むだけ時間の無駄かもしれません。直せなかったとはいえある程度のデータ(動画ファイルISOファイルのでかいファイル、ソースコード等の小さいファイル)を復元しているので、そこに興味がある人は読む価値があるかもしれません。

 

僕はADATA LEGEND 800の1TB版をm.2 USBケースに入れてUSBメモリ代わりとして使っている。3.0対応のCtoCケーブルと2.0のAtoCケーブルしか持ってないので、ThunderBolt端子があればそっちにつないで運用している。

普段使ってないパソコンのThunderBolt端子にSSDを接続したところ、「ドライブのスキャンをせよ」といったメッセージが表示され、スキャン、「エラーが見つかったので修復しろ」と言われた(このときにはまだ拒否権はある)

その時なんとなく「修復する」を選んでしまった。これが運の尽きであった。

エラーチェックの例。これは後日別のドライブを対象にしているので「スキャンする必要はありません」と表示が異なる

エラー修復の進捗バーが9割くらいのところで止まって動かない。通常はエラー修復はたいして時間のかからないもののはず(かつてUSBメモリやSDカードでも行ったことが何度かある)。待ち続けていると「エラーは修復できませんでした」との表示が。詳しい理由はもはや不明であるが、パソコン側のUSB-C端子が弱かったのではないかと予想。普段使っていないパソコンなのでそこまで気が回らなかったのだ。つまりエラー修正というセンシティブな作業中にノイズまたは電力の喪失が起こったからクリティカルダメージを負ったのではないかという予測だ。これによりSSDの全領域がRAWになり読みだせなくなった。

 

こういうのは古明地フランさんの動画でよく見るから、通例通り「TestDisk」を使えば簡単に直せるだろうと思っていた。僕のパーティションNTFSの1つだけで(たぶん)GPTだからEFI GPTを選ぶ。Analyze→Stop→20時間くらいかけてdeeper searchし、ドライブ名を発見し「P」キーでファイルリストを表示すると、

Can’t open file system. Filesystem seems damaged

と表示されてダメそう。えぇ……

仕方がないのでEaseUS Data Recovory Wizard Free版を試す(こういう商用ソフトは使いたくないのだが)。普通にファイル一覧が出てきた。free版では合計500MBまでという制限付きで復元できる。よって動画データなどはこのソフトで復元すべきではない。他にバックアップを取っていなかったVisualStudioのソースコードのデータを復元した(合計3MBくらい)

次にTestDiskに付属したQPhotoRecを使って動画ISOを取り出す。Ab○ma TVから保存したアニメとかゲームディスクのISOとかのでかいものを復元したい。これらはディレクトリ構造がわからなくても中身を見れば何とかなる。QPhotoRecを起動して保存先ディレクトリ(近くの店で256GBのSDカードが激安販売してたのでこれを買ってきた)を指定し、ファイルフォーマットを「mov」と「iso」にチェックする。ちなみに画像ファイルはどうした?と問われるかもしれないが、僕にとって画像ファイルは超重要なので他にバックアップがあるので大丈夫なのだ(画像ファイルをphotorecしたら仕分けに骨が折れるのは間違いない)。1~2時間くらいで無事救出できた。

 

これで欲しいデータは粗方救出できた。再度EaseUSでファイル一覧を確認し、500MBの範囲(500MBとはさっきのと合計)内でさらに欲しいのを救出し、

 

わかったこと

EaseUS Data Recovory Wizard Free版は、写真などはプレビュー表示が可能なうえ、プレビューだけなら復元可能サイズ500MBを消費しないので他に回せる

SDカードは書き込みが10MB/sなので救出先のドライブとしては向かない…

TestDiskはくっそ時間がかかるうえに万能ではない。僕は不器用で、何度か中止したり間違ってウィンドウを消したりしてるのでTestDiskに丸2日は捧げている。もっとかも

QPhotoRecはGUIなのでいくぶんわかりやすい

EaseUS製以外の復元ソフトも試したが結果は以下:

・MiniTool:公式サイトでは1024MB分は無料で復元できると言っているのに復元させてくれなかった

・AOMEI MyRecover:そもそもディレクトリ構造が出てこなかった

EaseUS製はしっかり500MB分を数えていて、アプリを閉じようと「あと○○MB復元できるよ」と教えてくれる。流石である。(ステマじゃない。そもそも商用ソフトは使いたくない。さっさとオープンソースで万能復元ツールでてこないかな、といつも思っている)