Initial commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
GENERIC PLEX SALVAGE
|
||||
====================
|
||||
|
||||
Scan:
|
||||
./scan.sh '/Warez/Books'
|
||||
./scan.sh '/Warez/3D Printing'
|
||||
./scan.sh '/Media/Some Folder'
|
||||
|
||||
Recover:
|
||||
./recover.sh '/Warez/Books'
|
||||
|
||||
The source tree is mirrored beneath /mnt/recovery:
|
||||
/Warez/Books -> /mnt/recovery/Warez/Books
|
||||
|
||||
The scan creates uniquely named manifest/summary files under /mnt/recovery.
|
||||
|
||||
Classifications:
|
||||
SAFE
|
||||
LOST
|
||||
ETB_LOST
|
||||
ETB_SURVIVES
|
||||
UNKNOWN
|
||||
OTHER
|
||||
|
||||
Only SAFE files are recovered.
|
||||
|
||||
Safety:
|
||||
- damaged LV must remain kernel read-only;
|
||||
- /mnt/recovery must be a separate mounted filesystem;
|
||||
- filesystem root "/" is refused;
|
||||
- ".." is refused;
|
||||
- each file is dumped by inode;
|
||||
- dumped byte size must match inode size;
|
||||
- existing same-size recovered files are skipped;
|
||||
- at least 2 GiB free is preserved on /mnt/recovery.
|
||||
|
||||
Known dead ext4 block range:
|
||||
3418636288 - 4395389951
|
||||
Executable
+6638
File diff suppressed because one or more lines are too long
Executable
+9
@@ -0,0 +1,9 @@
|
||||
PLEX BOOKS RECOVERY
|
||||
===================
|
||||
Source: /Warez/Books
|
||||
Destination: /mnt/recovery/Warez/Books
|
||||
Recovered: 5188 files, 35.93 GiB
|
||||
Already present: 0 files, 0.00 B
|
||||
Errors: 0
|
||||
Free remaining: 894.36 GiB
|
||||
Log: /mnt/recovery/plex-books-recovery.tsv
|
||||
Executable
+5189
File diff suppressed because it is too large
Load Diff
Executable
+14
@@ -0,0 +1,14 @@
|
||||
PLEX BOOKS SALVAGE SCAN
|
||||
=======================
|
||||
Source: /Warez/Books
|
||||
Root inode: 137232389
|
||||
Dead blocks: 3418636288-4395389951
|
||||
Directories: 1440
|
||||
Files seen: 6638
|
||||
|
||||
SAFE: 5188 files, 35.93 GiB
|
||||
LOST: 1427 files, 41.43 GiB
|
||||
UNKNOWN: 23 files, 4.58 GiB
|
||||
OTHER: 0 entries
|
||||
|
||||
Manifest: /mnt/recovery/plex-books-manifest.jsonl
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
class bytes inode path reason etb_blocks blocks_output
|
||||
ETB_LOST 94227979 137625605 Black & Decker EBooks/Play Structures & Backyard Fun.pdf extent-tree metadata block is on dead PV ETB0:4209672192 4209672192
|
||||
ETB_LOST 117717373 137625607 Black & Decker EBooks/The Black & Decker Book of Home Improvement.pdf extent-tree metadata block is on dead PV ETB0:3606782130 3606782130
|
||||
ETB_LOST 107622351 137625613 Black & Decker EBooks/The Complete Guide to Bathrooms.pdf extent-tree metadata block is on dead PV ETB0:3761203082 3761203082
|
||||
ETB_LOST 204970544 137625622 Black & Decker EBooks/The Complete Guide To Wiring.pdf extent-tree metadata block is on dead PV ETB0:4265445424 4265445424
|
||||
ETB_LOST 122877432 137625624 Black & Decker EBooks/The Complete Photo Guide to Home Improvement.pdf extent-tree metadata block is on dead PV ETB0:3521699662 3521699662
|
||||
ETB_LOST 99943361 137625625 Black & Decker EBooks/The Complete Photo Guide to Home Repair.pdf extent-tree metadata block is on dead PV ETB0:4209545213 4209545213
|
||||
ETB_LOST 155726360 139919396 Games & Gaming/TTRPG/Solo Games/Blackoath Entertainment/Choir of Flesh/Choir of Flesh - No Page Background.pdf extent-tree metadata block is on dead PV ETB0:4338778112 4338778112
|
||||
ETB_LOST 99951341 139198472 Comics/Love and Rockets/Love and Rockets - New Stories 02 (2009).cbz extent-tree metadata block is on dead PV ETB0:3770034630 3770034630
|
||||
ETB_LOST 96912329 139198474 Comics/Love and Rockets/Love and Rockets - New Stories 04 (2011).cbz extent-tree metadata block is on dead PV ETB0:3995736516 3995736516
|
||||
ETB_LOST 97162148 139198476 Comics/Love and Rockets/Love and Rockets - New Stories 06 (2013).cbr extent-tree metadata block is on dead PV ETB0:4059529348 4059529348
|
||||
ETB_LOST 322941186 139198481 Comics/Love and Rockets/Love and Rockets vol03 - Perla La Loca (2007).cbz extent-tree metadata block is on dead PV ETB0:3456044618 3456044618
|
||||
ETB_LOST 320689016 139198483 Comics/Love and Rockets/Love and Rockets vol05 - Human Diastrophism (2007).cbz extent-tree metadata block is on dead PV ETB0:3837626617 3837626617
|
||||
ETB_LOST 221355081 139198486 Comics/Love and Rockets/Love and Rockets vol09 - Esperanza (2011).cbz extent-tree metadata block is on dead PV ETB0:4130766944 4130766944
|
||||
ETB_LOST 274802614 139198488 Comics/Love and Rockets/Love and Rockets vol11 - Ofelia (2015).cbz extent-tree metadata block is on dead PV ETB0:4130777094 4130777094
|
||||
ETB_LOST 251069595 139198507 Comics/Love and Rockets/The Love and Rockets Companion - 30 Years (and Counting) (2013).cbr extent-tree metadata block is on dead PV ETB0:4138280963 4138280963
|
||||
ETB_LOST 227316372 139198508 Comics/Love and Rockets/The Love and Rockets Library v12 - Comics Dementia (2016).cbr extent-tree metadata block is on dead PV ETB0:4154701859 4154701859
|
||||
ETB_LOST 545012503 139198509 Comics/Love and Rockets/The Love and Rockets Library v13 - Angels and Magpies (2017).cbr extent-tree metadata block is on dead PV ETB0:4153874424 4153874424
|
||||
ETB_LOST 320624230 139198510 Comics/Love and Rockets/The Love and Rockets Library v14 - Three Sisters (2018).cbr extent-tree metadata block is on dead PV ETB0:4056268803 4056268803
|
||||
ETB_LOST 290193612 139198511 Comics/Love and Rockets/The Love and Rockets Library v15 - Children of Palomar and Other Tales (2023) (DrVink).cbz extent-tree metadata block is on dead PV ETB0:4130750467 4130750467
|
||||
ETB_LOST 355858882 139198505 Comics/Love and Rockets/Love and Rockets vol07 - Amor Y Cohetes (2008).cbz extent-tree metadata block is on dead PV ETB0:4067167853 4067167853
|
||||
ETB_LOST 136045565 139198513 Comics/Love and Rockets/Other TPBs/Chance in Hell (2007) (digital) (Mr Norrell-Empire).cbr extent-tree metadata block is on dead PV ETB0:4056263563 4056263563
|
||||
ETB_LOST 273631247 139198516 Comics/Love and Rockets/Other TPBs/Maria M - Complete (2019) (digital) (FatNerd).cbz extent-tree metadata block is on dead PV ETB0:4056391683 4056391683
|
||||
ETB_LOST 177268739 139198518 Comics/Love and Rockets/Other TPBs/The Troublemakers (2009) (digital-Empire).cbr extent-tree metadata block is on dead PV ETB0:4056616963 4056616963
|
||||
|
Executable
+8
@@ -0,0 +1,8 @@
|
||||
PLEX BOOKS UNKNOWN SECONDARY CHECK
|
||||
==================================
|
||||
Unknown entries checked: 23
|
||||
Dead block range: 3418636288-4395389951
|
||||
|
||||
ETB_LOST 23 files 4.58 GiB
|
||||
|
||||
Report: /mnt/recovery/plex-books-unknown-check.tsv
|
||||
Executable
+682
File diff suppressed because one or more lines are too long
Executable
+9
@@ -0,0 +1,9 @@
|
||||
/Warez/3D Printing RECOVERY
|
||||
===========================
|
||||
Source: /Warez/3D Printing
|
||||
Destination: /mnt/recovery/Warez/3D Printing
|
||||
Recovered: 598 files, 24.17 GiB
|
||||
Already present: 0 files, 0.00 B
|
||||
Errors: 0
|
||||
Free remaining: 870.14 GiB
|
||||
Log: /mnt/recovery/warez-3d-printing-recovery.tsv
|
||||
Executable
+599
@@ -0,0 +1,599 @@
|
||||
status bytes inode path detail
|
||||
RECOVERED 854308149 137363669 Pantheons Bronze Dragons Freebie Wyrmling.zip
|
||||
RECOVERED 293376932 137363500 Tavern Set Part 1.zip
|
||||
RECOVERED 799010292 137364293 Iron Bladenought.zip
|
||||
RECOVERED 99869517 137364297 Skull-Coin.zip
|
||||
RECOVERED 1195895242 137364368 Brick Ruins.zip
|
||||
RECOVERED 78537898 137364873 Wooden Barricade.zip
|
||||
RECOVERED 222948705 137363555 Fantasy Wooden Crates.zip
|
||||
RECOVERED 3535631 137363573 Collar_Spikes.3mf
|
||||
RECOVERED 25727438 137363798 June 26.zip
|
||||
RECOVERED 36965377 137363604 Dungeon Ruins Part 1.zip
|
||||
RECOVERED 30204568 137363605 Dungeon Ruins Part 2.zip
|
||||
RECOVERED 72662902 137233029 Chicken Coop.zip
|
||||
RECOVERED 141250226 137233028 Modular Garden Fence Set.zip
|
||||
RECOVERED 294496851 137363533 Chibi Owlbear.zip
|
||||
RECOVERED 203215676 137363490 Modular Fuel Piepeline.zip
|
||||
RECOVERED 232349408 137363517 Tethered Isle.zip
|
||||
RECOVERED 77720312 137363519 Cannon & Shot Set.zip
|
||||
RECOVERED 101207120 137363521 D20 Dice Vault.zip
|
||||
RECOVERED 62413207 137363528 E-Z DUNGEONS ANNIVERSARY.zip
|
||||
RECOVERED 316411563 137363532 Brick Battle Terrain Set.zip
|
||||
RECOVERED 148557245 137363538 Fractorum Extraction Platform.zip
|
||||
RECOVERED 248746469 137363540 Individual Leaf Roller.zip
|
||||
RECOVERED 302328676 137363541 Jungle Temple Golem.zip
|
||||
RECOVERED 133902385 137363544 Tactical Rocks.zip
|
||||
RECOVERED 317704670 137363580 Berry Shrub Set.zip
|
||||
RECOVERED 77151803 137363598 Ballista.zip
|
||||
RECOVERED 212747153 137363609 Gravestones and Zombie Hands.zip
|
||||
RECOVERED 208351283 137363628 Pumpkin Golem.zip
|
||||
RECOVERED 79021826 137363624 Cave Fungus Wall Straight.zip
|
||||
RECOVERED 266469789 137363625 Defense Wall Set.zip
|
||||
RECOVERED 335683851 137363626 DnD Coin Roller.zip
|
||||
RECOVERED 370850846 137363635 Pendulum Blade Trap.zip
|
||||
RECOVERED 120113497 137363761 Neo Atlantis Mech Set.zip
|
||||
RECOVERED 7068692 137363606 Fab365 Foldable Star Wars Tie Fighter.zip
|
||||
RECOVERED 24615131 137363601 Dice Miner - Mountain SolidBack.3mf
|
||||
RECOVERED 13187802 137363627 Microfiber_Holder.3mf
|
||||
RECOVERED 2555122 137363646 Removable+poop+bucket+(A1,A1+mini)+one+color+.3mf
|
||||
RECOVERED 1319116 137363648 scrub_daddy_holder v2.3mf
|
||||
RECOVERED 3554745 137363740 Spiky_Bracelet_Set_22x2_3MF.3mf
|
||||
RECOVERED 82113949 137363790 Boulder Scatter Set.zip
|
||||
RECOVERED 88427388 137363791 Bulk Storage Tank.zip
|
||||
RECOVERED 14863224 137363793 CrownColonySample.zip
|
||||
RECOVERED 59031573 137363799 Ritual Altar.zip
|
||||
RECOVERED 172258347 137363801 Wooden Stairway Set.zip
|
||||
RECOVERED 70555348 137363786 Wheres Ghosto.zip
|
||||
RECOVERED 11251482 137363518 Remixed Balloon Toy Car.zip
|
||||
RECOVERED 210015309 137363537 Fractorum Decimator Drill.zip
|
||||
RECOVERED 100785428 137363623 Shipping Containers.zip
|
||||
RECOVERED 163134684 137363543 Rowing Boat Set.zip
|
||||
RECOVERED 5213701 137363511 New Orleans Saints - Caesars Superdome.zip
|
||||
RECOVERED 186152303 137363603 Baba Yaga.zip
|
||||
RECOVERED 505628402 137363599 Can Turret Missile and Pad.zip
|
||||
RECOVERED 133013341 137363690 Mountain Barrier Bouldes.zip
|
||||
RECOVERED 438208740 137363765 Pit Fiend.zip
|
||||
RECOVERED 138374218 137363546 Wooden Fence Pack.zip
|
||||
RECOVERED 128798255 137363557 Full-Mast Waving Flags.zip
|
||||
RECOVERED 298162688 137363531 Ripper Street Cobble Roller.zip
|
||||
RECOVERED 3573461 137363561 BuildPlate_Cleaner.3mf
|
||||
RECOVERED 155082259 137363554 Electrical Pylon.zip
|
||||
RECOVERED 696905736 137364777 Bandit Camp Watchtower.zip
|
||||
RECOVERED 228267251 137363534 Crystal Clusters.zip
|
||||
RECOVERED 52087536 137363612 Hazard Stripe Roller.zip
|
||||
RECOVERED 80716270 137363602 Laughing Demon.zip
|
||||
RECOVERED 125843448 137363536 Dungeon Gates Set.zip
|
||||
RECOVERED 326186953 137363520 Cow Herd and Flesh Mimic.zip
|
||||
RECOVERED 288321512 137363542 Pillbox.zip
|
||||
RECOVERED 349884 137363649 Simple Fursuit Teeth.stl
|
||||
RECOVERED 280444319 137363545 Texture Pot Palette.zip
|
||||
RECOVERED 244604942 137363600 Can Turret.zip
|
||||
RECOVERED 125789812 137363526 Rock Formation Archway.zip
|
||||
RECOVERED 459535865 137363639 Loadmaster C7 Utility Transport VTOL.zip
|
||||
RECOVERED 745126 137363743 Primative Banshee.zip
|
||||
RECOVERED 629444 137363647 Removable+poop+bucket+mount+only.3mf
|
||||
RECOVERED 84778365 137363535 D6 Pocket Nuke.zip
|
||||
RECOVERED 374574607 137363539 Grim Machina.zip
|
||||
RECOVERED 4345572 137363763 Windmill_Optical_Illusion_608_Mod.3mf
|
||||
RECOVERED 118334008 137363667 Mimic Bauble.zip
|
||||
RECOVERED 68659334 137363671 Stone Pillar Set.zip
|
||||
RECOVERED 36110015 137363684 Emergency Dice Jail.zip
|
||||
RECOVERED 137321118 137363716 Urban Street Props.zip
|
||||
RECOVERED 162956378 137363789 6x2 Terrain Footprint Container.zip
|
||||
RECOVERED 110530562 137363792 Crater or Sandworm Pit.zip
|
||||
RECOVERED 25727184 137363800 Rusty FAT.stl
|
||||
RECOVERED 898 137756940 Toxic Mushroom Scatter/CMM Terms and License.txt
|
||||
RECOVERED 62789374 137756941 Toxic Mushroom Scatter/FDM_Toxic Mushroom Scatter.zip
|
||||
RECOVERED 6551713 137756942 Toxic Mushroom Scatter/Photos_Toxic Mushroom Scatter.zip
|
||||
RECOVERED 126731432 137756943 Toxic Mushroom Scatter/Resin_Toxic Mushroom Scatter.zip
|
||||
RECOVERED 37063576 137756913 Green Wyrmling Pose 1/30mm Scale/Supported/LYS_30mm_Green_Wyrmling_Pose1_Supported.lys
|
||||
RECOVERED 104939384 137756914 Green Wyrmling Pose 1/30mm Scale/Supported/STL_30mm_Green_Wyrmling_Pose1_Base_Supported.stl
|
||||
RECOVERED 106756084 137756915 Green Wyrmling Pose 1/30mm Scale/Supported/STL_30mm_Green_Wyrmling_Pose1_Butterfly_Supported.stl
|
||||
RECOVERED 100002884 137756906 Green Wyrmling Pose 1/15mm Scale/Unsupported/15mm_Green_Wyrmling_Pose1.stl
|
||||
RECOVERED 99996584 137756907 Green Wyrmling Pose 1/15mm Scale/Unsupported/15mm_Green_Wyrmling_Pose1_Base.stl
|
||||
RECOVERED 36286824 137756899 Green Wyrmling Pose 1/15mm Scale/Supported/LYS_15mm_Green_Wyrmling_Pose1_Base_Supported.lys
|
||||
RECOVERED 36513122 137756900 Green Wyrmling Pose 1/15mm Scale/Supported/LYS_15mm_Green_Wyrmling_Pose1_Butterfly_Supported.lys
|
||||
RECOVERED 36562067 137756901 Green Wyrmling Pose 1/15mm Scale/Supported/LYS_15mm_Green_Wyrmling_Pose1_Supported.lys
|
||||
RECOVERED 101623184 137756902 Green Wyrmling Pose 1/15mm Scale/Supported/STL_15mm_Green_Wyrmling_Pose1_Base_Supported.stl
|
||||
RECOVERED 103319484 137756903 Green Wyrmling Pose 1/15mm Scale/Supported/STL_15mm_Green_Wyrmling_Pose1_Butterfly_Supported.stl
|
||||
RECOVERED 103542884 137756904 Green Wyrmling Pose 1/15mm Scale/Supported/STL_15mm_Green_Wyrmling_Pose1_Supported.stl
|
||||
RECOVERED 898 137756830 Fractured Shard Clusters/CMM Terms and License.txt
|
||||
RECOVERED 89495574 137756852 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 1 Pre-Supported.chitubox
|
||||
RECOVERED 120979634 137756853 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 1 Pre-Supported.stl
|
||||
RECOVERED 84697790 137756854 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 2 Pre-Supported.chitubox
|
||||
RECOVERED 114314984 137756855 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 2 Pre-Supported.stl
|
||||
RECOVERED 69244872 137756856 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 3 Pre-Supported.chitubox
|
||||
RECOVERED 93180084 137756857 Fractured Shard Clusters/Resin Fractured Shard Clusters/Fractured Shard Cluster 3 Pre-Supported.stl
|
||||
RECOVERED 50539026 137756858 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Cluster 1 Pre-Supported.chitubox
|
||||
RECOVERED 67415884 137756859 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Cluster 1 Pre-Supported.stl
|
||||
RECOVERED 61619534 137756860 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Cluster 2 Pre-Supported.stl
|
||||
RECOVERED 34014386 137756861 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Cluster 3 Pre-Supported.chitubox
|
||||
RECOVERED 44978934 137756862 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Cluster 3 Pre-Supported.stl
|
||||
RECOVERED 46155644 137756863 Fractured Shard Clusters/Resin Fractured Shard Clusters/Smaller Fractured Shard Clustern 2 Pre-Supported.chitubox
|
||||
RECOVERED 1817133 137756839 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (1).png
|
||||
RECOVERED 1914608 137756840 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (10).png
|
||||
RECOVERED 1484173 137756841 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (11).png
|
||||
RECOVERED 2672549 137756842 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (12).png
|
||||
RECOVERED 1966814 137756843 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (2).png
|
||||
RECOVERED 1597012 137756844 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (3).png
|
||||
RECOVERED 1539476 137756845 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (4).png
|
||||
RECOVERED 2010537 137756846 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (5).png
|
||||
RECOVERED 1545138 137756847 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (6).png
|
||||
RECOVERED 2487072 137756848 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (7).png
|
||||
RECOVERED 1672899 137756849 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (8).png
|
||||
RECOVERED 2489859 137756850 Fractured Shard Clusters/Photos Fractured Shard Clusters/Fractured Shard Clusters (9).png
|
||||
RECOVERED 49088284 137756832 Fractured Shard Clusters/FDM Fractured Shard Clusters/Fractured Shard Cluster 1.stl
|
||||
RECOVERED 38240634 137756833 Fractured Shard Clusters/FDM Fractured Shard Clusters/Fractured Shard Cluster 2.stl
|
||||
RECOVERED 28017984 137756834 Fractured Shard Clusters/FDM Fractured Shard Clusters/Fractured Shard Cluster 3.stl
|
||||
RECOVERED 39201634 137756835 Fractured Shard Clusters/FDM Fractured Shard Clusters/Smaller Fractured Shard Cluster 1.stl
|
||||
RECOVERED 31523034 137756836 Fractured Shard Clusters/FDM Fractured Shard Clusters/Smaller Fractured Shard Cluster 2.stl
|
||||
RECOVERED 22174584 137756837 Fractured Shard Clusters/FDM Fractured Shard Clusters/Smaller Fractured Shard Cluster 3.stl
|
||||
RECOVERED 898 137693027 Concrete Broadcast Crosses/CMM Terms and License.txt
|
||||
RECOVERED 54397376 137693044 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 1 Pre-Supported.chitubox
|
||||
RECOVERED 72725734 137693045 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 1 Pre-Supported.stl
|
||||
RECOVERED 58967408 137693046 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 2 Pre-Supported.chitubox
|
||||
RECOVERED 78753184 137693047 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 2 Pre-Supported.stl
|
||||
RECOVERED 76245450 137693048 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 3 Pre-Supported.chitubox
|
||||
RECOVERED 102052484 137693049 Concrete Broadcast Crosses/Resin Concrete Broadcast Crosses/Concrete Broadcast Cross 3 Pre-Supported.stl
|
||||
RECOVERED 1000282 137693033 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (1).jpg
|
||||
RECOVERED 1168548 137693034 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (10).jpg
|
||||
RECOVERED 956129 137693035 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (2).jpg
|
||||
RECOVERED 954226 137693036 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (3).jpg
|
||||
RECOVERED 965849 137693037 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (4).jpg
|
||||
RECOVERED 830531 137693038 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (5).jpg
|
||||
RECOVERED 958242 137693039 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (6).jpg
|
||||
RECOVERED 344920 137693040 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (7).jpg
|
||||
RECOVERED 933479 137693041 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (8).jpg
|
||||
RECOVERED 1076907 137693042 Concrete Broadcast Crosses/Photos Concrete Broadcast Crosses/Concrete Broadcast Crosses (9).jpg
|
||||
RECOVERED 25620284 137693029 Concrete Broadcast Crosses/FDM Concrete Broadcast Crosses/Concrete Broadcast Cross 1.stl
|
||||
RECOVERED 29328134 137693030 Concrete Broadcast Crosses/FDM Concrete Broadcast Crosses/Concrete Broadcast Cross 2.stl
|
||||
RECOVERED 32627134 137693031 Concrete Broadcast Crosses/FDM Concrete Broadcast Crosses/Concrete Broadcast Cross 3.stl
|
||||
RECOVERED 76784 137692961 Hot swap SATA-SAS drive rails for Dell R510 and similar servers/Dell_R510_HDD_bracket_-_Bracket_L.stl
|
||||
RECOVERED 77584 137692962 Hot swap SATA-SAS drive rails for Dell R510 and similar servers/Dell_R510_HDD_bracket_-_Bracket_R.stl
|
||||
RECOVERED 566584 137692963 Hot swap SATA-SAS drive rails for Dell R510 and similar servers/Dell_R510_HDD_bracket_-_Handle.stl
|
||||
RECOVERED 248108 137692950 HOTAS Chair Mount/1_BaseLONG.3mf
|
||||
RECOVERED 2514804 137692951 HOTAS Chair Mount/2_baseshort_r3c.3mf
|
||||
RECOVERED 8432893 137692952 HOTAS Chair Mount/3_BaseSHORT_OPTCUP.3mf
|
||||
RECOVERED 109007 137692953 HOTAS Chair Mount/Bottom_MEDIUM.3mf
|
||||
RECOVERED 59783 137692954 HOTAS Chair Mount/Bottom_SHORT.3mf
|
||||
RECOVERED 143077 137692955 HOTAS Chair Mount/Bottom_TALL.3mf
|
||||
RECOVERED 51084 137363668 HP HDD Mounting Screw Adapters/hp_screw_final.stl
|
||||
RECOVERED 4096 137363670 HP HDD Mounting Screw Adapters/._hp_screw_final.stl
|
||||
RECOVERED 234669 137363674 HP HDD Mounting Screw Adapters/23870-hp-hdd-mounting-screw-450712-001-82efb47f-5e99-4317-aea5-832d210fe502.pdf
|
||||
RECOVERED 4096 137363718 HP HDD Mounting Screw Adapters/._23870-hp-hdd-mounting-screw-450712-001-82efb47f-5e99-4317-aea5-832d210fe502.pdf
|
||||
RECOVERED 392718 137363720 HP HDD Mounting Screw Adapters/hp_screw_m3_style.stl
|
||||
RECOVERED 4096 137363726 HP HDD Mounting Screw Adapters/._hp_screw_m3_style.stl
|
||||
RECOVERED 2428622 137363732 HP HDD Mounting Screw Adapters/CE3E3V2_hp_screw.gcode
|
||||
RECOVERED 1052814 137692976 PSP Battery Cover (2001, 2002 etc) - 5385165/CE3E3V2_PSP200x-Battery_Cover1.2.gcode
|
||||
RECOVERED 103 137692977 PSP Battery Cover (2001, 2002 etc) - 5385165/LICENSE.txt
|
||||
RECOVERED 381 137692978 PSP Battery Cover (2001, 2002 etc) - 5385165/README.txt
|
||||
RECOVERED 275900 137692982 PSP Battery Cover (2001, 2002 etc) - 5385165/images/Fitted.jpg
|
||||
RECOVERED 226175 137692983 PSP Battery Cover (2001, 2002 etc) - 5385165/images/PSP200x-Battery_Cover1.2.png
|
||||
RECOVERED 60984 137692980 PSP Battery Cover (2001, 2002 etc) - 5385165/files/PSP200x-Battery_Cover1.2.stl
|
||||
RECOVERED 898 137756763 Flexible Rulers/CMM Terms and License.txt
|
||||
RECOVERED 3563067 137756823 Flexible Rulers/Resin There Be Dragons Ruler/Link End Pre-Supported.chitubox
|
||||
RECOVERED 4371584 137756824 Flexible Rulers/Resin There Be Dragons Ruler/Link End Pre-Supported.stl
|
||||
RECOVERED 5669437 137756825 Flexible Rulers/Resin There Be Dragons Ruler/Link Pre-Supported.chitubox
|
||||
RECOVERED 6990784 137756826 Flexible Rulers/Resin There Be Dragons Ruler/Link Pre-Supported.stl
|
||||
RECOVERED 105545116 137756827 Flexible Rulers/Resin There Be Dragons Ruler/There Be Dragons Pre-Supported.chitubox
|
||||
RECOVERED 143372384 137756828 Flexible Rulers/Resin There Be Dragons Ruler/There Be Dragons Pre-Supported.stl
|
||||
RECOVERED 63907466 137756816 Flexible Rulers/Resin ChainSword Ruler/Chainsword Pre-Supported.chitubox
|
||||
RECOVERED 86901584 137756817 Flexible Rulers/Resin ChainSword Ruler/Chainsword Pre-Supported.stl
|
||||
RECOVERED 3563067 137756818 Flexible Rulers/Resin ChainSword Ruler/Link End Pre-Supported.chitubox
|
||||
RECOVERED 4371584 137756819 Flexible Rulers/Resin ChainSword Ruler/Link End Pre-Supported.stl
|
||||
RECOVERED 5669437 137756820 Flexible Rulers/Resin ChainSword Ruler/Link Pre-Supported.chitubox
|
||||
RECOVERED 6990784 137756821 Flexible Rulers/Resin ChainSword Ruler/Link Pre-Supported.stl
|
||||
RECOVERED 1273824 137756806 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (1).jpg
|
||||
RECOVERED 318578 137756807 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (2).jpg
|
||||
RECOVERED 969767 137756808 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (3).jpg
|
||||
RECOVERED 678521 137756810 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (5).jpg
|
||||
RECOVERED 606120 137756811 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (6).jpg
|
||||
RECOVERED 1446650 137756812 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (7).jpg
|
||||
RECOVERED 987762 137756813 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (8).jpg
|
||||
RECOVERED 1074434 137756814 Flexible Rulers/Photos There Be Dragons Ruler/There Be Dragons Ruler (9).jpg
|
||||
RECOVERED 634083 137756795 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (1).jpg
|
||||
RECOVERED 1125157 137756796 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (10).jpg
|
||||
RECOVERED 318578 137756797 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (2).jpg
|
||||
RECOVERED 615823 137756798 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (3).jpg
|
||||
RECOVERED 343885 137756799 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (4).jpg
|
||||
RECOVERED 554036 137756800 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (5).jpg
|
||||
RECOVERED 534913 137756801 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (6).jpg
|
||||
RECOVERED 665674 137756802 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (7).jpg
|
||||
RECOVERED 1274167 137756803 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (8).jpg
|
||||
RECOVERED 1140042 137756804 Flexible Rulers/Photos ChainSword Ruler/ChainSword Ruler (9).jpg
|
||||
RECOVERED 10854784 137756780 Flexible Rulers/FDM There Be Dragons Ruler/10ft.stl
|
||||
RECOVERED 10867284 137756781 Flexible Rulers/FDM There Be Dragons Ruler/15ft.stl
|
||||
RECOVERED 10992584 137756782 Flexible Rulers/FDM There Be Dragons Ruler/20ft.stl
|
||||
RECOVERED 7314684 137756783 Flexible Rulers/FDM There Be Dragons Ruler/25ft.stl
|
||||
RECOVERED 11136784 137756784 Flexible Rulers/FDM There Be Dragons Ruler/30ft.stl
|
||||
RECOVERED 11001584 137756785 Flexible Rulers/FDM There Be Dragons Ruler/35ft.stl
|
||||
RECOVERED 11022384 137756786 Flexible Rulers/FDM There Be Dragons Ruler/40ft.stl
|
||||
RECOVERED 11238084 137756787 Flexible Rulers/FDM There Be Dragons Ruler/45ft.stl
|
||||
RECOVERED 11201084 137756788 Flexible Rulers/FDM There Be Dragons Ruler/50ft.stl
|
||||
RECOVERED 10869484 137756789 Flexible Rulers/FDM There Be Dragons Ruler/55ft.stl
|
||||
RECOVERED 9711384 137756790 Flexible Rulers/FDM There Be Dragons Ruler/5ft.stl
|
||||
RECOVERED 10609784 137756791 Flexible Rulers/FDM There Be Dragons Ruler/Dragon_Head.stl
|
||||
RECOVERED 3731384 137756792 Flexible Rulers/FDM There Be Dragons Ruler/End Link.stl
|
||||
RECOVERED 5329384 137756793 Flexible Rulers/FDM There Be Dragons Ruler/Link.stl
|
||||
RECOVERED 5897284 137756765 Flexible Rulers/FDM ChainSword Ruler/Chainsword Ruler End.stl
|
||||
RECOVERED 6356084 137756766 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_10.stl
|
||||
RECOVERED 6277584 137756767 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_11.stl
|
||||
RECOVERED 6208084 137756768 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_1inch_Handle.stl
|
||||
RECOVERED 6284784 137756769 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_2.stl
|
||||
RECOVERED 6274484 137756770 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_3.stl
|
||||
RECOVERED 6242784 137756771 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_4.stl
|
||||
RECOVERED 6264684 137756772 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_5.stl
|
||||
RECOVERED 6271284 137756773 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_6.stl
|
||||
RECOVERED 6200784 137756774 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_7.stl
|
||||
RECOVERED 6296884 137756775 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_8.stl
|
||||
RECOVERED 6270784 137756776 Flexible Rulers/FDM ChainSword Ruler/Chainsword_Ruler_9.stl
|
||||
RECOVERED 3731384 137756777 Flexible Rulers/FDM ChainSword Ruler/End Link.stl
|
||||
RECOVERED 5329384 137756778 Flexible Rulers/FDM ChainSword Ruler/Link.stl
|
||||
RECOVERED 4052284 139001901 Gunslinger/War Scenery Base 27mm District 1919.stl
|
||||
RECOVERED 506184 139001902 Gunslinger/War Scenery Base 27mm.stl
|
||||
RECOVERED 4737884 139001903 Gunslinger/War Scenery Base Top Layer District 1919 for 27mm Base.stl
|
||||
RECOVERED 691984 139001877 Dart Zone 6 Dart Cutter 38mm/6_dart__cutter_38mm.stl
|
||||
RECOVERED 5070395 139001878 Dart Zone 6 Dart Cutter 38mm/CE3E3V2_6_dart_cutter_38mm-econofil.gcode
|
||||
RECOVERED 104 139001879 Dart Zone 6 Dart Cutter 38mm/README.txt
|
||||
RECOVERED 1258784 139001891 Diamond Painting Stuff/Pen Holder/Diamond Painting Pen Holder.stl
|
||||
RECOVERED 6333058 139001890 Diamond Painting Stuff/Pen Holder/CE3E3V2_Diamond Painting Pen Holder x2.gcode
|
||||
RECOVERED 9784 139001859 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box BIG 1.stl
|
||||
RECOVERED 8584 139001860 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box BIG 2.stl
|
||||
RECOVERED 14884 139001861 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box SMALL 1 grooved.stl
|
||||
RECOVERED 9384 139001862 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box SMALL 1.stl
|
||||
RECOVERED 10584 139001863 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box SMALL 2 grooved.stl
|
||||
RECOVERED 5784 139001864 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Box SMALL 2.stl
|
||||
RECOVERED 47384 139001865 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Drawer BIG.stl
|
||||
RECOVERED 62584 139001866 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Drawer SMALL holes.stl
|
||||
RECOVERED 60084 139001867 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Drawer SMALL.stl
|
||||
RECOVERED 138284 139001868 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/Spoolcycle - Guide.stl
|
||||
RECOVERED 81319 139001875 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/spool-storage-box-upcycling20210127-7086-fvyvl8.zip
|
||||
RECOVERED 4057127 139001870 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/gcode/CE3E3V2_Spoolcycle - Box SMALL 1 grooved x16.gcode
|
||||
RECOVERED 1866534 139001871 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/gcode/CE3E3V2_Spoolcycle - Box SMALL 2 grooved x8.gcode
|
||||
RECOVERED 2535977 139001872 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/gcode/CE3E3V2_Spoolcycle - Drawer SMALL holes x2.gcode
|
||||
RECOVERED 3788014 139001873 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/gcode/CE3E3V2_Spoolcycle - Drawer SMALL holes x3.gcode
|
||||
RECOVERED 674608 139001874 Diamond Painting Stuff/SpoolCycle Diamond Painting Storage Box/gcode/CE3E3V2_Spoolcycle - Guide.gcode
|
||||
RECOVERED 11149127 138281071 Diamond Painting Stuff/Diamond Painting Pen/CE3E3V2_diamond-painting-pen-x2-econofil.gcode
|
||||
RECOVERED 946084 138281072 Diamond Painting Stuff/Diamond Painting Pen/Diamond Painting Pen.stl
|
||||
RECOVERED 84661 138281074 Diamond Painting Stuff/Diamond Painting Tray with Lid/383765-diamond-painting-schiffchen-mit-deckel-diamond-painting-boat-05c136d8-a362-4a0f-bd9b-7ef57236e510.pdf
|
||||
RECOVERED 931901 138281075 Diamond Painting Stuff/Diamond Painting Tray with Lid/CE3E3V2_Diamond Painting Tray Lid-Econofil.gcode
|
||||
RECOVERED 664712 138281076 Diamond Painting Stuff/Diamond Painting Tray with Lid/CE3E3V2_Diamond Painting Tray-Ecoofil.gcode
|
||||
RECOVERED 9584 138281077 Diamond Painting Stuff/Diamond Painting Tray with Lid/Diamant Painting deckel v3.stl
|
||||
RECOVERED 9084 138281078 Diamond Painting Stuff/Diamond Painting Tray with Lid/Diamond Painting Schiffchen.stl
|
||||
RECOVERED 435084 139526216 Fruit Fly Trap Mason Jar Lid/Fruit Fly Trap Lid - Hollow.stl
|
||||
RECOVERED 1099284 139526217 Fruit Fly Trap Mason Jar Lid/Fruit Fly Trap Lid.stl
|
||||
RECOVERED 2123084 139001927 Dirty Cookie Cutters/Kindly Fuck Off 3in.stl
|
||||
RECOVERED 2259184 139001928 Dirty Cookie Cutters/Kindly Fuck Off 4in.stl
|
||||
RECOVERED 2143284 139001929 Dirty Cookie Cutters/Please Go Die 3in.stl
|
||||
RECOVERED 2305284 139001930 Dirty Cookie Cutters/Please Go Die 4in.stl
|
||||
RECOVERED 1470884 139001931 Dirty Cookie Cutters/Stop Talking 3in.stl
|
||||
RECOVERED 1536784 139001932 Dirty Cookie Cutters/Stop Talking 4in.stl
|
||||
RECOVERED 1221084 139001925 Dirty Cookie Cutters/I Hope You Choke 3in.stl
|
||||
RECOVERED 1257584 139001926 Dirty Cookie Cutters/I Hope You Choke 4in.stl
|
||||
RECOVERED 30328071 137692973 Nerf Stock/CE3E3V2_stock.gcode
|
||||
RECOVERED 128484 137692974 Nerf Stock/stock.stl
|
||||
RECOVERED 898 137756945 Trap Door Dice Tower/CMM Terms and License.txt
|
||||
RECOVERED 101391388 137756964 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 1 Pre-Supported.chitubox
|
||||
RECOVERED 136933634 137756965 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 1 Pre-Supported.stl
|
||||
RECOVERED 62398568 137756966 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 2 Pre-Supported.chitubox
|
||||
RECOVERED 84218434 137756967 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 2 Pre-Supported.stl
|
||||
RECOVERED 20464254 137756968 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 3 Pre-Supported.chitubox
|
||||
RECOVERED 26953484 137756969 Trap Door Dice Tower/Resin Trap Door Dice Tower/Dice Tower Bottom 3 Pre-Supported.stl
|
||||
RECOVERED 72559916 137756970 Trap Door Dice Tower/Resin Trap Door Dice Tower/Tower Top Pre-Supported.chitubox
|
||||
RECOVERED 98502284 137756971 Trap Door Dice Tower/Resin Trap Door Dice Tower/Tower Top Pre-Supported.stl
|
||||
RECOVERED 22861553 137756972 Trap Door Dice Tower/Resin Trap Door Dice Tower/Trap Door Parts Pre-Supported.chitubox
|
||||
RECOVERED 31274084 137756973 Trap Door Dice Tower/Resin Trap Door Dice Tower/Trap Door Parts Pre-Supported.stl
|
||||
RECOVERED 2084131 137756955 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (1).jpg
|
||||
RECOVERED 1873962 137756956 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (2).jpg
|
||||
RECOVERED 1725658 137756957 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (3).jpg
|
||||
RECOVERED 2091628 137756958 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (4).jpg
|
||||
RECOVERED 2059490 137756959 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (5).jpg
|
||||
RECOVERED 1953213 137756960 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (6).jpg
|
||||
RECOVERED 2736361 137756961 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (7).jpg
|
||||
RECOVERED 1655191 137756962 Trap Door Dice Tower/Photos Trap Door Dice Tower/Trap Door Dice Tower (8).jpg
|
||||
RECOVERED 24081084 137756947 Trap Door Dice Tower/FDM Trap Door Dice Tower/Tower Bottom.stl
|
||||
RECOVERED 9210484 137756948 Trap Door Dice Tower/FDM Trap Door Dice Tower/Tower Top.stl
|
||||
RECOVERED 6076484 137756949 Trap Door Dice Tower/FDM Trap Door Dice Tower/Trap Door Joint.stl
|
||||
RECOVERED 2240084 137756950 Trap Door Dice Tower/FDM Trap Door Dice Tower/Trap Door Key Slot.stl
|
||||
RECOVERED 4530384 137756951 Trap Door Dice Tower/FDM Trap Door Dice Tower/Trap Door Key.stl
|
||||
RECOVERED 6708284 137756952 Trap Door Dice Tower/FDM Trap Door Dice Tower/Trap Door Mechanism.stl
|
||||
RECOVERED 4097584 137756953 Trap Door Dice Tower/FDM Trap Door Dice Tower/Trap Door.stl
|
||||
RECOVERED 898 137756922 Industrial Gothic Warehouse/CMM Terms and License.txt
|
||||
RECOVERED 47854708 137756937 Industrial Gothic Warehouse/Resin Industrial Gothic Warehouse/Industrial Gothic Warehouse Roof Pre-Supported.chitubox
|
||||
RECOVERED 63413534 137756938 Industrial Gothic Warehouse/Resin Industrial Gothic Warehouse/Industrial Gothic Warehouse Roof Pre-Supported.stl
|
||||
RECOVERED 1865989 137756927 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (1).jpg
|
||||
RECOVERED 1932764 137756928 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (2).jpg
|
||||
RECOVERED 1598117 137756929 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (3).jpg
|
||||
RECOVERED 1619276 137756930 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (4).jpg
|
||||
RECOVERED 1754479 137756931 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (5).jpg
|
||||
RECOVERED 2682332 137756932 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (6).jpg
|
||||
RECOVERED 1619805 137756933 Industrial Gothic Warehouse/Photos Industrial Gothic Warehouse/Industrial Gothic Warehosue (7).jpg
|
||||
RECOVERED 898 137756865 Froggie Familiars/CMM Terms and License.txt
|
||||
RECOVERED 43768273 137756892 Froggie Familiars/Resin Froggie Familiars/Frog Familiar Pre-Supported.chitubox
|
||||
RECOVERED 59099834 137756893 Froggie Familiars/Resin Froggie Familiars/Frog Familiar Pre-Supported.stl
|
||||
RECOVERED 44016979 137756894 Froggie Familiars/Resin Froggie Familiars/Tome Toad Pre-Supported.chitubox
|
||||
RECOVERED 59413684 137756895 Froggie Familiars/Resin Froggie Familiars/Tome Toad Pre-Supported.stl
|
||||
RECOVERED 2143253 137756870 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (1).jpg
|
||||
RECOVERED 3317928 137756871 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (10).jpg
|
||||
RECOVERED 1512930 137756872 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (11).jpg
|
||||
RECOVERED 1450477 137756873 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (12).jpg
|
||||
RECOVERED 1262294 137756874 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (13).jpg
|
||||
RECOVERED 2026011 137756875 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (14).jpg
|
||||
RECOVERED 1905651 137756876 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (15).jpg
|
||||
RECOVERED 1911125 137756877 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (16).jpg
|
||||
RECOVERED 4043953 137756878 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (17).jpg
|
||||
RECOVERED 2791676 137756879 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (18).jpg
|
||||
RECOVERED 2890146 137756880 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (19).jpg
|
||||
RECOVERED 1694873 137756881 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (2).jpg
|
||||
RECOVERED 2793474 137756882 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (20).jpg
|
||||
RECOVERED 3657585 137756883 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (21).jpg
|
||||
RECOVERED 542799 137756884 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (3).jpg
|
||||
RECOVERED 419269 137756885 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (4).jpg
|
||||
RECOVERED 818610 137756886 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (5).jpg
|
||||
RECOVERED 2711923 137756887 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (6).jpg
|
||||
RECOVERED 2359296 137756888 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (7).jpg
|
||||
RECOVERED 3474977 137756889 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (8).jpg
|
||||
RECOVERED 1676258 137756890 Froggie Familiars/Photos Froggie Familiars/Froggie Familiars (9).jpg
|
||||
RECOVERED 48944234 137756867 Froggie Familiars/FDM Froggie Familiars/Frog Familiar.stl
|
||||
RECOVERED 49108084 137756868 Froggie Familiars/FDM Froggie Familiars/Tome Toad.stl
|
||||
RECOVERED 898 137756687 Fantasy Coin Collection/CMM Terms and License.txt
|
||||
RECOVERED 5803248 137756738 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Copper_Mug_Pre-Supported.chitubox
|
||||
RECOVERED 7927384 137756739 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Copper_Mug_Pre-Supported.stl
|
||||
RECOVERED 6952454 137756740 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Gold_Crown_Pre-Supported.chitubox
|
||||
RECOVERED 9499484 137756741 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Gold_Crown_Pre-Supported.stl
|
||||
RECOVERED 5209740 137756742 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Silver_Moon_Pre-Supported.chitubox
|
||||
RECOVERED 7094184 137756743 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Frontier_Pack_Silver_Moon_Pre-Supported.stl
|
||||
RECOVERED 8688816 137756744 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Copper_Wheat_Pre-Supported.chitubox
|
||||
RECOVERED 11925184 137756745 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Copper_Wheat_Pre-Supported.stl
|
||||
RECOVERED 7448940 137756746 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Gold_Sun_Pre-Supported.chitubox
|
||||
RECOVERED 10184784 137756747 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Gold_Sun_Pre-Supported.stl
|
||||
RECOVERED 6043544 137756748 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Silver_Scale_Pre-Supported.chitubox
|
||||
RECOVERED 8253284 137756749 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Harvest_Pack_Silver_Scale_Pre-Supported.stl
|
||||
RECOVERED 8098940 137756750 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Gold_Gryphon_Pre-Supported.chitubox
|
||||
RECOVERED 11096584 137756751 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Gold_Gryphon_Pre-Supported.stl
|
||||
RECOVERED 6343000 137756752 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Owl_Copper_Pre-Supported.chitubox
|
||||
RECOVERED 8670184 137756753 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Owl_Copper_Pre-Supported.stl
|
||||
RECOVERED 8787984 137756754 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Silver_Lion_Pre-Supported.chitubox
|
||||
RECOVERED 12055184 137756755 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Mystic_Pack_Silver_Lion_Pre-Supported.stl
|
||||
RECOVERED 7729184 137756756 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Bronze_10_Pre-Supported.stl
|
||||
RECOVERED 4919440 137756757 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Copper_1_Pre-Supported.chitubox
|
||||
RECOVERED 6699984 137756758 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Copper_1_Pre-Supported.stl
|
||||
RECOVERED 5665684 137756759 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Gold_10_Pre-Supported.chitubox
|
||||
RECOVERED 5381704 137756760 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Silver_5_Pre-Supported.chitubox
|
||||
RECOVERED 7327784 137756761 Fantasy Coin Collection/Resin_Fantasy Coin Collection/Tally_Pack_Silver_5_Pre-Supported.stl
|
||||
RECOVERED 1672220 137756726 Fantasy Coin Collection/Images_Fantasy Coin Collection/Fantasy Coin Collection_Set (1).JPG
|
||||
RECOVERED 1319599 137756727 Fantasy Coin Collection/Images_Fantasy Coin Collection/Fantasy Coin Collection_Set (2).JPG
|
||||
RECOVERED 1127114 137756728 Fantasy Coin Collection/Images_Fantasy Coin Collection/Fantasy Coin Collection_Set (3).JPG
|
||||
RECOVERED 1543943 137756729 Fantasy Coin Collection/Images_Fantasy Coin Collection/Frontier Pack (1).JPG
|
||||
RECOVERED 1876833 137756730 Fantasy Coin Collection/Images_Fantasy Coin Collection/Frontier Pack (2).JPG
|
||||
RECOVERED 1517887 137756731 Fantasy Coin Collection/Images_Fantasy Coin Collection/Harvest Pack (1).JPG
|
||||
RECOVERED 2227237 137756732 Fantasy Coin Collection/Images_Fantasy Coin Collection/Harvest Pack (2).JPG
|
||||
RECOVERED 1188977 137756733 Fantasy Coin Collection/Images_Fantasy Coin Collection/Mystic Pack (1).JPG
|
||||
RECOVERED 1992069 137756734 Fantasy Coin Collection/Images_Fantasy Coin Collection/Mystic Pack (2).JPG
|
||||
RECOVERED 1317850 137756735 Fantasy Coin Collection/Images_Fantasy Coin Collection/Tally Pack (1).JPG
|
||||
RECOVERED 2114537 137756736 Fantasy Coin Collection/Images_Fantasy Coin Collection/Tally Pack (2).JPG
|
||||
RECOVERED 4210984 137756689 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Bronze_Mug.stl
|
||||
RECOVERED 2233484 137756690 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Copper_Mug_FDM_Bottom.stl
|
||||
RECOVERED 2066184 137756691 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Copper_Mug_FDM_Top.stl
|
||||
RECOVERED 4726484 137756692 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Gold_Crown.stl
|
||||
RECOVERED 2443184 137756693 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Gold_Crown_FDM_Bottom.stl
|
||||
RECOVERED 2388284 137756694 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Gold_Crown_FDM_Top.stl
|
||||
RECOVERED 3186384 137756695 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Silver_Moon.stl
|
||||
RECOVERED 1654084 137756696 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Silver_Moon_FDM_Bottom.stl
|
||||
RECOVERED 1648184 137756697 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Frontier_Pack_Silver_Moon_FDM_Top.stl
|
||||
RECOVERED 7695784 137756698 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Bronze_Wheat.stl
|
||||
RECOVERED 3938384 137756699 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Copper_Wheat_FDM_Bottom.stl
|
||||
RECOVERED 3842884 137756700 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Copper_Wheat_FDM_Top.stl
|
||||
RECOVERED 5580384 137756701 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Gold_Sun.stl
|
||||
RECOVERED 2867184 137756702 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Gold_Sun_FDM_Bottom.stl
|
||||
RECOVERED 2820684 137756703 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Gold_Sun_FDM_Top.stl
|
||||
RECOVERED 4573484 137756704 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Silver_Scale.stl
|
||||
RECOVERED 2378684 137756705 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Silver_Scale_FDM_Bottom.stl
|
||||
RECOVERED 2294884 137756706 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Harvest_Pack_Silver_Scale_FDM_Top.stl
|
||||
RECOVERED 6901384 137756707 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Gold_Gryphon.stl
|
||||
RECOVERED 3534184 137756708 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Gold_Gryphon_FDM_Bottom.stl
|
||||
RECOVERED 3477284 137756709 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Gold_Gryphon_FDM_Top.stl
|
||||
RECOVERED 4698184 137756710 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Owl_Bronze.stl
|
||||
RECOVERED 2522084 137756711 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Owl_Copper_FDM_Bottom.stl
|
||||
RECOVERED 2277184 137756712 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Owl_Copper_FDM_Top.stl
|
||||
RECOVERED 7778384 137756713 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Silver_Lion.stl
|
||||
RECOVERED 4078984 137756714 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Silver_Lion_FDM_Bottom.stl
|
||||
RECOVERED 3815484 137756715 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Mystic_Pack_Silver_Lion_FDM_Top.stl
|
||||
RECOVERED 2879784 137756716 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Bronze_1.stl
|
||||
RECOVERED 3615584 137756717 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Bronze_10.stl
|
||||
RECOVERED 3082184 137756718 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Bronze_5.stl
|
||||
RECOVERED 1514284 137756719 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Copper_1_FDM_Bottom.stl
|
||||
RECOVERED 1467684 137756720 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Copper_1_FDM_Top.stl
|
||||
RECOVERED 1912784 137756721 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Gold_10_FDM_Bottom.stl
|
||||
RECOVERED 1820084 137756722 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Gold_10_FDM_Top.stl
|
||||
RECOVERED 1611484 137756723 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Silver_5_FDM_Bottom.stl
|
||||
RECOVERED 1569184 137756724 Fantasy Coin Collection/FDM_Fantasy Coin Collection/Tally_Pack_Silver_5_FDM_Top.stl
|
||||
RECOVERED 898 137756674 Drybrush Prep Pallet/CMM Terms and License.txt
|
||||
RECOVERED 152265028 137756684 Drybrush Prep Pallet/Resin_Drybrush Prep Pallet/Drybrush Prep Pallet_Pre-Supported.chitubox
|
||||
RECOVERED 210254434 137756685 Drybrush Prep Pallet/Resin_Drybrush Prep Pallet/Drybrush Prep Pallet_Pre-Supported.stl
|
||||
RECOVERED 2188978 137756678 Drybrush Prep Pallet/Images_Drybrush Prep Pallet/Drybrush Prep Pallet (1).JPG
|
||||
RECOVERED 1658159 137756679 Drybrush Prep Pallet/Images_Drybrush Prep Pallet/Drybrush Prep Pallet (2).JPG
|
||||
RECOVERED 3328035 137756680 Drybrush Prep Pallet/Images_Drybrush Prep Pallet/Drybrush Prep Pallet (3).JPG
|
||||
RECOVERED 2999512 137756681 Drybrush Prep Pallet/Images_Drybrush Prep Pallet/Drybrush Prep Pallet (4).JPG
|
||||
RECOVERED 1840718 137756682 Drybrush Prep Pallet/Images_Drybrush Prep Pallet/Drybrush Prep Pallet (5).JPG
|
||||
RECOVERED 120367284 137756676 Drybrush Prep Pallet/FDM_Drybrush Prep Pallet/Drybrush Prep Pallet.stl
|
||||
RECOVERED 55553584 137692999 Cave Fungus Wall Angle/Cave Fungus Wall Angle 4x4 A.stl
|
||||
RECOVERED 55684784 137693000 Cave Fungus Wall Angle/Cave Fungus Wall Angle 4x4 B.stl
|
||||
RECOVERED 58020584 137693001 Cave Fungus Wall Angle/Cave Fungus Wall Angle 4x4 C.stl
|
||||
RECOVERED 56483684 137693002 Cave Fungus Wall Angle/Cave Fungus Wall Angle 4x4 D.stl
|
||||
RECOVERED 20805484 137692988 Cave Fungus Small Pools/Cave Fungus Small Pools 2x2 A.stl
|
||||
RECOVERED 20415284 137692989 Cave Fungus Small Pools/Cave Fungus Small Pools 2x2 B.stl
|
||||
RECOVERED 20281984 137692990 Cave Fungus Small Pools/Cave Fungus Small Pools 2x2 C.stl
|
||||
RECOVERED 20425784 137692991 Cave Fungus Small Pools/Cave Fungus Small Pools 2x2 D.stl
|
||||
RECOVERED 35850284 137692992 Cave Fungus Small Pools/Cave Fungus Small Pools 2x4 A.stl
|
||||
RECOVERED 35552784 137692993 Cave Fungus Small Pools/Cave Fungus Small Pools 2x4 B.stl
|
||||
RECOVERED 56340784 137692994 Cave Fungus Small Pools/Cave Fungus Small Pools 4x4 A.stl
|
||||
RECOVERED 56379984 137692995 Cave Fungus Small Pools/Cave Fungus Small Pools 4x4 B.stl
|
||||
RECOVERED 60991784 137692996 Cave Fungus Small Pools/Cave Fungus Small Pools 4x4 C.stl
|
||||
RECOVERED 56270384 137692997 Cave Fungus Small Pools/Cave Fungus Small Pools 4x4 D.stl
|
||||
RECOVERED 26121022 137693020 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Chain_Pre-Supported.chitubox
|
||||
RECOVERED 36096184 137693021 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Chain_Pre-Supported.stl
|
||||
RECOVERED 36728712 137693022 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Damaged_Pre-Supported.chitubox
|
||||
RECOVERED 50683284 137693023 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Damaged_Pre-Supported.stl
|
||||
RECOVERED 32674100 137693024 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Pre-Supported.chitubox
|
||||
RECOVERED 45028234 137693025 Chain Barricades/Resin_Chain Barricades/Chain Barricade_Pre-Supported.stl
|
||||
RECOVERED 751663 137693009 Chain Barricades/Photos_Chain Barricades/Chain Barricade.JPG
|
||||
RECOVERED 888123 137693010 Chain Barricades/Photos_Chain Barricades/Chain Barricades (1).JPG
|
||||
RECOVERED 715029 137693011 Chain Barricades/Photos_Chain Barricades/Chain Barricades (10).JPG
|
||||
RECOVERED 1416506 137693012 Chain Barricades/Photos_Chain Barricades/Chain Barricades (11).JPG
|
||||
RECOVERED 1291369 137693013 Chain Barricades/Photos_Chain Barricades/Chain Barricades (5).JPG
|
||||
RECOVERED 1784530 137693014 Chain Barricades/Photos_Chain Barricades/Chain Barricades (8).JPG
|
||||
RECOVERED 1048577 137693015 Chain Barricades/Photos_Chain Barricades/Chain Barricades (9).JPG
|
||||
RECOVERED 605814 137693016 Chain Barricades/Photos_Chain Barricades/Chain Barricades_Chain.JPG
|
||||
RECOVERED 782554 137693017 Chain Barricades/Photos_Chain Barricades/Chain Barricades_Parts.JPG
|
||||
RECOVERED 705995 137693018 Chain Barricades/Photos_Chain Barricades/Chain Barricade_Damaged.JPG
|
||||
RECOVERED 20542184 137693005 Chain Barricades/FDM_Chain Barricades/Chain Barricade.stl
|
||||
RECOVERED 27189184 137693006 Chain Barricades/FDM_Chain Barricades/Chain Barricade_Chain.stl
|
||||
RECOVERED 27399084 137693007 Chain Barricades/FDM_Chain Barricades/Chain Barricade_Damaged.stl
|
||||
RECOVERED 582384 137692965 Linky Dinks Articulated Self-Locking Links/BoltCap.STL
|
||||
RECOVERED 364684 137692967 Linky Dinks Articulated Self-Locking Links/Cup Holder ArmBASE.STL
|
||||
RECOVERED 681784 137692968 Linky Dinks Articulated Self-Locking Links/Link.STL
|
||||
RECOVERED 10120 137692969 Linky Dinks Articulated Self-Locking Links/Linky-Dinks.xlsx
|
||||
RECOVERED 516184 137692970 Linky Dinks Articulated Self-Locking Links/TabletStand.STL
|
||||
RECOVERED 127284 137692971 Linky Dinks Articulated Self-Locking Links/Tool.STL
|
||||
RECOVERED 2238584 139526220 Laundry Soap Drainer/Laundry_Soap_Holder_v1.stl
|
||||
RECOVERED 108 137692928 Articulating tablet arm (wall mount)/LICENSE.txt
|
||||
RECOVERED 754 137692929 Articulating tablet arm (wall mount)/README.txt
|
||||
RECOVERED 296931 137692941 Articulating tablet arm (wall mount)/images/Arm_till_plattan.PNG
|
||||
RECOVERED 272100 137692942 Articulating tablet arm (wall mount)/images/Nuts_and_bolts.png
|
||||
RECOVERED 300104 137692943 Articulating tablet arm (wall mount)/images/Strong_arm_type_1_-_long.png
|
||||
RECOVERED 318610 137692944 Articulating tablet arm (wall mount)/images/Strong_arm_type_2_-_long.png
|
||||
RECOVERED 344867 137692945 Articulating tablet arm (wall mount)/images/Strong_arm_type_2_-_short.png
|
||||
RECOVERED 343960 137692946 Articulating tablet arm (wall mount)/images/Strong_joint_need_2.png
|
||||
RECOVERED 249459 137692947 Articulating tablet arm (wall mount)/images/Strong_wall-_and_tablet_mount_need_2.png
|
||||
RECOVERED 248829 137692948 Articulating tablet arm (wall mount)/images/Tablet_holder.png
|
||||
RECOVERED 2710122 137692931 Articulating tablet arm (wall mount)/files/files.zip
|
||||
RECOVERED 1596084 137692932 Articulating tablet arm (wall mount)/files/Nuts_and_bolts.stl
|
||||
RECOVERED 11565 137692933 Articulating tablet arm (wall mount)/files/Print Estimate.xlsx
|
||||
RECOVERED 2145784 137692934 Articulating tablet arm (wall mount)/files/Strong_arm_type_1_-_long.stl
|
||||
RECOVERED 1462384 137692935 Articulating tablet arm (wall mount)/files/Strong_arm_type_2_-_long.stl
|
||||
RECOVERED 468284 137692936 Articulating tablet arm (wall mount)/files/Strong_arm_type_2_-_short.stl
|
||||
RECOVERED 517884 137692937 Articulating tablet arm (wall mount)/files/Strong_joint_need_2.stl
|
||||
RECOVERED 1141984 137692938 Articulating tablet arm (wall mount)/files/Strong_wall-_and_tablet_mount_need_2.stl
|
||||
RECOVERED 360584 137692939 Articulating tablet arm (wall mount)/files/Tablet_holder.stl
|
||||
RECOVERED 55084 137692957 Dell R410 RAID Caddy/Dell_T410_Drive_Tray_Front_Bezel.stl
|
||||
RECOVERED 35184 137692958 Dell R410 RAID Caddy/Dell_T410_Drive_Tray_Left_Arm.stl
|
||||
RECOVERED 34784 137692959 Dell R410 RAID Caddy/Dell_T410_Drive_Tray_Right_Arm.stl
|
||||
RECOVERED 5590757 137692985 April 2/Braziers.zip
|
||||
RECOVERED 34584928 137692986 April 2/Gallows_Model.zip
|
||||
RECOVERED 2091384 139001907 Sci-Fi Landing Pad/Landing Pad Lantern.stl
|
||||
RECOVERED 3284 137364029 Undercounter KCup Holder/Single Undercounter KCup Holder.stl
|
||||
RECOVERED 52384 137364031 Undercounter KCup Holder/Dual Undercounter KCup Holder.stl
|
||||
RECOVERED 107 137625866 Fillable Gnome/LICENSE.txt
|
||||
RECOVERED 86 137625872 Fillable Gnome/README.txt
|
||||
RECOVERED 228628 137625954 Fillable Gnome/images/405d6854-27da-4d8c-81b9-77995323ec46.png
|
||||
RECOVERED 233460 137625955 Fillable Gnome/images/c5cfe552-f237-48d0-8828-19960e172e5b.png
|
||||
RECOVERED 95078 137625956 Fillable Gnome/images/ce2285cb-a59a-4064-9e36-4b598d270e1b.jpg
|
||||
RECOVERED 8032084 137625951 Fillable Gnome/files/BODY3D_Gnome_remix_body_with_hole.stl
|
||||
RECOVERED 163084 137625952 Fillable Gnome/files/BODY3D_Gnome_remix_screw_plug.stl
|
||||
RECOVERED 78794625 137429253 Flooded Dungeon/zips/Flooded Cavern Expansion.zip
|
||||
RECOVERED 52597716 137429255 Flooded Dungeon/zips/Hallways 1i Flooded Transition.zip
|
||||
RECOVERED 300393434 137429256 Flooded Dungeon/zips/Jan 2024.zip
|
||||
RECOVERED 1487982654 137429257 Flooded Dungeon/zips/Newsletter.zip
|
||||
RECOVERED 23980784 137429241 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Corner TR2x2 A.stl
|
||||
RECOVERED 24142884 137429242 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Corner TR2x2 B.stl
|
||||
RECOVERED 10371584 137429243 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x1 A.stl
|
||||
RECOVERED 10305084 137429244 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x1 B.stl
|
||||
RECOVERED 18142284 137429245 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x2 A.stl
|
||||
RECOVERED 18379384 137429246 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x2 B.stl
|
||||
RECOVERED 18215284 137429247 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x2 C.stl
|
||||
RECOVERED 18453184 137429248 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x2 D.stl
|
||||
RECOVERED 35032184 137429249 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Straight TR2x4.stl
|
||||
RECOVERED 13677184 137429250 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Torch Base TR A.stl
|
||||
RECOVERED 13666184 137429251 Flooded Dungeon/Walls Flooded Transition/Dungeon Wall Torch Base TR B.stl
|
||||
RECOVERED 8497684 137429235 Flooded Dungeon/Walls Flooded/Dungeon Walls Straight Flooded/Dungeon Walls Straight FL 2x1 A.stl
|
||||
RECOVERED 8431484 137429236 Flooded Dungeon/Walls Flooded/Dungeon Walls Straight Flooded/Dungeon Walls Straight FL 2x1 B.stl
|
||||
RECOVERED 17201184 137429237 Flooded Dungeon/Walls Flooded/Dungeon Walls Straight Flooded/Dungeon Walls Straight FL 2x2 A.stl
|
||||
RECOVERED 17464684 137429238 Flooded Dungeon/Walls Flooded/Dungeon Walls Straight Flooded/Dungeon Walls Straight FL 2x2 B.stl
|
||||
RECOVERED 29825084 137429239 Flooded Dungeon/Walls Flooded/Dungeon Walls Straight Flooded/Dungeon Walls Straight FL 2x4.stl
|
||||
RECOVERED 23412684 137429232 Flooded Dungeon/Walls Flooded/Dungeon Walls Corners Flooded/Dungeon Walls Corner FL 2x2 A.stl
|
||||
RECOVERED 23424784 137429233 Flooded Dungeon/Walls Flooded/Dungeon Walls Corners Flooded/Dungeon Walls Corner FL 2x2 B.stl
|
||||
RECOVERED 12721684 137429230 Flooded Dungeon/Walls Flooded/Dungeon Wall Torch Flooded/Dungeon Wall Torch Base FL.stl
|
||||
RECOVERED 10383584 137429227 Flooded Dungeon/Secret Door Flooded Transition/Secret Door Base TR.stl
|
||||
RECOVERED 9424084 137429225 Flooded Dungeon/Secret Door Flooded/Secret Door Base FL.stl
|
||||
RECOVERED 20414984 137429222 Flooded Dungeon/Round Walls Flooded/Dungeon Round Wall FL 2x2 A.stl
|
||||
RECOVERED 20224684 137429223 Flooded Dungeon/Round Walls Flooded/Dungeon Round Wall FL 2x2 B.stl
|
||||
RECOVERED 12943184 137429215 Flooded Dungeon/Pillars/2_ Pillar Flooded FL A.stl
|
||||
RECOVERED 13836884 137429216 Flooded Dungeon/Pillars/2_ Pillar Flooded FL B.stl
|
||||
RECOVERED 12310884 137429217 Flooded Dungeon/Pillars/2_ Pillar Flooded FL C.stl
|
||||
RECOVERED 13164684 137429218 Flooded Dungeon/Pillars/2_ Pillar Flooded FL D.stl
|
||||
RECOVERED 12052484 137429219 Flooded Dungeon/Pillars/2_ Pillar Flooded FL E.stl
|
||||
RECOVERED 11840784 137429220 Flooded Dungeon/Pillars/2_ Pillar Flooded FL F.stl
|
||||
RECOVERED 28582184 137429209 Flooded Dungeon/Hallways 2i Flooded Transition/Dungeon Hall 2i TR2x2 A.stl
|
||||
RECOVERED 28682184 137429210 Flooded Dungeon/Hallways 2i Flooded Transition/Dungeon Hall 2i TR2x2 B.stl
|
||||
RECOVERED 33402284 137429211 Flooded Dungeon/Hallways 2i Flooded Transition/Dungeon Hall 2i TR2x4.stl
|
||||
RECOVERED 49024184 137429212 Flooded Dungeon/Hallways 2i Flooded Transition/Dungeon Hall 2i TR4x4L A.stl
|
||||
RECOVERED 77094384 137429213 Flooded Dungeon/Hallways 2i Flooded Transition/Dungeon Hall 2i TR4x4L B.stl
|
||||
RECOVERED 14606484 137429198 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x1 A.stl
|
||||
RECOVERED 14632584 137429199 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x1 B.stl
|
||||
RECOVERED 26720284 137429200 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x2 A.stl
|
||||
RECOVERED 26639484 137429201 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x2 B.stl
|
||||
RECOVERED 50168484 137429202 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x4 A.stl
|
||||
RECOVERED 50146284 137429203 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL 2x4 B.stl
|
||||
RECOVERED 64759184 137429204 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL Curve.stl
|
||||
RECOVERED 75221484 137429205 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL L4.stl
|
||||
RECOVERED 49531684 137429206 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL T4.stl
|
||||
RECOVERED 48713784 137429207 Flooded Dungeon/Hallways 2i Flooded/Dungeon Hallway 2i FL X4.stl
|
||||
RECOVERED 26353684 137429195 Flooded Dungeon/Hallways 1i Flooded Transition/Dungeon Hall 1i TR2x2 A.stl
|
||||
RECOVERED 26243384 137429196 Flooded Dungeon/Hallways 1i Flooded Transition/Dungeon Hall 1i TR2x2 B.stl
|
||||
RECOVERED 48649284 137429186 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i 2x4.stl
|
||||
RECOVERED 26010784 137429187 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i Corner.stl
|
||||
RECOVERED 22589384 137429188 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i Curve A.stl
|
||||
RECOVERED 22560184 137429189 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i Curve B.stl
|
||||
RECOVERED 29233884 137429190 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i End.stl
|
||||
RECOVERED 14747184 137429191 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i FL 2x1.stl
|
||||
RECOVERED 25933484 137429192 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i FL 2x2 A.stl
|
||||
RECOVERED 25805484 137429193 Flooded Dungeon/Hallways 1i Flooded/Dungeon Hallway 1i FL 2x2 B.stl
|
||||
RECOVERED 4359484 137429179 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 1x2.stl
|
||||
RECOVERED 5001984 137429180 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 1x4.stl
|
||||
RECOVERED 7787084 137429181 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 2x2.stl
|
||||
RECOVERED 9808284 137429182 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 2x4 A.stl
|
||||
RECOVERED 8950784 137429183 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 2x4 B.stl
|
||||
RECOVERED 16755684 137429184 Flooded Dungeon/Flooded Transition Dungeon Floor/Flooded Transition Dungeon Floor 4x4.stl
|
||||
RECOVERED 3404784 137429173 Flooded Dungeon/Flooded Dungeon Floor/Flooded Dungeon Floor FL 1x2.stl
|
||||
RECOVERED 6484584 137429174 Flooded Dungeon/Flooded Dungeon Floor/Flooded Dungeon Floor FL 1x4.stl
|
||||
RECOVERED 6165184 137429175 Flooded Dungeon/Flooded Dungeon Floor/Flooded Dungeon Floor FL 2x2.stl
|
||||
RECOVERED 11737084 137429176 Flooded Dungeon/Flooded Dungeon Floor/Flooded Dungeon Floor FL 2x4.stl
|
||||
RECOVERED 22266884 137429177 Flooded Dungeon/Flooded Dungeon Floor/Flooded Dungeon Floor FL 4x4.stl
|
||||
RECOVERED 29645184 137429167 Flooded Dungeon/Flooded Cavern Expansion/Flooded Cavern Floor 4x4 A.stl
|
||||
RECOVERED 29279184 137429168 Flooded Dungeon/Flooded Cavern Expansion/Flooded Cavern Floor 4x4 B.stl
|
||||
RECOVERED 29641584 137429169 Flooded Dungeon/Flooded Cavern Expansion/Flooded Cavern Floor 4x4 C.stl
|
||||
RECOVERED 30733084 137429170 Flooded Dungeon/Flooded Cavern Expansion/Flooded Cavern Floor 4x4 D.stl
|
||||
RECOVERED 29844484 137429171 Flooded Dungeon/Flooded Cavern Expansion/Flooded Cavern Floor 4x4 E.stl
|
||||
RECOVERED 15134884 137429161 Flooded Dungeon/Doors Flooded Transition/Dungeon Door Corner Flood TR L.stl
|
||||
RECOVERED 15127784 137429162 Flooded Dungeon/Doors Flooded Transition/Dungeon Door Corner Flood TR R.stl
|
||||
RECOVERED 12843284 137429163 Flooded Dungeon/Doors Flooded Transition/Dungeon Door Flood TR.stl
|
||||
RECOVERED 11996584 137429164 Flooded Dungeon/Doors Flooded Transition/Dungeon Door Offset Flood TR L.stl
|
||||
RECOVERED 12026084 137429165 Flooded Dungeon/Doors Flooded Transition/Dungeon Door Offset Flood TR R.stl
|
||||
RECOVERED 14334384 137429155 Flooded Dungeon/Doors Flooded/Dungeon Door Corner FL L.stl
|
||||
RECOVERED 14334884 137429156 Flooded Dungeon/Doors Flooded/Dungeon Door Corner FL R.stl
|
||||
RECOVERED 11819084 137429157 Flooded Dungeon/Doors Flooded/Dungeon Door Flood.stl
|
||||
RECOVERED 11026184 137429158 Flooded Dungeon/Doors Flooded/Dungeon Door Offset FL .stl
|
||||
RECOVERED 11026284 137429159 Flooded Dungeon/Doors Flooded/Dungeon Door Offset FL R.stl
|
||||
RECOVERED 19952184 137429148 Flooded Dungeon/Columns Flooded/Dungeon Columns Entrance FL A.stl
|
||||
RECOVERED 20202084 137429149 Flooded Dungeon/Columns Flooded/Dungeon Columns Entrance FL B.stl
|
||||
RECOVERED 11018284 137429150 Flooded Dungeon/Columns Flooded/Dungeon Columns FL 1.stl
|
||||
RECOVERED 13779284 137429151 Flooded Dungeon/Columns Flooded/Dungeon Columns FL 2.stl
|
||||
RECOVERED 16566384 137429152 Flooded Dungeon/Columns Flooded/Dungeon Columns FL 3.stl
|
||||
RECOVERED 19344384 137429153 Flooded Dungeon/Columns Flooded/Dungeon Columns FL 4.stl
|
||||
RECOVERED 19792184 137429143 Flooded Dungeon/Angled Walls Flooded/Angled Wall FL A.stl
|
||||
RECOVERED 19800884 137429144 Flooded Dungeon/Angled Walls Flooded/Angled Wall FL B.stl
|
||||
RECOVERED 11402484 137429145 Flooded Dungeon/Angled Walls Flooded/Angled Wall FL C.stl
|
||||
RECOVERED 19253584 137429146 Flooded Dungeon/Angled Walls Flooded/Angled Wall FL D.stl
|
||||
RECOVERED 21971584 137429140 Flooded Dungeon/Angled Hall Flooded Transition/Angled Hall TR2x1.stl
|
||||
RECOVERED 39363184 137429141 Flooded Dungeon/Angled Hall Flooded Transition/Angled Hall TR2x2.stl
|
||||
RECOVERED 20736584 137429127 Flooded Dungeon/Angled Hall Flooded/Angled Hall 2x1.stl
|
||||
RECOVERED 37709884 137429128 Flooded Dungeon/Angled Hall Flooded/Angled Hall 2x2.stl
|
||||
RECOVERED 69913484 137429129 Flooded Dungeon/Angled Hall Flooded/Angled Hall A.stl
|
||||
RECOVERED 57186484 137429130 Flooded Dungeon/Angled Hall Flooded/Angled Hall B.stl
|
||||
RECOVERED 58058984 137429132 Flooded Dungeon/Angled Hall Flooded/Angled Hall D.stl
|
||||
RECOVERED 20736584 137429133 Flooded Dungeon/Angled Hall Flooded/Angled Hall FL 2x1.stl
|
||||
RECOVERED 69913484 137429135 Flooded Dungeon/Angled Hall Flooded/Angled Hall FL A.stl
|
||||
RECOVERED 57186484 137429136 Flooded Dungeon/Angled Hall Flooded/Angled Hall FL B.stl
|
||||
RECOVERED 56785884 137429137 Flooded Dungeon/Angled Hall Flooded/Angled Hall FL C.stl
|
||||
RECOVERED 58058984 137429138 Flooded Dungeon/Angled Hall Flooded/Angled Hall FL D.stl
|
||||
|
Executable
+16
@@ -0,0 +1,16 @@
|
||||
/Warez/3D Printing SALVAGE SCAN
|
||||
===============================
|
||||
Source: /Warez/3D Printing
|
||||
Root inode: 137363480
|
||||
Dead blocks: 3418636288-4395389951
|
||||
Directories: 103
|
||||
Files seen: 682
|
||||
|
||||
SAFE: 598 files, 24.17 GiB
|
||||
LOST: 66 files, 9.85 GiB
|
||||
ETB_LOST: 18 files, 5.08 GiB
|
||||
ETB_SURVIVES: 0 files, 0.00 B
|
||||
UNKNOWN: 0 files, 0.00 B
|
||||
OTHER: 0 entries
|
||||
|
||||
Manifest: /mnt/recovery/warez-3d-printing-manifest.jsonl
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
{"status": "SAFE", "inode": 139004753, "path": "Cisco AIR-CAP2700 autonomous mode klokockainfo.pdf", "reason": "all physical data extents are outside the dead PV", "size": 459611, "blockcount": 904, "extents": [{"logical_start": 0, "logical_end": 112, "physical_start": 1113087819, "physical_end": 1113087931}], "etbs": []}
|
||||
{"status": "LOST", "inode": 139004869, "path": "teraterm-5.5.1-x64.zip", "reason": "one or more data extents overlap the dead PV", "size": 15396023, "blockcount": 30072, "extents": [{"logical_start": 0, "logical_end": 2047, "physical_start": 4004718592, "physical_end": 4004720639}, {"logical_start": 2048, "logical_end": 3758, "physical_start": 4021499770, "physical_end": 4021501480}], "overlaps": [{"logical_start": 0, "logical_end": 2047, "physical_start": 4004718592, "physical_end": 4004720639}, {"logical_start": 2048, "logical_end": 3758, "physical_start": 4021499770, "physical_end": 4021501480}], "etbs": []}
|
||||
{"status": "SAFE", "inode": 139004867, "path": "Tftpd64_Installer_v4.74.exe", "reason": "all physical data extents are outside the dead PV", "size": 684016, "blockcount": 1336, "extents": [{"logical_start": 0, "logical_end": 166, "physical_start": 1112866585, "physical_end": 1112866751}], "etbs": []}
|
||||
{"status": "SAFE", "inode": 139004866, "path": "Cisco AP Autonomous Firmware Update.txt", "reason": "all physical data extents are outside the dead PV", "size": 165, "blockcount": 8, "extents": [{"logical_start": 0, "logical_end": 0, "physical_start": 524435750, "physical_end": 524435750}], "etbs": []}
|
||||
{"status": "SAFE", "inode": 139004754, "path": "Cisco AP Firmware Tutorial & Tools.zip", "reason": "all physical data extents are outside the dead PV", "size": 16408869, "blockcount": 32056, "extents": [{"logical_start": 0, "logical_end": 2047, "physical_start": 1662554112, "physical_end": 1662556159}, {"logical_start": 2048, "logical_end": 4006, "physical_start": 1662551073, "physical_end": 1662553031}], "etbs": []}
|
||||
{"status": "LOST", "inode": 137233007, "path": "Firmware Files/ap3g2-k9w7-tar.153-3.JF15.tar", "reason": "one or more data extents overlap the dead PV", "size": 13864960, "blockcount": 27080, "extents": [{"logical_start": 0, "logical_end": 2047, "physical_start": 3674931200, "physical_end": 3674933247}, {"logical_start": 2048, "logical_end": 3384, "physical_start": 3674960233, "physical_end": 3674961569}], "overlaps": [{"logical_start": 0, "logical_end": 2047, "physical_start": 3674931200, "physical_end": 3674933247}, {"logical_start": 2048, "logical_end": 3384, "physical_start": 3674960233, "physical_end": 3674961569}], "etbs": []}
|
||||
{"status": "SAFE", "inode": 139002029, "path": "Firmware Files/ap3g2-k9w7-tar.153-3.JH.tar", "reason": "all physical data extents are outside the dead PV", "size": 13854720, "blockcount": 27064, "extents": [{"logical_start": 0, "logical_end": 3382, "physical_start": 2063288320, "physical_end": 2063291702}], "etbs": []}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
/Warez/Cisco AP Firmware RECOVERY
|
||||
=================================
|
||||
Source: /Warez/Cisco AP Firmware
|
||||
Destination: /mnt/recovery/Warez/Cisco AP Firmware
|
||||
Recovered: 5 files, 29.95 MiB
|
||||
Already present: 0 files, 0.00 B
|
||||
Errors: 0
|
||||
Free remaining: 870.11 GiB
|
||||
Log: /mnt/recovery/warez-cisco-ap-firmware-recovery.tsv
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
status bytes inode path detail
|
||||
RECOVERED 459611 139004753 Cisco AIR-CAP2700 autonomous mode klokockainfo.pdf
|
||||
RECOVERED 684016 139004867 Tftpd64_Installer_v4.74.exe
|
||||
RECOVERED 165 139004866 Cisco AP Autonomous Firmware Update.txt
|
||||
RECOVERED 16408869 139004754 Cisco AP Firmware Tutorial & Tools.zip
|
||||
RECOVERED 13854720 139002029 Firmware Files/ap3g2-k9w7-tar.153-3.JH.tar
|
||||
|
+16
@@ -0,0 +1,16 @@
|
||||
/Warez/Cisco AP Firmware SALVAGE SCAN
|
||||
=====================================
|
||||
Source: /Warez/Cisco AP Firmware
|
||||
Root inode: 139002028
|
||||
Dead blocks: 3418636288-4395389951
|
||||
Directories: 2
|
||||
Files seen: 7
|
||||
|
||||
SAFE: 5 files, 29.95 MiB
|
||||
LOST: 2 files, 27.91 MiB
|
||||
ETB_LOST: 0 files, 0.00 B
|
||||
ETB_SURVIVES: 0 files, 0.00 B
|
||||
UNKNOWN: 0 files, 0.00 B
|
||||
OTHER: 0 entries
|
||||
|
||||
Manifest: /mnt/recovery/warez-cisco-ap-firmware-manifest.jsonl
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
{"status": "SAFE", "inode": 137691151, "path": "BIOS_PFJXF_LN64_2.20.0.BIN", "reason": "all physical data extents are outside the dead PV", "size": 15071083, "blockcount": 29440, "extents": [{"logical_start": 0, "logical_end": 2047, "physical_start": 2380736512, "physical_end": 2380738559}, {"logical_start": 2048, "logical_end": 3679, "physical_start": 2380726426, "physical_end": 2380728057}], "etbs": []}
|
||||
{"status": "SAFE", "inode": 137691152, "path": "iDRAC-with-Lifecycle-Controller_Firmware_VWF72_LN64_2.86.86.86_A00.BIN", "reason": "all physical data extents are outside the dead PV", "size": 115631710, "blockcount": 225856, "extents": [{"logical_start": 0, "logical_end": 2047, "physical_start": 2380752896, "physical_end": 2380754943}, {"logical_start": 2048, "logical_end": 4095, "physical_start": 2384302080, "physical_end": 2384304127}, {"logical_start": 4096, "logical_end": 6143, "physical_start": 2384312320, "physical_end": 2384314367}, {"logical_start": 6144, "logical_end": 8191, "physical_start": 2384318464, "physical_end": 2384320511}, {"logical_start": 8192, "logical_end": 10239, "physical_start": 2384322560, "physical_end": 2384324607}, {"logical_start": 10240, "logical_end": 12287, "physical_start": 2384328704, "physical_end": 2384330751}, {"logical_start": 12288, "logical_end": 14335, "physical_start": 2384265216, "physical_end": 2384267263}, {"logical_start": 14336, "logical_end": 16383, "physical_start": 2384271360, "physical_end": 2384273407}, {"logical_start": 16384, "logical_end": 18431, "physical_start": 2384275456, "physical_end": 2384277503}, {"logical_start": 18432, "logical_end": 20479, "physical_start": 2384287744, "physical_end": 2384289791}, {"logical_start": 20480, "logical_end": 22527, "physical_start": 2384291840, "physical_end": 2384293887}, {"logical_start": 22528, "logical_end": 24575, "physical_start": 2388623360, "physical_end": 2388625407}, {"logical_start": 24576, "logical_end": 26623, "physical_start": 2397306880, "physical_end": 2397308927}, {"logical_start": 26624, "logical_end": 28230, "physical_start": 2397339666, "physical_end": 2397341272}], "etbs": [{"level": 0, "block": 1101562088}]}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
/Warez/Dell R330 BIOS RECOVERY
|
||||
==============================
|
||||
Source: /Warez/Dell R330 BIOS
|
||||
Destination: /mnt/recovery/Warez/Dell R330 BIOS
|
||||
Recovered: 2 files, 124.65 MiB
|
||||
Already present: 0 files, 0.00 B
|
||||
Errors: 0
|
||||
Free remaining: 869.98 GiB
|
||||
Log: /mnt/recovery/warez-dell-r330-bios-recovery.tsv
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
status bytes inode path detail
|
||||
RECOVERED 15071083 137691151 BIOS_PFJXF_LN64_2.20.0.BIN
|
||||
RECOVERED 115631710 137691152 iDRAC-with-Lifecycle-Controller_Firmware_VWF72_LN64_2.86.86.86_A00.BIN
|
||||
|
Executable
+16
@@ -0,0 +1,16 @@
|
||||
/Warez/Dell R330 BIOS SALVAGE SCAN
|
||||
==================================
|
||||
Source: /Warez/Dell R330 BIOS
|
||||
Root inode: 137691150
|
||||
Dead blocks: 3418636288-4395389951
|
||||
Directories: 1
|
||||
Files seen: 2
|
||||
|
||||
SAFE: 2 files, 124.65 MiB
|
||||
LOST: 0 files, 0.00 B
|
||||
ETB_LOST: 0 files, 0.00 B
|
||||
ETB_SURVIVES: 0 files, 0.00 B
|
||||
UNKNOWN: 0 files, 0.00 B
|
||||
OTHER: 0 entries
|
||||
|
||||
Manifest: /mnt/recovery/warez-dell-r330-bios-manifest.jsonl
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeuo pipefail
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "Usage: $0 '/absolute/source/path'" >&2
|
||||
exit 2
|
||||
fi
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
exec python3 "$SCRIPT_DIR/salvage.py" recover "$1"
|
||||
Executable
+502
@@ -0,0 +1,502 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import stat as pystat
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path, PurePosixPath
|
||||
|
||||
LV = "/dev/mapper/plex--new-plex--new"
|
||||
DEST_MOUNT = Path("/mnt/recovery")
|
||||
DEAD_START = 3418636288
|
||||
DEAD_END = 4395389951
|
||||
RESERVE_BYTES = 2 * 1024**3
|
||||
|
||||
extent_re = re.compile(r"\((\d+)(?:-(\d+))?\):(\d+)(?:-(\d+))?")
|
||||
etb_re = re.compile(r"\(ETB(\d+)\):(\d+)")
|
||||
inode_re = re.compile(r"Inode:\s*(\d+)\s+Type:\s*([^\s]+)")
|
||||
size_re = re.compile(r"\bSize:\s*(\d+)")
|
||||
blockcount_re = re.compile(r"\bBlockcount:\s*(\d+)")
|
||||
|
||||
def die(msg):
|
||||
print(f"ERROR: {msg}", file=sys.stderr)
|
||||
raise SystemExit(1)
|
||||
|
||||
def human(n):
|
||||
units = ["B", "KiB", "MiB", "GiB", "TiB"]
|
||||
x = float(n)
|
||||
for unit in units:
|
||||
if x < 1024 or unit == units[-1]:
|
||||
return f"{x:.2f} {unit}"
|
||||
x /= 1024
|
||||
|
||||
def run(cmd):
|
||||
return subprocess.run(cmd, text=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
|
||||
def debugfs(command):
|
||||
env = os.environ.copy()
|
||||
env["DEBUGFS_PAGER"] = "cat"
|
||||
return subprocess.run(
|
||||
["debugfs", "-c", "-R", command, LV],
|
||||
text=True,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
env=env,
|
||||
)
|
||||
|
||||
def normalize_source(source):
|
||||
source = source.strip()
|
||||
if not source:
|
||||
die("Source path cannot be empty.")
|
||||
if not source.startswith("/"):
|
||||
source = "/" + source
|
||||
|
||||
parts = []
|
||||
for part in PurePosixPath(source).parts:
|
||||
if part in ("/", "", "."):
|
||||
continue
|
||||
if part == "..":
|
||||
die("Source path may not contain '..'.")
|
||||
parts.append(part)
|
||||
|
||||
if not parts:
|
||||
die("Refusing to scan filesystem root '/'. Specify a subtree.")
|
||||
|
||||
return "/" + "/".join(parts)
|
||||
|
||||
def quote_debugfs_path(path):
|
||||
return '"' + path.replace("\\", "\\\\").replace('"', '\\"') + '"'
|
||||
|
||||
def slug_for(source):
|
||||
base = source.strip("/").lower()
|
||||
base = re.sub(r"[^a-z0-9]+", "-", base).strip("-") or "root"
|
||||
base = base[:80].rstrip("-")
|
||||
digest = hashlib.sha1(source.encode("utf-8")).hexdigest()[:8]
|
||||
return f"{base}-{digest}"
|
||||
|
||||
def config_for(source):
|
||||
source = normalize_source(source)
|
||||
rel = PurePosixPath(source.lstrip("/"))
|
||||
slug = slug_for(source)
|
||||
return {
|
||||
"source": source,
|
||||
"dest": DEST_MOUNT.joinpath(*rel.parts),
|
||||
"slug": slug,
|
||||
"manifest": DEST_MOUNT / f"salvage-{slug}-manifest.jsonl",
|
||||
"scan_summary": DEST_MOUNT / f"salvage-{slug}-scan-summary.txt",
|
||||
"recovery_log": DEST_MOUNT / f"salvage-{slug}-recovery.tsv",
|
||||
"recovery_summary": DEST_MOUNT / f"salvage-{slug}-recovery-summary.txt",
|
||||
"tmp_dir": DEST_MOUNT / f".salvage-{slug}-tmp",
|
||||
}
|
||||
|
||||
def preflight(cfg, require_manifest=False):
|
||||
if os.geteuid() != 0:
|
||||
die("Run as root.")
|
||||
|
||||
for cmd in ("debugfs", "blockdev", "findmnt"):
|
||||
if shutil.which(cmd) is None:
|
||||
die(f"Required command not found: {cmd}")
|
||||
|
||||
if not Path(LV).exists():
|
||||
die(f"LV does not exist: {LV}")
|
||||
|
||||
ro = run(["blockdev", "--getro", LV])
|
||||
if ro.returncode != 0 or ro.stdout.strip() != "1":
|
||||
die(f"{LV} is not kernel read-only. Refusing to continue.")
|
||||
|
||||
mount = run(["findmnt", "-n", "-o", "TARGET,SOURCE,FSTYPE", "-T", str(DEST_MOUNT)])
|
||||
if mount.returncode != 0:
|
||||
die(f"{DEST_MOUNT} is not mounted.")
|
||||
|
||||
fields = mount.stdout.strip().split(None, 2)
|
||||
if not fields or fields[0] != str(DEST_MOUNT):
|
||||
die(f"{DEST_MOUNT} is not the mount point itself.")
|
||||
|
||||
if len(fields) >= 2 and "plex--new-plex--new" in fields[1]:
|
||||
die("Recovery destination is on the damaged LV.")
|
||||
|
||||
if require_manifest and not cfg["manifest"].exists():
|
||||
die(f"Manifest not found: {cfg['manifest']}. Run scan first.")
|
||||
|
||||
print("Pre-flight:")
|
||||
print(f" Source LV: {LV} (read-only)")
|
||||
print(f" Source subtree: {cfg['source']}")
|
||||
print(f" Destination: {cfg['dest']}")
|
||||
print(f" Dead blocks: {DEAD_START}-{DEAD_END}")
|
||||
print(f" Recovery mount: {mount.stdout.strip()}")
|
||||
print(f" Job slug: {cfg['slug']}")
|
||||
print()
|
||||
|
||||
def source_root_inode(source):
|
||||
result = debugfs(f"stat {quote_debugfs_path(source)}")
|
||||
match = inode_re.search(result.stdout)
|
||||
if not match or match.group(2) != "directory":
|
||||
detail = (result.stdout + "\n" + result.stderr).strip()
|
||||
die(f"Could not open {source} as a directory.\n{detail}")
|
||||
return int(match.group(1))
|
||||
|
||||
def list_directory(inode):
|
||||
result = debugfs(f"ls -p <{inode}>")
|
||||
entries = []
|
||||
for raw in result.stdout.splitlines():
|
||||
if not raw.startswith("/"):
|
||||
continue
|
||||
parts = raw.split("/")
|
||||
if len(parts) < 7:
|
||||
continue
|
||||
try:
|
||||
child_inode = int(parts[1])
|
||||
mode = int(parts[2], 8)
|
||||
except ValueError:
|
||||
continue
|
||||
name = parts[5]
|
||||
if name in (".", "..") or child_inode == 0:
|
||||
continue
|
||||
entries.append((child_inode, mode, name))
|
||||
return entries, result
|
||||
|
||||
def inspect_regular_file(inode):
|
||||
result = debugfs(f"stat <{inode}>")
|
||||
text = result.stdout
|
||||
im = inode_re.search(text)
|
||||
sm = size_re.search(text)
|
||||
bcm = blockcount_re.search(text)
|
||||
|
||||
if not im or im.group(2) != "regular" or not sm:
|
||||
return {"status": "UNKNOWN", "reason": "stat output could not be parsed as a regular file"}
|
||||
|
||||
size = int(sm.group(1))
|
||||
blockcount = int(bcm.group(1)) if bcm else None
|
||||
|
||||
if size == 0:
|
||||
return {"status": "SAFE", "reason": "zero-length file", "size": 0, "blockcount": blockcount, "extents": []}
|
||||
|
||||
extent_text = text.split("EXTENTS:", 1)[1] if "EXTENTS:" in text else ""
|
||||
extents = []
|
||||
for m in extent_re.finditer(extent_text):
|
||||
extents.append({
|
||||
"logical_start": int(m.group(1)),
|
||||
"logical_end": int(m.group(2) or m.group(1)),
|
||||
"physical_start": int(m.group(3)),
|
||||
"physical_end": int(m.group(4) or m.group(3)),
|
||||
})
|
||||
|
||||
etbs = [{"level": int(level), "block": int(block)} for level, block in etb_re.findall(extent_text)]
|
||||
|
||||
if extents:
|
||||
overlaps = [
|
||||
ex for ex in extents
|
||||
if ex["physical_start"] <= DEAD_END and ex["physical_end"] >= DEAD_START
|
||||
]
|
||||
if overlaps:
|
||||
return {
|
||||
"status": "LOST",
|
||||
"reason": "one or more data extents overlap the dead PV",
|
||||
"size": size,
|
||||
"blockcount": blockcount,
|
||||
"extents": extents,
|
||||
"overlaps": overlaps,
|
||||
"etbs": etbs,
|
||||
}
|
||||
|
||||
return {
|
||||
"status": "SAFE",
|
||||
"reason": "all physical data extents are outside the dead PV",
|
||||
"size": size,
|
||||
"blockcount": blockcount,
|
||||
"extents": extents,
|
||||
"etbs": etbs,
|
||||
}
|
||||
|
||||
if etbs:
|
||||
if any(DEAD_START <= e["block"] <= DEAD_END for e in etbs):
|
||||
return {
|
||||
"status": "ETB_LOST",
|
||||
"reason": "extent-tree metadata block is on the dead PV",
|
||||
"size": size,
|
||||
"blockcount": blockcount,
|
||||
"etbs": etbs,
|
||||
}
|
||||
return {
|
||||
"status": "ETB_SURVIVES",
|
||||
"reason": "extent-tree metadata is outside the dead PV; investigate",
|
||||
"size": size,
|
||||
"blockcount": blockcount,
|
||||
"etbs": etbs,
|
||||
}
|
||||
|
||||
return {
|
||||
"status": "UNKNOWN",
|
||||
"reason": "no parsable data extents or extent-tree metadata references",
|
||||
"size": size,
|
||||
"blockcount": blockcount,
|
||||
}
|
||||
|
||||
def scan(source):
|
||||
cfg = config_for(source)
|
||||
preflight(cfg)
|
||||
root_inode = source_root_inode(cfg["source"])
|
||||
|
||||
print(f"Scanning {cfg['source']} from inode {root_inode}...")
|
||||
print("No file data will be copied during this stage.\n")
|
||||
|
||||
tmp_manifest = cfg["manifest"].with_suffix(".jsonl.new")
|
||||
if tmp_manifest.exists():
|
||||
tmp_manifest.unlink()
|
||||
|
||||
statuses = ["SAFE", "LOST", "ETB_LOST", "ETB_SURVIVES", "UNKNOWN", "OTHER"]
|
||||
counts = {s: 0 for s in statuses}
|
||||
sizes = {s: 0 for s in statuses if s != "OTHER"}
|
||||
dirs = 0
|
||||
files_seen = 0
|
||||
started = time.time()
|
||||
stack = [(root_inode, Path("."))]
|
||||
|
||||
with tmp_manifest.open("w", encoding="utf-8") as mf:
|
||||
mf.write(json.dumps({
|
||||
"_meta": {
|
||||
"source": cfg["source"],
|
||||
"dest": str(cfg["dest"]),
|
||||
"slug": cfg["slug"],
|
||||
"dead_start": DEAD_START,
|
||||
"dead_end": DEAD_END,
|
||||
}
|
||||
}) + "\n")
|
||||
|
||||
while stack:
|
||||
dir_inode, rel_dir = stack.pop()
|
||||
dirs += 1
|
||||
entries, result = list_directory(dir_inode)
|
||||
|
||||
if not entries and result.stderr.strip():
|
||||
print(f"WARN directory inode {dir_inode} ({rel_dir}): {result.stderr.strip().splitlines()[-1]}")
|
||||
|
||||
for inode, mode, name in entries:
|
||||
rel_path = rel_dir / name
|
||||
rel_str = str(rel_path).removeprefix("./")
|
||||
|
||||
if pystat.S_ISDIR(mode):
|
||||
stack.append((inode, rel_path))
|
||||
continue
|
||||
|
||||
if not pystat.S_ISREG(mode):
|
||||
counts["OTHER"] += 1
|
||||
mf.write(json.dumps({
|
||||
"status": "OTHER",
|
||||
"inode": inode,
|
||||
"path": rel_str,
|
||||
"mode": oct(mode),
|
||||
"reason": "not a regular file",
|
||||
}, ensure_ascii=False) + "\n")
|
||||
mf.flush()
|
||||
continue
|
||||
|
||||
files_seen += 1
|
||||
info = inspect_regular_file(inode)
|
||||
status = info["status"]
|
||||
counts[status] += 1
|
||||
if "size" in info:
|
||||
sizes[status] += info["size"]
|
||||
|
||||
mf.write(json.dumps({
|
||||
"status": status,
|
||||
"inode": inode,
|
||||
"path": rel_str,
|
||||
**info,
|
||||
}, ensure_ascii=False) + "\n")
|
||||
mf.flush()
|
||||
|
||||
if status != "SAFE":
|
||||
print(f"{status:<12} {rel_str}")
|
||||
|
||||
if files_seen % 100 == 0:
|
||||
elapsed = time.time() - started
|
||||
print(
|
||||
f"[{files_seen} files] SAFE {counts['SAFE']} ({human(sizes['SAFE'])}), "
|
||||
f"LOST {counts['LOST']} ({human(sizes['LOST'])}), "
|
||||
f"ETB_LOST {counts['ETB_LOST']}, elapsed {elapsed/60:.1f} min"
|
||||
)
|
||||
|
||||
tmp_manifest.replace(cfg["manifest"])
|
||||
|
||||
lines = [
|
||||
"GENERIC PLEX SALVAGE SCAN",
|
||||
"=========================",
|
||||
f"Source: {cfg['source']}",
|
||||
f"Destination: {cfg['dest']}",
|
||||
f"Root inode: {root_inode}",
|
||||
f"Dead blocks: {DEAD_START}-{DEAD_END}",
|
||||
f"Directories: {dirs}",
|
||||
f"Files seen: {files_seen}",
|
||||
"",
|
||||
]
|
||||
for status in ["SAFE", "LOST", "ETB_LOST", "ETB_SURVIVES", "UNKNOWN"]:
|
||||
lines.append(f"{status + ':':14} {counts[status]} files, {human(sizes[status])}")
|
||||
lines += [
|
||||
f"{'OTHER:':14} {counts['OTHER']} entries",
|
||||
"",
|
||||
f"Manifest: {cfg['manifest']}",
|
||||
]
|
||||
summary = "\n".join(lines) + "\n"
|
||||
cfg["scan_summary"].write_text(summary, encoding="utf-8")
|
||||
print("\n" + summary)
|
||||
|
||||
def load_manifest(cfg):
|
||||
records = []
|
||||
meta = None
|
||||
with cfg["manifest"].open("r", encoding="utf-8") as f:
|
||||
for line_no, line in enumerate(f, 1):
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
try:
|
||||
rec = json.loads(line)
|
||||
except json.JSONDecodeError as exc:
|
||||
die(f"Bad manifest line {line_no}: {exc}")
|
||||
if "_meta" in rec:
|
||||
meta = rec["_meta"]
|
||||
else:
|
||||
records.append(rec)
|
||||
|
||||
if not meta:
|
||||
die("Manifest has no job metadata header.")
|
||||
if meta.get("source") != cfg["source"]:
|
||||
die(f"Manifest source mismatch: {meta.get('source')} != {cfg['source']}")
|
||||
return records
|
||||
|
||||
def append_log(path, status, size, inode, relpath, detail=""):
|
||||
new_file = not path.exists()
|
||||
with path.open("a", encoding="utf-8") as f:
|
||||
if new_file:
|
||||
f.write("status\tbytes\tinode\tpath\tdetail\n")
|
||||
detail = detail.replace("\t", " ").replace("\n", " ")
|
||||
f.write(f"{status}\t{size}\t{inode}\t{relpath}\t{detail}\n")
|
||||
f.flush()
|
||||
|
||||
def recover(source):
|
||||
cfg = config_for(source)
|
||||
preflight(cfg, require_manifest=True)
|
||||
records = load_manifest(cfg)
|
||||
safe_records = [r for r in records if r.get("status") == "SAFE"]
|
||||
|
||||
safe_bytes = sum(int(r.get("size", 0)) for r in safe_records)
|
||||
usage = shutil.disk_usage(DEST_MOUNT)
|
||||
|
||||
print(f"Manifest contains {len(safe_records)} SAFE files totaling {human(safe_bytes)}.")
|
||||
print(f"Recovery drive free space: {human(usage.free)}")
|
||||
print(f"Reserved free space: {human(RESERVE_BYTES)}\n")
|
||||
|
||||
cfg["dest"].mkdir(parents=True, exist_ok=True)
|
||||
cfg["tmp_dir"].mkdir(parents=True, exist_ok=True)
|
||||
|
||||
recovered = recovered_bytes = existing = existing_bytes = errors = 0
|
||||
started = time.time()
|
||||
|
||||
for idx, rec in enumerate(safe_records, 1):
|
||||
inode = int(rec["inode"])
|
||||
size = int(rec.get("size", 0))
|
||||
rel = Path(rec["path"])
|
||||
dest = cfg["dest"] / rel
|
||||
|
||||
try:
|
||||
dest.parent.mkdir(parents=True, exist_ok=True)
|
||||
except OSError as exc:
|
||||
append_log(cfg["recovery_log"], "DEST_ERROR", size, inode, str(rel), str(exc))
|
||||
errors += 1
|
||||
continue
|
||||
|
||||
if dest.exists():
|
||||
try:
|
||||
if dest.is_file() and dest.stat().st_size == size:
|
||||
existing += 1
|
||||
existing_bytes += size
|
||||
append_log(cfg["recovery_log"], "EXISTS", size, inode, str(rel), "existing size matches inode")
|
||||
continue
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
free = shutil.disk_usage(DEST_MOUNT).free
|
||||
if free < size + RESERVE_BYTES:
|
||||
msg = f"need {human(size)} plus {human(RESERVE_BYTES)} reserve; only {human(free)} free"
|
||||
append_log(cfg["recovery_log"], "NO_SPACE", size, inode, str(rel), msg)
|
||||
print(f"Stopping before {rel}: {msg}")
|
||||
break
|
||||
|
||||
tmp = cfg["tmp_dir"] / f"{inode}.part"
|
||||
try:
|
||||
if tmp.exists():
|
||||
tmp.unlink()
|
||||
except OSError as exc:
|
||||
append_log(cfg["recovery_log"], "TMP_ERROR", size, inode, str(rel), str(exc))
|
||||
errors += 1
|
||||
continue
|
||||
|
||||
result = debugfs(f"dump <{inode}> {tmp}")
|
||||
|
||||
if not tmp.exists():
|
||||
detail = (result.stdout + "\n" + result.stderr).strip()
|
||||
append_log(cfg["recovery_log"], "DUMP_ERROR", size, inode, str(rel), detail)
|
||||
errors += 1
|
||||
print(f"DUMP_ERROR {rel}")
|
||||
continue
|
||||
|
||||
actual = tmp.stat().st_size
|
||||
if actual != size:
|
||||
append_log(cfg["recovery_log"], "SIZE_MISMATCH", size, inode, str(rel), f"dumped {actual} bytes; inode says {size}")
|
||||
errors += 1
|
||||
try:
|
||||
tmp.unlink()
|
||||
except OSError:
|
||||
pass
|
||||
print(f"SIZE_MISMATCH {rel}: {actual} != {size}")
|
||||
continue
|
||||
|
||||
try:
|
||||
os.replace(tmp, dest)
|
||||
except OSError as exc:
|
||||
append_log(cfg["recovery_log"], "MOVE_ERROR", size, inode, str(rel), str(exc))
|
||||
errors += 1
|
||||
continue
|
||||
|
||||
recovered += 1
|
||||
recovered_bytes += size
|
||||
append_log(cfg["recovery_log"], "RECOVERED", size, inode, str(rel))
|
||||
print(f"RECOVERED [{idx}/{len(safe_records)}] {human(size):>10} {rel}")
|
||||
|
||||
if recovered % 50 == 0:
|
||||
elapsed = time.time() - started
|
||||
print(f" -> {recovered} recovered, {human(recovered_bytes)}, {errors} errors, {elapsed/60:.1f} min")
|
||||
|
||||
free_final = shutil.disk_usage(DEST_MOUNT).free
|
||||
summary = (
|
||||
"GENERIC PLEX SALVAGE RECOVERY\n"
|
||||
"=============================\n"
|
||||
f"Source: {cfg['source']}\n"
|
||||
f"Destination: {cfg['dest']}\n"
|
||||
f"Recovered: {recovered} files, {human(recovered_bytes)}\n"
|
||||
f"Already present: {existing} files, {human(existing_bytes)}\n"
|
||||
f"Errors: {errors}\n"
|
||||
f"Free remaining: {human(free_final)}\n"
|
||||
f"Log: {cfg['recovery_log']}\n"
|
||||
)
|
||||
cfg["recovery_summary"].write_text(summary, encoding="utf-8")
|
||||
print("\n" + summary)
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Generic read-only debugfs salvage tool")
|
||||
parser.add_argument("mode", choices=("scan", "recover"))
|
||||
parser.add_argument("source", help="source directory inside the damaged filesystem")
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.mode == "scan":
|
||||
scan(args.source)
|
||||
else:
|
||||
recover(args.source)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user