Давайте начнём с определения битого сектора/битого блока. Это участок на жёстком диске или флеш-памяти, который больше нельзя считать или записать на него данные. Обычно это происходит из-за постоянных физических повреждений на поверхности диска или выхода из строя транзисторов флеш-памяти.
По мере накопления «битых» секторов они могут серьёзно повлиять на производительность вашего накопителя, уменьшить его ёмкость или даже привести к полному выходу оборудования из строя.
Также важно отметить, что наличие повреждённых блоков должно заставить вас задуматься о покупке нового жёсткого диска или просто пометить повреждённые блоки как неиспользуемые.
Поэтому в этой статье мы рассмотрим необходимые шаги, которые позволят вам определить наличие или отсутствие повреждённых секторов на жёстком диске или флеш-памяти Linux с помощью определённых утилит для сканирования дисков.
Тем не менее, ниже приведены методы:
badblocks
позволяет сканировать запоминающее устройство, например жёсткий диск или внешний накопитель, на наличие повреждённых секторов. Устройства обычно отображаются в виде файлов, таких как /dev/sdc
или /dev/sda
.
Во-первых, используйте команду fdisk с правами суперпользователя, чтобы отобразить информацию обо всех ваших дисковых накопителях или флэш-накопителях, а также их разделах:
sudo fdisk -l
Это поможет вам определить правильное название устройства для сканирования.
Затем просканируйте жёсткий диск Linux на наличие повреждённых секторов/блоков, введя команду:
sudo badblocks - v / dev / sda10 > badsectors.txt
В приведённой выше команде badblocks сканирует устройство /dev/sda10 (не забудьте указать своё фактическое устройство) с помощью -v
для отображения подробностей операции. Кроме того, результаты операции сохраняются в файле badsectors.txt с помощью перенаправления вывода.
Если вы обнаружите на своём жёстком диске повреждённые сектора, отключите диск и настройте операционную систему так, чтобы она не записывала данные в отмеченные сектора.
Вам нужно будет использовать команду e2fsck (для файловых систем ext2/ext3/ext4) или fsck с файлом badsectors.txt и файлом устройства, как показано в приведенной ниже команде.
Для файловых систем ext2/ ext3/ext4:
sudo e2fsck -l badsectors.txt /dev/sda10
Для других файловых систем:
sudo fsck -l badsectors.txt /dev/sda10
Этот метод более надёжен и эффективен для современных дисков (жёстких дисков ATA/SATA и SCSI/SAS, а также твердотельных накопителей), которые поставляются с системой S.M.A.R.T. (технология самоконтроля, анализа и отчётности), которая помогает обнаруживать, сообщать и, возможно, регистрировать состояние их работоспособности, чтобы вы могли выявить любые надвигающиеся аппаратные сбои.
Вы можете установить smartmontools, выполнив приведенную ниже команду:
sudo apt install smartmontools #Для Debian-based sudo dnf install smartmontools #Для RHEL-based
После завершения установки используйте smartctl, которая управляет системой S.M.A.R.T, встроенной в диск. Вы можете ознакомиться с её справочной страницей следующим образом:
man smartctl smartctl -h
Теперь выполните команду smartctrl и укажите в качестве аргумента название вашего устройства, как в следующей команде. Флаг -H
или --health
используется для отображения результатов SMART-теста общей оценки состояния.
sudo smartctl -H / dev/sda10
Приведённый выше результат указывает на то, что ваш жёсткий диск исправен и в ближайшее время не выйдет из строя.
Для просмотра информации о диске используйте опцию -a
или --all
для вывода на печать всей SMART-информации о диске, а также опцию -x
или --xall
для вывода на печать всей SMART— и non-SMART-информации о диске.
sudo smartctl -a /dev/sda10
Или даже более всеобъемлющий:
$ sudo smartctl -x / dev /sda10
В этой статье мы рассмотрели, как выявлять и устранять проблемы с плохими секторами на дисках Linux с помощью badblocks и smartmontools. Очень важно следить за состоянием накопителя, и эти инструменты значительно упрощают эту задачу.
Если у вас есть какие-либо вопросы, отзывы или предложения, не стесняйтесь обращаться к нам в комментариях ниже.