Агрессивно fsck диск перед установкой

12

У меня есть старая машина HP Athlon, которую я использую для тестирования программного обеспечения под старым процессором. У нас частые коричневые выходы, и после последнего диска был беспорядок. Это было так плохо, что я не мог бежать fsckи отправлять все проблемы. Я выполнил новую установку ОС, но я все еще получаю fsckжалобы.

Я хотел бы попробовать в последний раз перезагрузить Linux, прежде чем осудить жесткий диск или машину. После создания файловой системы, но до того, как произойдет установка, я бы хотел, чтобы агрессивные действия fsckпомечали подозрительные блоки как плохие.

Диск большой (около 500 ГБ), а дистрибутив Debian 8 относительно мал (8-12 ГБ обычно более чем достаточно), поэтому мне все равно, помечаются ли хорошие блоки как плохие. Мне также нравится установка GUI, но я не женат на этом.

У меня есть два вопроса:

  1. Предоставляет ли Debian 8 возможность выполнить fsckперед установкой базовой системы? Если так, то где это? Если нет, то каков процесс?

  2. Есть ли fsckнастройка для контроля агрессивности блоков, помеченных как плохие? Если так, то, что это? Если нет, то что можно использовать?


РЕДАКТИРОВАТЬ : машина HP5850. Войдя в BIOS, перейдя в раздел «Хранилище», а затем в результате самопроверки системы защиты диска (DPS), DPS рекомендует заменить диск. ДПС не предоставил никакой статистики, поэтому я не уверен в степени ущерба.

Учитывая, что я могу купить [старый] новый диск SATA II за 12 долларов США, я просто собираюсь заменить его. Нет смысла тратить на это время или энергию.


Связанные ссылки следующие. Ни один из вопросов, похоже, не решен.


источник
Почему не SpinRite ?
Питер Мортенсен
Если у вас вообще есть какие-либо плохие блоки, весь диск физически выходит из строя и не должен использоваться.
Хрилис - на забастовке -
2
«Агрессивно fsck диск» выглядит так грязно ...
А. Мирабо

Ответы:

19
  1. «Предоставляет ли Debian 8 возможность выполнить fsck перед установкой базовой системы? Если да, то где он? Если нет, то каков процесс?»

    В качестве альтернативы сначала загрузите и запишите компакт-диск GPartEd (или запишите на флэш-накопитель). Перед запуском установщика загрузитесь GPartEdи разбейте диск по своему вкусу и запустите fsckили просто запустите его badblocksпо длине.

    Когда вы запустите установщик Debian, просто скажите ему, как использовать существующие разделы. Установщик не должен создавать свои собственные разделы. Он совершенно счастлив использовать существующие разделы.

  2. «Есть ли в fsck параметр для контроля агрессивности помеченных блоков как плохих? Если да, то что это? Если нет, то что можно использовать?»

    -cВариант e2fsckпричин его запустить badblocksпрограмму для сканирования поврежденных блоков. Вы также можете запускать бадблоки напрямую. По умолчанию badblocksвыполняет тест только для чтения. Чтобы быть более агрессивным, вы можете указать -nдля неразрушающего теста чтения-записи. Вы также можете установить -pопцию, чтобы увеличить количество проходов, которые он делает.

    Вы можете запустить badblocksперед разделом. Таким образом, вы можете указать более быстрый -wтест только для записи.

John1024
источник
1
Джон, +1, просто любопытно, badblocksесть ли способ пометить на аппаратном уровне или только на уровне FS?
Heemayl
3
@heemayl Насколько я понимаю, на современных жестких дисках микропрограмма жесткого диска пытается выполнить все свои собственные операции с плохими блоками. Цель запуска badblocks- просто заставить жесткий диск читать / записывать все сектора. Жесткий диск самостоятельно обнаруживает и повторно отображает поврежденные сектора, и, если все работает должным образом, badblocksпрограмме никогда не сообщают, что жесткий диск делает это.
John1024
hmmm..understandable. Таким образом, по сути, fsck может помечать блоки на FS, но плохие блоки просто помогают программному обеспечению диска выполнять разметку, не делает ничего своего?
Heemayl
3
@heemayl В древние времена badblocksвыкладывал список плохих секторов, а файловая система их записывала . В наше время, badblocks и ФС все еще пытается это сделать, но с современным HD список обычно пуст.
John1024
1
@heemayl, и если список не пуст, диск обычно настолько сильно поврежден, что лучше всего заменить его.
Mark
7

Если вы часто получаете ошибки fsck, диск также может кашлять кровью. Даже если вы пометите каждый плохой блок как плохой, не пройдет много времени, прежде чем другие блоки испортятся. Я полагаю, вы могли бы перейти на другой tty, чтобы выполнить fsck, если вам действительно нужно (Ctrl + alt + F2, чтобы переключиться на tty2), но я не могу особо подчеркнуть, насколько вам нужен новый жесткий диск, если вы говорите это точно.

Джон Леуэнхаген
источник
«Если вы часто получаете ошибки fsck ...» - то, в чем я не уверен, так это горстка fsckпроблем после переустановки, масштаб проблемы или вершина айсберга. Система загружается, обнаруживает несколько ошибок файловой системы (4 или 6), восстанавливается путем повторного монтирования только для чтения и затем загружается.
@jww, не могли бы вы опубликовать некоторые точные примеры указанных ошибок файловой системы?
Джон Леуэнхаген,
Зачем переходить на другой tty? Какое преимущество дает это?
fpmurphy
@ fpmurphy1 это звучало так, как будто он не мог открыть окно терминала, поэтому переключение на другой tty было бы следующим лучшим способом проникнуть в оболочку.
Джон Леуэнхаген,
@jww: Каждый раз сообщается об одних и тех же блоках или каждый раз при каждой загрузке?
TMN
5
  1. Нет, и я не думаю, что это того стоит. Fsck (как реализовано в большинстве файловых систем) не проверяет ваши диски. Он проверяет метаданные файловой системы и обеспечивает согласованность представления при их монтировании. Делать это перед установкой не имеет особого смысла, потому что по определению у вас будет только пустое место.

  2. Вместо этого используйте бадблоки . Если вы хотите убедиться, что ваши данные не гниют, используйте файловую систему, которая поддерживает очистку. Сам Львов тоже может это сделать .

viraptor
источник
3

Чтобы проверить надежность современного диска, рассмотрите возможность использования встроенных тестов; Вы можете запустить их с помощью утилиты smartctl, например:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

Если вы хотите заранее убедиться, что все недавно было записано, для обнаружения секторов, которые не будут записываться правильно, вы можете перезаписать весь носитель чем-то вроде dd из / dev / urandom или уничтожить одним из рандомизированных параметры.

rackandboneman
источник
3
Обратите внимание , что ddот /dev/randomпотребуется много дней , чтобы завершить на диске 500 Гб.
Дмитрий Григорьев
1
исправлена ​​опечатка, спасибо :) Не хотелось прописывать точный синтаксис dd, так как я хотел избежать использования командной строки, которая, если ее случайно вставить в оболочку, приведет к действительно безвозвратной потере данных.
rackandboneman
К сожалению, Debian не появляется , чтобы обеспечить smartctl: E: Unable to locate package smartctl. Это утилита Red Hat / Fedora?
Пакет Debian / Ubuntu - это smartmontools. Кстати, используйте поиск apt-cache, чтобы найти, в каком пакете есть что-то.
сторожевой человек
2

Я бы порекомендовал приобрести низкоуровневое программное обеспечение производителя (если оно есть), которое может работать только в Windows (или, если вам повезет, с загрузочного CD / DVD / USB, для которого вы загрузите образ с их веб-сайта). , Если у вас есть достаточный контроль над операцией по уменьшению заявленной емкости накопителя в обмен на гораздо больший пул запасных секторов, вы должны сделать это в ожидании замены многих из этих запасных частей при тестировании накопителя, как предложило @rackandboneman. , Гораздо лучше иметь диск на 400 или 450 ГБ со всеми поврежденными секторами, которые будут заменены на запасные, и больше оставить на будущие дефекты, чем исчерпать резервный пул и иметь будущие поврежденные сектора, которые нельзя прозрачно переназначить.

Монти Хардер
источник
Я смог запустить SeaTools для DOS . SeaTools сообщил, что SMART не сработал , что казалось необычным. Длинный тест и короткий тест не удалось сразу. Я уменьшил размер диска до 32 ГБ; а затем снова запустил длинный тест. SeaTools нашли 4 плохих LBA около отметки 1190000 и отремонтировали их. Новая установка ОС прошла отлично; и последующие перезагрузки не имели проблем. Поскольку я приобрел запасной диск SATA II, я сохраню его в качестве «горячего» резерва, если существующий диск работает неправильно.
@jww Жаль, что вы уже приняли другой ответ.
Монти Хардер
Да, это ловушка для вопросов и ответов ... Я должен задать конкретные вопросы, чтобы получить точный ответ. Если бы я спросил: «Как установить Linux на неисправный жесткий диск», то этот вопрос, вероятно, был бы закрыт.
0

Некоторые основные вещи, если у вас нет более интересных инструментов (например, это USB-диск и SMART не работает):

dd if=/dev/sdX of=/dev/null bs=1M

прочтет весь диск. В dmesgжурнале вы увидите, есть ли сектора, которые невозможно прочитать. Хотя он не скажет вам, удалось ли им прочитать их после повторных попыток. Это не так хорошо, как badblocksя, но я упоминаю это из-за его повсеместности.

Если у вас плохие сектора и вы не хотите ничего на диске:

dd if=/dev/zero of=/dev/sdX bs=1M

приведет к перезаписи всех блоков. Если есть сектора, которые невозможно прочитать, это должно привести к их замене секторами в перераспределенном пуле и их повторному использованию.

Если у вас есть диск, на котором происходит перераспределение, значит, диск находится на выходе. Я бы не стал использовать это для чего-то важного, но иногда у вас есть данные, которые вас не особо волнуют, и для этого все может быть в порядке.

Если это SSD, то все иначе, и они не применяются.

user1908704
источник