Obnova smazaného souboru MKV na ext4

Jigdo

  • *****
  • 506
    • Zobrazit profil
Obnova smazaného souboru MKV na ext4
« kdy: 07. 03. 2024, 13:22:40 »
Vcera se mi podarilo vymazat nechtene MKV soubor,
od ktereho nemam zadnou zalohu .. :(

Bylo to omylem v Double Commanderu s Shift + Delete (takze neni v kosi) ...
SSD na kterem ten soubor byl/je ma velikost 2TB je 50% plny a bezi tam Debian 12


Na tom PC je jeste druhy SSD na kterem je WIn 11,
ale predpokladam ze asi bude treba nabootovat do LiveCD??
Poradi nekdo, ktere?


Tak jsem byl koupit SANDISK Extreme Portable External SSD V2 - 4TB
na rychlou "recovery", ale jak na to koukam, je na vyber:
https://www.digitalocean.com/community/tutorials/top-best-linux-data-recovery-tools#17-extundelete-http-extundelete-sourceforge-net-an-ext3grep-successor

Poradi nekdo jak na to, kde a s cim zacit?
Je treba bootovat do LiveCD/Win11 a nebo se to da obnovit primo v tom OS (Debian 12)?
« Poslední změna: 07. 03. 2024, 14:04:39 od Petr Krčmář »


Re:Ext4 obnova smazaneho MKV souboru
« Odpověď #1 kdy: 07. 03. 2024, 13:41:09 »
Na Linuxu jdou soubory obnovit přes aplikaci PhotoRec
https://www.cgsecurity.org/wiki/PhotoRec

Ale raději bych obnovu na jiný disk/partition prováděl z LiveCD protože jakýkoliv zápis na postižený disk (včetně TRIMu u SSD a podobných) může znamenat že se přepíší původní data a tedy soubor nepůjde obnovit.
LiveCD jde použít jakékoliv (Debian/Ubuntu/jakékoliv jiné live, ten PhotoRec si prostě do Live systému doinstaluješ).

W11 bych z toho úplně vynechal, ty nepřečtou EXT4 a jako cílový disk pro uložení obnovených souborů bych je taky nepoužíval když jsi zakoupil externí disk.
« Poslední změna: 07. 03. 2024, 13:43:10 od hungarec »

Re:Obnova smazaného souboru MKV na ext4
« Odpověď #2 kdy: 07. 03. 2024, 14:16:49 »
Můžeš zkusit ext4magic z LiveCD, ale moc šancí bych tomu nedával. Jestli máš oddíl připojený s volbou discard, tak se s tím prakticky můžeš rozloučit, protože pokud systém tomu SSD poslal příkaz TRIM, tak to řadič přemazal nulami.

Re:Obnova smazaného souboru MKV na ext4
« Odpověď #3 kdy: 07. 03. 2024, 15:31:25 »
Mel jsem na ext4 podobny incident. Zkusil jsem dle nejakyho navodu naklonovat žurnál. Pak pomoci extundelete, r-undelete a dalsich se mi podarilo najit nejakou cast, ale bohuzel prave filmy zahučely. Kdyz jsem tomu podstrcil zalohu zurnalu tak byly vysledky lepsi, ale par nezalohovanych veci jsem musel proste odepsat.
Děkuji za možnost editace příspěvku.

ByCzech

  • *****
  • 1 861
    • Zobrazit profil
    • E-mail
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #4 kdy: 07. 03. 2024, 18:04:46 »
Nabootovat live toto: https://www.system-rescue.org/Download/ a použít z něj photorec. Hlavně už nebootovat, jak píšou výše, můžou se přepsat původní data.


RDa

  • *****
  • 2 722
    • Zobrazit profil
    • E-mail
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #5 kdy: 08. 03. 2024, 00:20:35 »
Pokud na tom (internim) SSD mas funkcni discard/TRIM, tak neni sance na obnovu.
U externiho byva TRIM spis nefunkcni nez funkcni.

Osobne bych to protahnul svym toolem, ktery identifikuje pouzite sektory, a pak to co je mimo FS lze prohledat na signatury toho co se hleda.

S MKV jsem nedelal.. vetsinou resim rozbite MP4/MOV na ExFAT z kamer kdyz jim klekne napajeni nebo maj fw bug ze si prepisou struktury FS.

Re:Obnova smazaného souboru MKV na ext4
« Odpověď #6 kdy: 08. 03. 2024, 08:54:13 »
Není nic lepšího než R-Studio a pro linux (ext4 a spol) je zdarma. Lze ho použít i z Windows.

https://www.r-studio.com/free-linux-recovery/Download.shtml

Na TRIM ale pozor, volá se v pravidelných intervalech a znamenalo by to úplnou ztrátu dat. Tudíž připojit ten disk externě bez namountování FS.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #7 kdy: 08. 03. 2024, 12:09:55 »
Stahnul jsem Debian LiveCD
https://www.debian.org/CD/live/
pres Etcher nahral na USB Stick a nabootoval.

Heslo pro "user" je "live", kdyz nabehne Screensaver ....;)


