Linux File Recovery

I have (had) a mysql database running on a linux server which crashed and suffered e2fsck file system corruption. I applied the e2fsck filesystem checker, which recovered what appears to be most of the files comprising the data, storing them in the "lost+found" directory. This looks something like:

[root@vm-rec lost+found]# ls -l | head

-rw-r--r--  1 root    root            163 Jul 16  2009 #1442435
-rw-------  1 root    root           1753 Mar 27  2011 #1442436
-rw-------  1 root    root            481 Jul 12  2011 #1442437
-rw-r--r--  1 root    root             47 Jul 12  2011 #1442438
-rw-r-----  1 root    root            646 Aug 21  2010 #1442439
-rw-r--r--  1 root    root            486 Nov 12  2010 #1442441

So, the names of these files are lost and we are left only with their contents, which seems intact. I can distinguish all the files that would have been part of a MySQL DB, e.g, if I use the linux "file" utility on each file, I get:

#2474833: MySQL table definition file Version 10
#2474834: MySQL MISAM compressed data file Version 1
#2474836: MySQL table definition file Version 10
#2474839: MySQL MISAM compressed data file Version 1
#2474841: MySQL table definition file Version 10
#2474842: MySQL MISAM compressed data file Version 1

Also, if I extract the "ascii" content of one of the "MySQL table definition file" using the linux strings utility, I seem to be able to distinguish the MySQL schema of a table in the database. e.g:

[root@vm-rec quarrantine]# strings \#2475839
PRIMARY
FK3AB9A8B2CDB30B3D
InnoDB
)
timeslot_id
attendee_user_id
       comments
signup_site_id
calendar_event_id
calendar_id
list_index
timeslot_id
attendee_user_id
comments
signup_site_id
calendar_event_id
calendar_id
list_index

Using these strings as keywords, searching through a copy of the original schema which I have reveals that the file seems to contain exactly the schema of a known table:

CREATE TABLE `signup_ts_attendees` (
 `timeslot_id` bigint(20) NOT NULL,
 `attendee_user_id` varchar(255) NOT NULL,
 `comments` text,
 `signup_site_id` varchar(255) NOT NULL,
 `calendar_event_id` varchar(255) DEFAULT NULL,
 `calendar_id` varchar(255) DEFAULT NULL,
 `list_index` int(11) NOT NULL,
 PRIMARY KEY (`timeslot_id`,`list_index`),
 KEY `FKBAB08100CDB30B3D` (`timeslot_id`),
 CONSTRAINT `FKBAB08100CDB30B3D` FOREIGN KEY (`timeslot_id`)
REFERENCES `signup_ts` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License