Score:1

recovering raid5 from 3 working drives, one has a read error

fm flag

i had 4 drives, lost one drive before, and now another drive was reported by the qnap web gui as having a read error (i did a bad block scan).
now i want to insert a new drive, in the lost drive's place, and get data on it from the remaining 3 drives.
however, one of the 3 drives has a read error.
specifically, this read error occured when the bad block scan was 98 or 99%, so i assume it wasnt alot of bad blocks?

so with this given, even if those blocks cannot be read, i assume the unreadable blocks represent a small fraction of the data that is to be lost, if we do not recover the data on the bad blocks.

how can i do this, i've read that a raid rebuild will terminate on even a single read failure?

have in mind that i see the folder and file structure intact, as before, except the filesystem is on read-only now of course, having one of the 3 drives give a read error

John Mahowald avatar
cn flag
Apparently QNAP is Linux md based and can have a text console. Please edit your question to add detailed status of the array and the drives with the commands from https://raid.wiki.kernel.org/index.php/Asking_for_help substituting your device names. (Whatever type of array, we would need a similar level of detail to help with specifics)
Score:1
ca flag

QNAP should be Linux based, using md and mdadm. This means it may be possible to replace the broken drive and let md reconstruct the array, skipping the unreadable parts.

However, I strongly suggest to first clone the disk with unreadable sectors via ddrescue and then to use the cloned disk (with zeroed but no unreadable sectors) in place of the first one. You will end with some corrupted stripes that will hopefully affect free space / unneeded data only.

constatinus avatar
fm flag
this seems like a good idea, and in fact i am on my way to do it right now, the only question being: how do i make ddrescue do exactly what you said here? ive read that ddrescue by default does not zero-out the bad block parts, but also that there is a fill-mode for ddrescue to make it do it, but also that that fill-mode makes the rescue-mode not work at all, so then i dont know if it will make geniune attempts to rescue my data
shodanshok avatar
ca flag
While `ddrescue` will not zero-fill unreadable sectors by default, in this case it should not matter because a) a new disk should already be zero-filled (or you can do that very easily) and b) zero-filled or garbage-filled, the stripe with unreadable sector will surely be corrupted anyway (so let's hope it only affect free space)
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.