Chyba byla, ze jsem pred pouzitim nezformatoval ten externi SSD Disk co ma exFAT
a neni vubec videt nejaka performance boost toho SSD pri kopirovani .......


Na tom Live OS jsem si doinstaloval tohle:
Kód: [Vybrat]
sudo apt install testdisk gddrescue ddrescueview foremost scalpel safecopy ext4magic extundelete sleuthkit autopsy e2fsprogs mbr nvme-cli

Zkousim:

Podle navodu na Arch Linux
https://wiki.archlinux.org/title/File_recovery


Kód: [Vybrat]
user@debian:~$ sudo lsblk -p
NAME             MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
/dev/loop0         7:0    0   2.5G  1 loop /usr/lib/live/mount/rootfs/filesystem.squashfs
                                           /run/live/rootfs/filesystem.squashfs
/dev/sda           8:0    0   3.6T  0 disk
└─/dev/sda1        8:1    0   3.6T  0 part /media/user/ExtremeSSD
/dev/sdb           8:16   1  29.3G  0 disk
├─/dev/sdb1        8:17   1     3G  0 part /usr/lib/live/mount/medium
│                                          /run/live/medium
└─/dev/sdb2        8:18   1     5M  0 part
/dev/mmcblk0     179:0    0   7.4G  0 disk
└─/dev/mmcblk0p1 179:1    0   7.4G  0 part /media/user/FAT32
/dev/nvme0n1     259:0    0   1.8T  0 disk
├─/dev/nvme0n1p1 259:6    0   512M  0 part
├─/dev/nvme0n1p2 259:7    0   1.8T  0 part
└─/dev/nvme0n1p3 259:8    0   977M  0 part
/dev/nvme1n1     259:4    0 476.9G  0 disk
├─/dev/nvme1n1p1 259:2    0   100M  0 part
├─/dev/nvme1n1p2 259:3    0    16M  0 part
├─/dev/nvme1n1p3 259:5    0 476.2G  0 part
└─/dev/nvme1n1p4 259:9    0   633M  0 part


Kód: [Vybrat]
user@debian:~$ sudo fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 970 EVO Plus 2TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: AB12345C-1234-1A21-F1BA-654321E9A0AB

Device              Start        End    Sectors  Size Type
/dev/nvme0n1p1       2048    1050623    1048576  512M EFI System
/dev/nvme0n1p2    1050624 3905028095 3903977472  1.8T Linux filesystem
/dev/nvme0n1p3 3905028096 3907028991    2000896  977M Linux swap





#ext4magic
https://ext4magic.sourceforge.net/ext4magic_en.html

Zaloha "filesystem" journal:
Kód: [Vybrat]
sudo debugfs -R "dump <8> /media/user/ExtremeSSD/BackUp/dump.journal" /dev/nvme0n1p2Vytvoril se mi soubor o velikosti 1GB

a potom ext4magic, ale ten konci vzdy s "Segmentation fault":

