Здравствуйте. Ситуация: есть диск с несколькими медленными блоками - 1200 ms. Была здесь на форуме вроде похожая тема, найти не могу. Как можно создать раздел в обход этих блоков ? спасибо
You can run fsck.ext2 with the -c option, which will run badblocks, create an invisible file with the blocks that fail to read, and then make sure that no two files share the same blocks. If any of these blocks are in use by another file, this shows up as a conflict, and you are given various repair options like trying to duplicate the blocks, or deleting the file.
That kind of repair cannot be performed during an automatic (-a) run, because it involves a destructive operation. If you combine -c and -a, the file system check can fail, and I’m not sure if the bad blocks inode is properly constructed in that run (it should be, so you should be able to then do an interactive repair without repeating the scan).
That way, these blocks are marked as allocated and will not be used.
Весь магнитный диск (пачка дисков) вертится с одной скоростью. Бывают блоки, в которых некоторые биты иногда читаются не так, как были некогда записаны. Чип диска видит, что контрольная сумма не сошлась и не отдаёт данные по шине, а повторяет чтение несколько раз. Зачастую случайность в физических процессах заставляет просевшие биты считаться правильно (или неправильно, но так, что контрольная сумма сходится). Кажется, что блок «медленный».
Правильным решением будет произвести в этот блок запись. Если поверхность диска в этом месте способна удерживать намагниченность, то проблема исчезнет. Если поверхность деградировала, то диск это сам поймёт (но это не точно) и включит диск в список на remap. В отчёте smartctl -A /dev/disk/by-id/ata-..... это будет видно как Reallocated_Event_Count RAW_VALUE>0. Если у тебя внутри гермокорпуса диска летает условно песчинка, или если поверхность диска сделана с браком то проблема повторится.
Весь магнитный диск (пачка дисков) вертится с одной скоростью
С одной угловой скоростью, но линейная скорость тем больше, чем ближе дорожка к внешнему краю, поэтому «начало» диска на HDD всегда быстрее, чем «конец»
Тут нужно добавить, что аргумент с линейной скоростью как бы работает, но исключительно из-за того, что внешние дорожки разбиваются на большее число секторов. И ещё добавить, что аргумент полностью ломается, потому что медленные и нормальные сектора могут жить прямо на одной дорожке. Задержки действительно возникают из-за множественных попыток чтения одного и того же места, а не из-за отличающихся линейных скоростей.
Зачем создавать раздел? У ext4 же есть списки плохих блоков, их можно указать при создании (mke2fs -l filename) или добавить (e2fsck -l filename). Единственно, что это должны быть не сектора (LBA), а номера блоков ФС, которые обычно 4к и от начала раздела.
Или вопрос в том, как определить номера медленых секторов?