Can the disk (ATA) be setup so that a failing read doesn't take too long, so that it can be dropped, and the reading process and the disk wouldn't be blocked, and the next read could be attempted?
Não.
Meu entendimento disso é que é um problema lógico resultante de uma escolha de design (não exclusiva do linux) que favorece o desempenho ea estabilidade do hardware em funcionamento, já que não se pode esperar que o SO lide com as infinitas possibilidades apresentadas por "possivelmente mal funcionamento ". Nós temos um Q & A sobre isso .if you are trying to read as much data as can be read from a disk with bad sectors
Se são setores ruins, você está com sorte; desmontar as partições afetadas e (supondo que elas estejam formatadas) execute e2fsck -cy /dev/whatever
nelas. A opção -c
executa badblocks
e adiciona endereços individuais a uma "lista de bloqueios inválidos" na partição; quando é posteriormente montado, o sistema nunca tentará acessá-los. Isso pode significar que você perdeu alguns dados; pedaços dele podem ser encontrados no diretório /lost+found
. A opção -y
evita que você diga "Sim, corrija" às perguntas do fsck, das quais pode haver muitas.
No entanto, se não forem blocos ruins (por exemplo, é um controlador com falha), você está sem sorte. Coisas quebradas, e é por isso que manter backups regulares de dados vitais é tão importante. Não tenho certeza se executar e2fsck -cy
em um disco com um controlador quebrado pode piorar a situação, o que é algo a considerar, mas OTOH, se você não conseguir o que precisa de qualquer maneira, não terá nada a perder.