xfs上でrm -rfしてしまったものを復活させる

夜中に電話で起こされて何事かと思ったら「間違ってrm -rfしてしまいました」と。
対象ファイルシステムがxfsでして、extundeleteやext4magicが使えません。xfsでは諦めろ的なblogが多かったですが、Photorec/TestDiskというツールでなんとか回収できました。しかし欲しかった対象ファイルのうち3割ぐらいでしょうか…
残りは少し古いバックアップがあったので、合わせてみて、不足分は泣きを見ることにしてもらいました。

オープンソースで無料のファイル復元ソフト「PhotoRec」 – GIGAZINE
GIGAZINEの記事は2007年ですが、

Partition Recovery and File Undelete
配布元を見ると2024年でも更新されているし、XFSに対応している。
今回はLinux(CentOS Stream 9)でGUIなしの操作でしたので、コマンドラインだけで使えるツールであることは重要。

データ復旧ソフトと復元サービス(NAS対応)|復旧天使 公式
復旧天使という有償のもあるのですが、LinuxではGUIソフトのようで、今回はパス。

消しちゃったファイル群自体は200MBもないハズなのですが、対象パーティションが100GBあるので、最悪それぐらいの削除ファイルが復活される可能性があります。
ということで128GBのUSBメモリを用意して、fdiskでパーティションを切ってxfsにてフォーマット。回収ファイルの置き場とします。

回収ファイルと別領域のhomeに
testdisk-7.2.linux26-x86_64.tar.bz2 をダウンロードして、tar xjfで解凍、photorec_staticを起動すると、CUIでのメニュー操作が可能になります。
対象パーティションと書き込み先を指定して、あとは待つ。
回収先にはrecup_dir.XXXというディレクトリと共に、回収されたファイルが大量にできていきます。
ファイル名は回収されておらずランダムになっているので、あとは中身を見ながらリネームするなりしてぽちぽちと回収していくのです…

バックアップはこまめに、別領域、別媒体に取るべし、な…

Minecraft for Windowsのインストールができなかった(解決)

PCを新しくしたのでMinecraft for WindowsをMicrosoft Storeからインストールしようとしたのですが、LauncherやJava Editionは入るけど統合版(だっけ?)のfor Windowsがインストールできません。「ライセンスの取得中」の後に「サーバー側で問題が発生しました」と出てしまいます。

結論。Microsoft Storeに紐付けられるWindowsは10台まで。その数が多いとダメらしい。
古いデバイスのリンクを解除したらあっさりとインストールできました。

Microsoft Storeの自分の顔アイコンから「アカウントでデバイスの管理」を選ぶとブラウザでMicrosoft Accountの設定画面が開きます。
メニューから「デバイス」>「Microsoft Storeのデバイス管理」を開いて、古い登録デバイスのリンクを解除します。

(↑上の画像は既にいくつか削除した後です)

その後Microsoft Storeで再度インストールを試みると、無事ダウンロードとインストールが始まりました。

参考
サーバー側で問題が発生して、Minecraft for Windows が起動できない(解決) – 調べながらやるストラテジー&RPG

Windowsセキュリティからコア分離をオンにしたらブルースクリーン

タイトルの通りですが、Windows10/11でWindowsセキュリティ→デバイスセキュリティ→コア分離の詳細→メモリ整合性「オフ」を「オン」にしたらブルースクリーンになってしまいました。
ブルースクリーン画面にはAmDRyzenMasterDriver.sysと出ていましたが、まぁメモリ整合性オンが原因でしょう。

再起動してもログオン直後ぐらいでブルースクリーンになるので戻せません。
セーフモードで起動して、レジストリエディタで直接「オフ」に書き換えて回復しました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity
の中の
Enabled
を、0でオフ、1でオンということで、0にして通常起動しました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity