LINUX.ORG.RU

ext4 в обход медленных секторов.

 ,


0

3

Здравствуйте. Ситуация: есть диск с несколькими медленными блоками - 1200 ms. Была здесь на форуме вроде похожая тема, найти не могу. Как можно создать раздел в обход этих блоков ? спасибо

Перемещено hobbit из general

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.

https://unix.stackexchange.com/a/628650

CrazyAlex25 ★★★
()

У тебя что? SSD? Можно создать несколько разделов, исключив сбойные сектора:

... | раздел 1 | пропускаем сбойные | раздел 2 | ...

А потом объединить их в RAID-0, создать LVM на них (pvcreate /dev/sda1 /dev/sda2) или Btrfs на нескольких разделах…

Но лучше новый SSD купить. Этот скоро посыпется, наверное

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)

Медленных блоков не бывает.

Весь магнитный диск (пачка дисков) вертится с одной скоростью. Бывают блоки, в которых некоторые биты иногда читаются не так, как были некогда записаны. Чип диска видит, что контрольная сумма не сошлась и не отдаёт данные по шине, а повторяет чтение несколько раз. Зачастую случайность в физических процессах заставляет просевшие биты считаться правильно (или неправильно, но так, что контрольная сумма сходится). Кажется, что блок «медленный».

Правильным решением будет произвести в этот блок запись. Если поверхность диска в этом месте способна удерживать намагниченность, то проблема исчезнет. Если поверхность деградировала, то диск это сам поймёт (но это не точно) и включит диск в список на remap. В отчёте smartctl -A /dev/disk/by-id/ata-..... это будет видно как Reallocated_Event_Count RAW_VALUE>0. Если у тебя внутри гермокорпуса диска летает условно песчинка, или если поверхность диска сделана с браком то проблема повторится.

У тебя бекапы-то есть?

legolegs ★★★★★
()
Ответ на: комментарий от legolegs

Весь магнитный диск (пачка дисков) вертится с одной скоростью

С одной угловой скоростью, но линейная скорость тем больше, чем ближе дорожка к внешнему краю, поэтому «начало» диска на HDD всегда быстрее, чем «конец»

annulen ★★★★★
()
Ответ на: комментарий от annulen

Тут нужно добавить, что аргумент с линейной скоростью как бы работает, но исключительно из-за того, что внешние дорожки разбиваются на большее число секторов. И ещё добавить, что аргумент полностью ломается, потому что медленные и нормальные сектора могут жить прямо на одной дорожке. Задержки действительно возникают из-за множественных попыток чтения одного и того же места, а не из-за отличающихся линейных скоростей.

i-rinat ★★★★★
()

Зачем создавать раздел? У ext4 же есть списки плохих блоков, их можно указать при создании (mke2fs -l filename) или добавить (e2fsck -l filename). Единственно, что это должны быть не сектора (LBA), а номера блоков ФС, которые обычно 4к и от начала раздела.

Или вопрос в том, как определить номера медленых секторов?

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 1)