Kód: [Vybrat]
sudo ext4magic /dev/nvme0n1p2 -a "$(date -d "-9hours" +%s)" -f /home/USER/Downloads -j /media/user/ExtremeSSD/BackUp/dump.journal -l

sudo ext4magic /dev/nvme0n1p2 -r -f /home/USER/Downloads/deleted.mkv -d /media/user/ExtremeSSD/

Kód: [Vybrat]
user@debian:~$ sudo ext4magic /dev/nvme0n1p2 -r -d /media/user/ExtremeSSD/ext4magic/
"/media/user/ExtremeSSD/ext4magic/"  accept for recoverdir
Filesystem in use: /dev/nvme0n1p2

Using  internal Journal at Inode 8
Inode 2 is allocated
Segmentation fault



#TestDisk
TestDisk "Undelete" funguje pouze na partitions ktere maji MBR a na
SSD s GPT se mi to nezobrazilo :(
https://adamtheautomator.com/linux-recover-deleted-files/


Tak jsem udelal backup celeho disku a ma ted soubor "image.dd" o velikosti (2000398933504 bytes)





#PhotoRec
Dale jsem zkusil jeste:

sudo photorec
Po 3 hodinach mi to na tom externim SSD vytvorilo cca 750 adresaru "recup_dir.xxx"
a v tech bylo celkem 43 *.mkv's, ale vsechny jsou tak 2-3 mesice stare ......
ale soubor ktery jsem omylem smazal vcera ne ... ???


Pro jistotu jsem tech cca 750 recup_dir.xxx jeste prohledal podle velikosti souboru
, ale nasel jsem akorat 4K TS video co jsem pred 3 mesici vymazal s priponou xxxxxx.a
ktere ale pri prehravani v mpv pixelovalo ....takze nepouzitelne, ale zajimave je
ze MKV video a dalsi co jsem pres Shift+Delete vymazal proste nejsou videt .........


Koukam na video EXT File System Recovery - SANS Digital Forensics and Incident Response Summit 2017
https://www.youtube.com/watch?v=6pzm6909IvY
a kdyby clovek mnel aspon ten inode cislo toho souboru
tak by snad fungovalo tohle:
https://www.cyberciti.biz/tips/linux-ext3-ext4-deleted-files-recovery-howto.html

Takze zkousim aspon tohle
Kód: [Vybrat]
sudo debugfs /dev/nvme0n1p2
debugfs: lsdel

Ale vysledek je tohle s datumem Feb 23rd:
Kód: [Vybrat]
Inode  Owner  Mode    Size      Blocks   Time deleted
18874372   1000 100644 8090076   1879/  1976 Fri Feb 23 11:30:57 2024
18874374   1000 100644 475476    117/   117 Fri Feb 23 11:30:57 2024
18874490   1000  40755   4096      1/     1 Fri Feb 23 11:30:57 2024
18874491   1000 100644 1340178     56/   328 Fri Feb 23 11:30:57 2024
4 deleted inodes found.




#Foremost
https://packages.debian.org/bookworm/foremost

Takze jsem se posunul k dalsimu nastroji:


Kód: [Vybrat]
user@debian:~$ sudo foremost -v -T -c /etc/foremost.conf -i /dev/nvme0n1p2 -o /media/user/ExtremeSSD/Foremost/
Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File

Foremost started at Thu Mar  7 21:24:02 2024
Invocation: foremost -v -T -c /etc/foremost.conf -i /dev/nvme0n1p2 -o /media/user/ExtremeSSD/Foremost/
Output directory: /media/user/ExtremeSSD/Foremost_Thu_Mar__7_21_24_02_2024
Configuration file: /etc/foremost.conf
Processing: /dev/nvme0n1p2
|------------------------------------------------------------------
File: /dev/nvme0n1p2
Start: Thu Mar  7 21:24:02 2024
Length: 1 TB (1998836465664 bytes)

Num Name (bs=512)        Size File Offset Comment

0: 00124903.mov        3 MB    63950456
1: 00124800.mov        3 MB    63897754
2: 00130413.mpg        1 MB    66771716
3: 00143004.mpg       60 KB    73218266
4: 00143043.mpg       41 KB    73238302
5: 00143072.mpg       26 KB    73253158
6: 00164487.mpg      101 KB    84217615
7: 00164525.mpg       82 KB    84236824


Zkousim, specifikovat jen MKV ...


Kód: [Vybrat]
sudo nano /etc/foremost.conf
#filename      case sensitive? (y/n)   size          header             footer
#=====================================================================================================
#mpg                  y               20000000       \x00\x00\x01\xba   \x00\x00\x01\xb9
mkv                  n               1500000000     \x1a\x45\xdf\xa3

Kód: [Vybrat]
sudo foremost -v -T -c /etc/foremost.conf -i /dev/nvme0n1p2 -o /media/user/ExtremeSSD/Foremost/
Foremost version 1.5.7 by Jesse Kornblum, Kris Kendall, and Nick Mikus
Audit File

Foremost started at Thu Mar  7 21:26:05 2024
Invocation: foremost -v -T -c /etc/foremost.conf -i /dev/nvme0n1p2 -o /media/user/ExtremeSSD/Foremost/
Output directory: /media/user/ExtremeSSD/Foremost_Thu_Mar__7_21_26_05_2024
Configuration file: /etc/foremost.conf
Processing: /dev/nvme0n1p2
|------------------------------------------------------------------
File: /dev/nvme0n1p2
Start: Thu Mar  7 21:26:05 2024
Length: 1 TB (1998836465664 bytes)

Num Name (bs=512)        Size File Offset Comment

****0: 01009369.mkv        7 MB   516797171
*1: 01108492.mkv       58 MB   567548250
*************************************************2: 11075584.mkv       92 MB 5670699008
...........

A tady jsem skoncil s tim samym vysledkem jako u PhotoRec .....




#Scalpel
https://github.com/sleuthkit/scalpel

Takze jsem se posunul ke SKalpelu, coz je lepsi vereze feremost.
Nastavil jsem MKV


Kód: [Vybrat]
sudo nano /etc/scalpel/scalpel.conf
#filename      case sensitive? (y/n)   size          header             footer
#=====================================================================================================
#mpg                  y               20000000       \x00\x00\x01\xba   \x00\x00\x01\xb9
mkv                  n               1500000000     \x1a\x45\xdf\xa3




Kód: [Vybrat]
user@debian:~$ sudo scalpel -c /etc/scalpel/scalpel.conf -o /media/user/ExtremeSSD/S-calpel /dev/nvme0n1p2
Scalpel version 1.60
Written by Golden G. Richard III, based on Foremost 0.69.

Opening target "/dev/nvme0n1p2"

Image file pass 1/2.
/dev/nvme0n1p2: 100.0% |**********************************************************|    1.8 TB    00:00 ETAAllocating work queues...TAETAETATAETAE
Work queues allocation complete. Building carve lists...
Carve lists built.  Workload:
mkv with header "\x1a\x45\xdf\xa3" and footer "" --> 546 files
Carving files from image.
Image file pass 2/2.
/dev/nvme0n1p2:   5.2% |*************                                                                                                                                                                                                                                                                |   96.3 GB 39:15:05 ETAError writing to file: /media/user/ExtremeSSD/S-calpel/mkv-0-0/00000071.mkv -- Operation not permitted
Scalpel was unable to write output files and will abort.
This error generally indicates that disk space is exhausted.

A tady jsem asi udelal chybu, protoze se mi ten externi SSD Disk "/media/user/ExtremeSSD/"
pres noc cely zaplnil, 80 *.mkv souboru 4TB .....
jeste pred tim nez jsem sel spat jsem z neho vymazal 2TB zalohu "/dev/nvme0n1p2"......

Kdyz se snazim otevrit ty *.mkv soubory tak tam jsou hlavne 99% videa, ktera
vubec nemnela mkv priponu, ale jsou *.TS (4K co jsem stihal v ffmpeg), a ty nemaji pocatecni/konecnou hlavicku,
takze je divne ze skoncily ve vyhledavani jako mkv .....


Takze mne ted napadlo, ze bych tu hlavicku asi mnel zmenit a pridat vsech 32 bytes u MKV
a treba to uz ty TS nenajde ......
Kód: [Vybrat]
$ head --bytes 32 file.mkv | hexdump --canonical
00000000  1a 45 df a3 a3 42 86 81  01 42 f7 81 01 42 f2 81  |.E...B...B...B..|
00000010  04 42 f3 81 08 42 82 88  6d 61 74 72 6f 73 6b 61  |.B...B..matroska|
00000020



Takze jeste zkousim:
#ExtUndelete
https://extundelete.sourceforge.net/options.html

Kód: [Vybrat]
user@debian:/media/user/ExtremeSSD/ExtUndelete$ sudo extundelete --restore-all --after 1709792121 /dev/nvme0n1p2
Only show and process deleted entries if they are deleted on or after 1709792121 and before 9223372036854775807.
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 14893 groups loaded.
Loading journal descriptors ... 0 descriptors loaded.
Searching for recoverable inodes in directory / ...
0 recoverable inodes found.
Looking through the directory structure for deleted files ...
0 recoverable inodes still lost.
No files were undeleted.


Kód: [Vybrat]
user@debian:/media/user/ExtremeSSD/ExtUndelete$ sudo extundelete /dev/nvme0n1p2 --restore-file home/USER/Downloads/video.mkv
NOTICE: Extended attributes are not restored.
Loading filesystem metadata ... 14893 groups loaded.
Loading journal descriptors ... 0 descriptors loaded.
extundelete: Extent block checksum does not match extent block while finding inode for video.mkv
extundelete: Extent block checksum does not match extent block while finding inode for video.mkv
Failed to restore file home/USER/Downloads/video.mkv
Could not find correct inode number past inode 7733283.
Try altering the filename to one of the entries listed below.
File name                                       | Inode number | Deleted status
extundelete: Operation not permitted while restoring file.
extundelete: Operation not permitted when trying to examine filesystem

Ale to taky konci, nezdarem :(







#R-Linux for Linux
https://www.r-studio.com/free-linux-recovery/Download.shtml
https://www.r-studio.com/free-linux-recovery-help/basicfilerecovery.html


Kód: [Vybrat]
curl -kLO  https://www.r-studio.com/downloads/RLinux6_x64.deb
sudo dpkg -i RLinux6_x64.deb


Ted jsem nainstaloval R-Linux a zkousim jeste tento nastroj.

Jsem prekvapeny, ze jako jediny nasel videa, ktere taky
byla vymazana i s tim, ktere jsem nechtel, ale video.mkv
ve vysledcich "Scan" neni :(


Jeste zkousim specificky hledani "*.mkv" .. a  ...

BINGO!
R-Linux nasel jako jediny ten file.
Mohlo mne napadnout se podivat do: Root/home/USER/.local/share/Trash/files
Bohuzel ... Recovery chances: Below Average (Signature, Overwritten by existing file). 

RDa

  • *****
  • 2 722
    • Zobrazit profil
    • E-mail
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #8 kdy: 08. 03. 2024, 12:34:27 »
Presne tohle jsem cekal, spousty fejk nastroju ktere slibuji nesplnitelne. Ono to muze fungovat na male veci typu JPEG, ze to najde signaturu, ale video soubory maji strukturu (kontejner, tracky, promuxovanej stream, metadata/index). Na to je to kratky a automaticky to uplne nejde udelat - ty tooly maji silne naivni predstavy, ze soubor je vcelku (kontinualni) a vetsina takovych lame oprav konci tim, ze mas nejaky random blob s priponou vzbuzujici nadseni. Ale vevnitr to vubec nema hlavu a patu.

Pokud znas kodek a nastaveni, daji se z volneho mista extrahovat treba framy a najit vedlejsi streamy (audio) rucne, a pak vyskladat puvodni video soubor. Alternativni cesta je pak najit metadata/index a pak vyuzit LSB z offsetu pro korelaci mezi hromadkou datovych bloku a odkazovanymi frejmy (to pomuze kdyz soubor je fragmentovan).

Otazka je - zda je soubor opravdu necim prepsan, jak tvrdi proprietarni soft - nebo jenom pouze tipuje.

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #9 kdy: 11. 03. 2024, 17:10:05 »
Není nic lepšího než R-Studio a pro linux (ext4 a spol) je zdarma. Lze ho použít i z Windows.

https://www.r-studio.com/free-linux-recovery/Download.shtml

Na TRIM ale pozor, volá se v pravidelných intervalech a znamenalo by to úplnou ztrátu dat. Tudíž připojit ten disk externě bez namountování FS.

Diky za tip.

Jeste poznamka k verzi pro Windows, ktere ma limit
https://www.r-undelete.com/
"Lost files search on the NTFS and ReFS file systems is fully functional for files under 256KB in size."
Ale nezkousel jsem ...

Jigdo

  • *****
  • 506
    • Zobrazit profil
Re:Obnova smazaného souboru MKV na ext4
« Odpověď #10 kdy: 11. 03. 2024, 17:35:05 »
Presne tohle jsem cekal, spousty fejk nastroju ktere slibuji nesplnitelne. Ono to muze fungovat na male veci typu JPEG, ze to najde signaturu, ale video soubory maji strukturu (kontejner, tracky, promuxovanej stream, metadata/index). Na to je to kratky a automaticky to uplne nejde udelat - ty tooly maji silne naivni predstavy, ze soubor je vcelku (kontinualni) a vetsina takovych lame oprav konci tim, ze mas nejaky random blob s priponou vzbuzujici nadseni. Ale vevnitr to vubec nema hlavu a patu.

Pokud znas kodek a nastaveni, daji se z volneho mista extrahovat treba framy a najit vedlejsi streamy (audio) rucne, a pak vyskladat puvodni video soubor. Alternativni cesta je pak najit metadata/index a pak vyuzit LSB z offsetu pro korelaci mezi hromadkou datovych bloku a odkazovanymi frejmy (to pomuze kdyz soubor je fragmentovan).

Otazka je - zda je soubor opravdu necim prepsan, jak tvrdi proprietarni soft - nebo jenom pouze tipuje.

Ono je taky mozne ze jsem proste neco nenastavil poradne, tech parametru u tech CLI programu je spousta a vetsina mi nic nerikala....
A navic, treba u foremost/scalpel jsem nenastavil "end" header coz treba mohlo zrychlit proces ...ale jsou to programy pro "ferensic"  ucely ..., ale to mne napadlo az pozdeji.

U toho skalpelu jsem jeste zkousel nastavit cely "header" pro MKV

Kód: [Vybrat]
# MKV Video
        mkv     n       1300000000000   \x1a\x45\xdf\xa3\xa3\x42\x86\x81\x01\x42\xf7\x81\x01\x42\xf2\x81\x04\x42\xf3\x81\x08\x42\x82\x88\x6d\x61\x74\x72\x6f\x73\x6b\x61

ale vysledek byl ten samy, 4TB disk mi to zaplnilo za par minut a vysledne videa ve velikosti +100GB byla smichana ruzna, ktera jsem ten den taky smazal ... :(


Vysledny soubor, ktery R-Linux for Linux nasel, fungoval do poloviny a potom se zasekl a v MPV se uz vubec nedal prehrat do konce......:(


Je to zajimave tema, a co jsem hledal tak je proste tolik nazoru co ma clovek udelat a clanku, ktere kopiruji jeden druheho (aby lide klikali) ....a pro lidi co zijou Linuxem to je jednoduche, pro uzivatele bohuzel ......(ale treba, kdybych to hned vypnul a nabootoval do LiveCD a nainstaloval R-Linux je mozne ze by se mi podarilo ten soubor obnovit na 100%, ale kdyz jsem se dival na posledni access stamp tak jsem si vsiml az za 1h ze jsem ho vymazal .......).


Samozrejmne ze jsem znal kodek, ale dalsi veci o kterych pisete mi nerikaly nic, takze jsem to vzdal ....ale urcite to je tema na serii clanku :) a nebo az bude vice casu se k tomu vratim.