ほぼ自分用メモです。
主に元システムパーティションだったドライブを綺麗にするときに必要
以降の処理を実行すると、所有者変更の時点でゴミ箱が壊れます。必ず事前に整頓を
もし壊れた場合、本記事の後ろの方を参考にしてください
あと、管理者権限のコマンドプロンプト上で実行してください。
まずJUNCTION SYMLINK SYMLINKD を消す
消さないと、後述のコマンド実行時に盛大に事故る可能性がある(実際に事故ってC:\Usersを壊した・・・)
cd /d D:
for /f "tokens=*" %a in ('dir /s /b /al') do rmdir "%a"
一部変な消え方することがあるみたい(リンク以外のものを消そうとしてる?)ので重要なフォルダには使わないでください。責任負えません。
(recursiveにしてないので空じゃないフォルダは消えないし、rmdirなのでファイルは消えないし、大丈夫だとは思いますが・・・)
Windowsフォルダとか消す
所有者をAdministratorsにする
takeown /f D: /a /r /d y
自分は>nul
をつけてログ無しで実行してるが、システムパーティションに対して実行すると大概こける上に
どこでこけたかわからないので>nul
外して実行せざるを得ないような・・・(ログ出す分遅くなる)
実行順とか気をつければどうにかできるのかもしれない。
ACLをリセットする
icacls D: /reset /t /c /l /q
エラー時続行オプション(/c
)つけてるので必要に応じて外してください。
ルートフォルダ(D:\
)への処理だけエラーになりますが問題ありません。
(ドライブのルートフォルダは権限の継承元がないため、リセットすると誰もアクセスできなくなってしまうのでエラーになるようです)
隠しファイル・読み取り専用・システムファイル属性を消す
Windowsフォルダを消すこと自体に対して必須ではないですが、その後のファイル整頓考えてやっておいてもいいと思います。
cd /d D:
attrib -r -s -h /s /d /l
Windowsフォルダを削除する
独自に入れたドライバ等を確認したい場合は、ここで確認をしてください。
レジストリを取り出したい場合もここで確認する必要あり?(自分は不要だったので未確認)
あと忘れがちなのが、drivers/etc/hosts
cd /d D:
rmdir /s /q Windows
その後
以下ソフト使ってファイル整頓してます
おすすめ、というわけでもないんですが参考になるなら。
WinDirStat - ディレクトリ毎の使用容量把握
https://windirstat.net/
FastCopy - ファイルコピー
https://fastcopy.jp/
WinMerge - 差分確認
https://winmerge.org/
dupeGuru - 重複ファイル検索
https://dupeguru.voltaicideas.net/
System Volume Information
の容量が大きすぎて困っている場合
コントロール パネル
=> 回復
=> システム復元の構成
から
当該ドライブの構成
を開いて復元ポイントが作成されていないか確認してみてください。
ショートカット・インターネットリンクを消す
InternetExplorer等のブラウザを使用している場合、お気に入りが消えてしまうので、*.url
は対象から外してください
cd /d D:
del /f /s /a *.lnk *.url
空フォルダを消す
junction系と同様、rmdirの仕様が変わった場合予期しないファイルが削除されることがあるので十分注意してください。
cd /d D:
for /f "tokens=*" %a in ('dir /s /b /ad ^| sort /r') do rmdir "%a"
ゴミ箱を破損させてしまった場合
まず、フォルダ構造としては次のような形になっています
$RECYCLE.BIN : ゴミ箱のルートディレクトリ
┣ S-1-5-21-<machine sid>-<rid> : 各ユーザごとのゴミ箱
┃┣ $RXXXXXXX : 削除したファイルの実体
┃┣ $IXXXXXXX : 削除したファイルのメタデータ(場所とか削除日時とか)
※ machine sid: 00000000-00000000-00000000 (1~10桁の10進数3つをハイフンで繋いでいる)
※ rid: 1001 (ユーザを識別する4桁程度の10進数)
そして、S-1-5-21-...
のフォルダ名を自分のIDに書き換えた上で、
所有者を自分に変更すれば、エラーも回避できますしゴミ箱を開くだけで中身を参照できます。
(数が少なくGUIから対処したのでコマンドは確認していません)
自分のSIDは、whoami /user
で確認できます。
※参考:https://superuser.com/questions/1506219/how-to-decode-file-names-in-recycle-bin
ちなみに.0000
から始まるファイルがいくつかあったのですがこちらは謎(未調査)です・・・
追記:
.0000
から始まるファイルについて、中身を確認したらすべてexeまたはdllファイルでした。
また、msys2系のファイルが多かったこと・mintty.exe等と思しきファイルが多かったことから、
msys2でpacman -Su
を実行した際に生成されている可能性があります。
あとがき
自分用と言いながら、なにか改善要望等あれば取り入れますのでご指摘頂ければ幸いです。
寝る直前に備忘で走り書きしてるので、内容間違えてたりしたらごめんなさい。