復元したいもの
間違って削除した Excel ファイル。
Photorec は 画像ファイルや ZIP ファイルが復元できます。
Excel ファイルも ZIP ファイルの亜種となるので復元できそうです。
環境
- Ubuntu 22.04
- USBメモリ I-O DATA 8GBytes FATフォーマット
- USBメモリ自体は正常に動作しています。
ツールのインストール
photorec を使います
$ sudo apt install testdisk
リカバリーファイルの保管場所
フォルダーを作成し、そこに復旧ファイルを格納するようにします。
$ mkdir recoverusb
USBメモリをデバイスとして認識
dmesg を起動しておいて
$ sudo dmesg -w
USBメモリを挿入します。
.
.
.
[26716.676250] usb 1-1.2: new high-speed USB device number 6 using ehci-pci
[26716.787314] usb 1-1.2: New USB device found, idVendor=04bb, idProduct=101a, bcdDevice=11.00
[26716.787331] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[26716.787336] usb 1-1.2: Product: USB Flash Disk
[26716.787339] usb 1-1.2: Manufacturer: I-O DATA
[26716.787342] usb 1-1.2: SerialNumber: 2960412190170011
[26716.826238] usb-storage 1-1.2:1.0: USB Mass Storage device detected
[26716.826438] scsi host6: usb-storage 1-1.2:1.0
[26716.826598] usbcore: registered new interface driver usb-storage
[26716.830448] usbcore: registered new interface driver uas
[26718.448480] scsi 6:0:0:0: Direct-Access I-O DATA USB Flash Disk 1100 PQ: 0 ANSI: 4
[26718.449445] sd 6:0:0:0: Attached scsi generic sg1 type 0
[26718.451265] sd 6:0:0:0: [sdb] 15155200 512-byte logical blocks: (7.76 GB/7.23 GiB)
[26718.453781] sd 6:0:0:0: [sdb] Write Protect is off
[26718.453789] sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
[26718.454741] sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[26718.467499] sdb: sdb1
[26718.467687] sd 6:0:0:0: [sdb] Attached SCSI removable disk
.
.
.
/dev/sdb として正常に認識できていることがわかります。
論理フォーマットを確認
fdisk でパーティーション情報を確認します。
$ sudo fdisk /dev/sdb
fdisk (util-linux 2.37.2) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
パーティションおよびフォーマットを確認します。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 7.23 GiB, 7759462400 バイト, 15155200 セクタ
Disk model: USB Flash Disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0xc3072e18
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
/dev/sdb1 248 15155199 15154952 7.2G b W95 FAT32
コマンド (m でヘルプ): q
photorec を起動する
先程確認した /dev/sdb1 を指定して起動します。
$ sudo photorec /dev/sdb1
とすると、以下のように表示されます。
PhotoRec 7.1, Data Recovery Utility, July 2019
Christophe GRENIER <grenier@cgsecurity.org>
https://www.cgsecurity.org
PhotoRec is free software, and
comes with ABSOLUTELY NO WARRANTY.
Select a media (use Arrow keys, then press Enter):
>Disk /dev/sdb1 - 7759 MB / 7399 MiB (RO) - I-O DATA USB Flash Disk
>[Proceed ] [ Quit ]
Note:
Disk capacity must be correctly detected for a successful recovery.
If a disk listed above has an incorrect size, check HD jumper settings and BIOS
detection, and install the latest OS patches and disk drivers.
正しく USB メモリが指定されているので Proceed を選び、次に表示される
P FAT32 0 0 1 1022 176 44 15154952 [NO NAME]
をサーチします。
>[ Search ]
今回は削除ファイルを探すのが目的なので、Free
を選びます。
>[ Free ] Scan for file from FAT32 unallocated space only
復元先を先ほど作成した recoverusb
を指定します。
>drwxrwxr-x 1000 1000 4096 10-Oct-2023 16:10 recoverusb
復元
しばらく時間がかかり、以下のように復元していきます。
Pass 1 - Reading sector 9198424/15154952, 2343 files found
Elapsed time 0h05m24s - Estimated time to completion 0h03m29
zip: 1171 recovered
jpg: 552 recovered
doc: 319 recovered
pdf: 299 recovered
png: 2 recovered
終了すると、recoverusb 内に以下のようにフォルダができていて、復元されたファイルが入っています。
~/recoverusb$ ls
recup_dir.1 recup_dir.2 recup_dir.3 recup_dir.4 recup_dir.5
Excel ファイルとして復元されたものについては、Excel の拡張子はついてますがファイル名は復元できず数字などのファイル名になっています。中身を見て必要なファイルかどうか確認します。