Corrupted innoDB on linux ext4, data recovery

Published Date: 2021/11/26 by: DaVieS

Corrupted innoDB on linux ext4, data recovery
Corrupted innoDB on linux ext4, data recovery

I could say I saw a everthing but not, here is the case:

There is a VM Host with ZFS Storage, direct attached, and there is a Linux VPS with ext4 filesystem, running mySQL Database.

Without sign of error, suddenly the VPS kernel log started spamming:

[23564.244561] blk_update_request: I/O error, dev vda, sector 960227912
[23564.375360] blk_update_request: I/O error, dev vda, sector 960227912

and things went south... The database server has corrupted and fails to start, crash or hung up immediately.
So recovering the mySQL's InnoDB (.ibd) files was very challenging, there was no luck with dd, ddrescue, so wrote a software that could help.

So the mistery,
 - Physical HDDs are OK
 - ZFS with checksuming: No Error
 - qemu-img check: OK
 - fsck on the Guest: OK
 - mounting .qcow2 file on the VM Host, OK bad drive, sector error.

This is the first time that I saw a sector error on a virtual HDD with excellent underlaying storage.
My guess is the ext4 corrupted and the kernel showing a misleading error message after NULL read.

 

The InnoDB recovery procedure was the following:

  1. Attached a new disk with clean and fresh filesystem
  2. Moved all database files that could be accessed and did not throw I/O Error into the new partition
  3. Any other files which are thrown errors and could not been completely restored, rescued by the software I made
    The software reads the file regardless of I/O errors, if a bad block unavailable it can be replaced by any character, in case of innoDB I prefferred 0x00 and 0x0D (some case 0x00 caused errors).
  4. This method shown only 1-2 pages were lost on each broken file, one page is 16K, so the files were restored about 99.9% integrity.
  5. mySQL is a damn sensitive thing, after the restoration its the mySQL database server started and ran well, until reached a damaged page and crashed with buffer overflow.
  6. Here is the another magic thing, mySQL innoDB allows that you can DUMP the whole thing ANYWAY! To perform this action, innodb_recovery_mode = 6 should be set on configuration file.
  7. Dumped the whole database without a single missing row!
  8. Restored from dump, and running flawlessly.

 

This is how you can restore innoDB or any file from corrupted Disk.


That was an insane s@&k however a good thing in a bad story, we got richier by another software for data recovery.

https://github.com/DaVieS007/Partial-File-Recovery

 



If you like the article then don't forget to share!


Big Concern: Facebook hack, Google Chrome V8 Hack, Meta Support

Many users experiences that their account leaked through Facebook Advertisement platform.The BOT change their names to Kevin Konkrete Davis and..


Maintenance

We are doing some regular maintenance at 22:00 - 02:00 UTC. Some services might be distrupted at this time. ..


FreeBSD Bhyve Webadmin | BVCP 1.9.8 Just Released

BVCP 1.9.8 features  New protocol to transmit VNC/RFB data as encrypted and compressed.Better, faster and more responsive UI.Colored..


BVCP 1.9.8 Upcoming Features

We received a ton of feedback about our new project, BVCP.So here is a little description what we are working currently. The next release will..


Trackit-PortGuard just released

When implemented well, this software can be considered as two-factor pre-authentication.Therefore this is one of the most secure method to..


2022 annual report

Here we go another year passed away.We very well predicted the importance of energy efficiency. In the year of 2022 we faced a lot of challenges..


A dull attempt to hack into my email from Nigeria.

Seems like this amazing African country has some hacky potential, but so much to learn.The thing why is this attempt worth a blog entry, because..


BVCP 1.9.0 Released Today

A major version update released out today!This update address many requests and improves overall speed and performance. Highlight of this..


Energy Saving

We have been busy since expanding our services worldwide meanwhile in other hand helping reduce CO emission in industrial-scale levels.  We..

All rights reserved nPulse.net 2009 - 2023
Powered by: MVCP 2.0-RC / BVCP / ASPF-MILTER / PHP 7.4 / NGINX / FreeBSD