Badblocks linux описание ошибки

Команда badblocks в Linux с примерами

Команда badblock в Linux используется для поиска поврежденных блоков (блок памяти, который был поврежден и больше не может надежно использоваться) в устройстве. По умолчанию он настроен на работу в неразрушающем режиме только для чтения.

Синтаксис:

Параметры:

    badblocks -s: используется для отображения текущего прогресса теста, показывая процент отсканированных блоков.

Пример:

badblocks -b: Это позволяет задать размер блока (обычно кратна 512) в байтах ( по умолчанию 1024 байт).

Пример:

badblocks -c: используется для указания количества блоков, которые должны быть проверены за один раз (по умолчанию 64 блока).

Пример :

badblocks -f: (не рекомендуется) badblocks не запускает свой тест на устройстве, если оно смонтировано. Опция -f заставит его выполнить тест, даже если устройство смонтировано, что может повредить файловую систему.

Пример :

badblocks -o: используется для записи списка плохих блоков в файл, а не на стандартный вывод.

Пример:

badblocks -i: используется для предоставления входного файла, который содержит список известных неисправных блоков в устройстве. Это позволит пропустить известные плохие блоки во время теста.

Пример:

badblocks -n: Он используется для выполнения неразрушающего теста чтения-записи на устройстве. Это не будет стирать данные на устройстве.

Пример:

badblocks -w: Он выполняет тест чтения-записи на устройстве, записывая некоторые шаблоны в каждый блок и сравнивая их. Это удалит данные на устройстве и выполнит тестовую обработку с большей скоростью по сравнению с опцией -n .

Пример:

Укажите блоки для проверки:

    последний блок: его можно указать, передав последний блок в качестве опции после имени устройства. Он будет тестировать блоки от первого блока до указанного последнего блока.

Пример:

первый блок: Он может быть определен путем пропускания исходного номера блока для тестирования в качестве опции после последнего блока.

Источник

badblocks

badblocks is a program to test storage devices for bad blocks.

S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) is featured in almost every HDD still in use nowadays, and in some cases it can automatically retire defective HDD sectors. However, S.M.A.R.T. only passively waits for errors while badblocks can actively write simple patterns to every block of a device and then check them, searching for damaged areas (Just like memtest86* does with RAM).

This can be done in a destructive write-mode that effectively wipes the device (do backup!) or in non-destructive read-write (backup advisable as well!) and read-only modes.

Contents

Installation

See badblocks(8) for the usage.

Storage device fidelity

Although there is no firm rule, it is common thinking that a new drive should have zero bad sectors. Over time, bad sectors will develop and although they are able to be defined to the file system so that they are avoided, continual use of the drive will usually result in additional bad sectors forming and it is usually the harbinger of its eventual death. Replacing the device is recommended.

Comparisons with other programs

Typical recommended practice for testing a storage device for bad sectors is to use the manufacturer’s testing program. Most manufacturers have programs that do this. The main reasoning for this is that manufacturers usually have their standards built into the test programs that will tell you if the drive needs to be replaced or not. The caveat here being is that some manufacturers testing programs do not print full test results and allow a certain number of bad sectors saying only if they pass or not. Manufacturer programs, however, are generally quicker than badblocks sometimes a fair amount so.

Testing for bad sectors

To test for bad sectors in Linux the program badblocks is typically used. badblocks has several different modes to be able to detect bad sectors.

Читайте также:  Драйвера logitech momo racing force feedback wheel windows 10

Read-write test (warning: destructive)

This test is primarily for testing new drives and is a read-write test. As the pattern is written to every accessible block, the device effectively gets wiped. The default is an extensive test with four passes using four different patterns: 0xaa (10101010), 0x55 (01010101), 0xff (11111111) and 0x00 (00000000). For some devices this will take a couple of days to complete.

-w : do a destructive write test -s : show progress -v : be «verbose» and output bad sectors detected to stdout

Additional options you might consider:

-b number : specify the block size of the hard disk which can significantly improve testing time. ( tune2fs -l partition as the root user) -p number : run through the extensive four pass test number of sequent iterations -o /path/to/output-file : print bad sectors to output-file instead of stdout -t test_pattern : Specify a pattern. See below.

Define specific test pattern

From the manpage: «The test_pattern may either be a numeric value between 0 and ULONG_MAX-1 inclusive [. ].»

This article or section needs expansion.

Random pattern

Badblocks can be made to repeatedly write a single «random pattern» with the -t random option.

Read-write test (non-destructive)

This test is designed for devices with data already on them. A non-destructive read-write test makes a backup of the original content of a sector before testing with a single random pattern and then restoring the content from the backup. This is a single pass test and is useful as a general maintenance test.

The -n option signifies a non-destructive read-write test.

Have filesystem incorporate bad sectors

To not use bad sectors they have to be known by the filesystem.

During filesystem check

Incorporating bad sectors can be done using the filesystem check utility ( fsck ). fsck can be told to use badblocks during a check. To do a read-write (non-destructive) test and have the bad sectors made known to the filesystem run:

The -cc option tells run fsck in non-destructive test mode, the -v tells fsck to show its output, and the -k option preserves old bad sectors that were detected.

To do a read-only test (not recommended):

Before filesystem creation

Alternately, this can be done before filesystem creation.

If badblocks is run without the -o option bad sectors will only be printed to stdout.

Example output for read errors in the beginning of the disk:

For comfortably passing badblocks error output to the filesystem it has to be written to a file.

Then (re-)create the file system with the information:

From the mke2fs(8) manual page:

Note that the block numbers in the bad block list must be generated using the same block size as used by mke2fs. As a result, the -c option to mke2fs is a much simpler and less error-prone method of checking a disk for bad blocks before formatting it.

So the recommended method is to use:

Use -cc to do a read-write bad block test.

Block size

This article or section is a candidate for merging with Securely wipe disk#Block size.

First find the file systems block size. For example for ext# filesystems:

Feed this to badblocks:

Finding bad sectors

You can use badblock to find bad sectors. Note that badblocks calls sectors «blocks». It supports a few scan modes. There is read-only mode (default) which is the least accurate. There is the destructive write-mode ( -w option) which is the most accurate but takes longer and will (obviously) destroy all data on the drive, thus making it quite useless for matching sectors up to files. There is finally the non-destructive read-write mode which is probably as accurate as the destructive mode, with the only real downside that it is probably the slowest. However, if a drive is known to be failing then read-only mode is probably still the safest.

To do a verbose ( -v option), read-only scan, run one of these commands (with x being the drive letter and y being partition number you want to scan):

Читайте также:  Intel windows 10 compatibility

Whole disk scan:

Single partition scan:

The downside to scanning the drive as a whole is that each filesystem is going to start its block count relative to the partition it is on. This means that if you have a bad block that happens to be on, let us say, the second partition, and that partition starts on block 1000, then you will have to subtract 1000 from your block number in order to get the number you want. So if a scan from the beginning of the disk results in block number 1005 being bad, then block 5 of the second partition is what you will actually be using.

Otherwise, if you have found bad blocks after doing a full scan, you can simply figure out which partitions they are on, and rescan those in order to get the block number, rather than do any block math.

Another thing to note is that badblocks defaults to 1024 byte blocks so you will either have to change the default size with the -b option in order to match your filesystem or manually convert the block number(s) later.

If you need to figure out where your partitions start and end run fdisk.

Make sure to note the block size fdisk is using so that you can convert the block counts to match your scan.

After all this, you should have the block number(s) of your bad block(s), relative to the partition they exist on.

Источник

badblocks находит ошибки каждый раз в разных местах диска

Есть один диск. Все тесты smart проходит:

Срочно копируй всё ценное и в магазин за новым диском. При каждом проходе приходится использовать дополнительные резервный дорожки, не расходуй остаток ресурса на badblocks.

Там нет ничего ценного лол (особенно после badblocks -w) но smart говорит, что резервные дорожки не использованы.

Pass completed, 64 bad blocks found. (0/0/64 errors)

Первая цифра — количество ошибок записи, каждая обычно приводит к ремапу сектора, вторая цифра — ошибки чтения, увеличивают Total_Pending_Sectors (если первая попытка записи в эти сектора будет неуспешна, то они будут ремаплены, если же пройдёт, то счётчик сбросится), третья цифра означает количество ошибок data corruption, т.е. когда прочитанное не совпадает с записанным, при том что обе операции (и чтение и запись) завершились без ошибок, поля 196-198 в смарте при этом, разумеется, не меняются. Проверь кабель, покажи 199 атрибут.

третья цифра означает количество ошибок data corruption, т.е. когда прочитанное не совпадает с записанным

Дополню, что последнее может еще свидетельствовать о битой оперативке.

ТСу: Рандомные сегфолты в последнее время не ловил? Они могут быть достаточно редкими, особенно если памяти много и она не вся загружена

Я тоже в нём сомневаюсь. Как его проверить? Поменять на другой? БП может быть виноват (он старый)?

Вообще я думал, что эту жёсткодисковую историю более-менее понимаю, но эти фантомные ошибки чтения меня смутили.

Рандомные сегфолты в последнее время не ловил?

Конечно ловил, pulseaudio постоянно падает, бгг. Остальное вроде норм. Так неохота мемтест пускать.

Больше похоже что не с винтом дело (хотя — смарт у самсунгов из свежих порой неадекватен, к примеру реаллокейты не показываетвообще в некоторых).

На всякий случай — какой БП? Есть возможность заведомо исправный качественный подкинуть? Если есть отвертка Т8 — советую еще снять плату с винта, посмотреть на предмет окислов контактов (если черные — очистить спиртом, если прогнили до меди — залудить).

Скорее всего когда в момент сканирования происходит чтение\запись с\на винт. Если поставить копирование какого-то тяжелого файла и запустить сканирование — весь винт будет в бэдах =) С Victoria такая же фигня была, не заморачивайся.

Источник

Проверка HDD/SSD/USB flash на бэд-блоки на Linux.

Сегодня в статье рассмотрим, как в Linux проверить ваш HDD,SSD или USB флешку на битые сектора — Бэд-блоки.

Бэд-блок (англ. bad block) — испорченный кластер (единица хранения данных) дискового носителя информации, куда нельзя записать информацию.

Проверка HDD на бэд-блоки программой badblocks.

Badblocks — стандартная утилита Linux для проверки на битые секторы. Она устанавливается по-умолчанию практически в любой дистрибутив и с ее помощью можно проверить как жесткий диск, так и внешний накопитель.

Читайте также:  Windows не может открыть общий доступ принтеру

Но для начала воспользуемся ещё одной стандартной утилитой для просмотра подключенных накопители к нашей системе — fdisk.

  • -l — показать список разделов и выйти.

Теперь, когда мы знаем, какие разделы у нас есть, мы можем проверить их на битые секторы программой badblocks:

  • -v — вывод подробной информации о результатах проверки.
  • -s — отображать в правильном порядке ход проверки блоков.
  • /dev/sda1 — раздел, который мы хотим проверить на битые секторы.
  • >

/badblocks.txt — выводим результат выполнения команды в файл badblocks.txt расположенный в корневом каталоги пользователя.

Если же в результате были найдены битые секторы, то нам надо дать указание операционной системе не записывать в них информацию в будущем. Для этого нам понадобятся утилиты Linux для работы с файловыми системами:

  • e2fsck. Если мы будем исправлять раздел с файловыми система Linux ( ext2,ext3,ext4).
  • fsck. Если мы будем исправлять файловую систему, отличную от ext.

Вводим следующие команды:

Или, если у нас файловая система не ext:

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

Значит данные операции надо выполнить в командной строке до загрузки операционной системы. Для этого выполним следующее:

В конце файла дописываем следующие строки:

Теперь перезагружаем ПК:

Проверка HDD на бэд-блоки на Linux с помощью smartmontools

Теперь давайте рассмотрим более современный и надежный способ проверить диск на битые секторы linux. Современные накопители ATA/SATA ,SCSI/SAS,SSD имеют встроенную систему самоконтроля S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology, Технология самоконтроля, анализа и отчетности), которая производит мониторинг параметров накопителя и поможет определить ухудшение параметров работы накопителя на ранних стадиях. Для работы со S.M.A.R.T в Linux есть утилита smartmontools.

Давайте сначала ее установим. Если ваш дистрибутив основан на Debian\Ubuntu, то вводите:

Если же у Вас дистрибутив на основе RHEL\CentOS, то вводите:

Теперь, когда мы установили smartmontools мы можем посмотреть страницу помощи, с помощью команды:

Давайте перейдем к работе с утилитой. Вводим следующую команду с параметром -H,чтобы утилита показала нам информацию о состоянии накопителя:

Как видим, проверка диска на битые секторы linux завершена и утилита говорит нам, что с накопителем все в порядке!

Ещё одна команда, если SMART поддерживается, то добавляем -s. Если он не поддерживается или уже включён, то этот аргумент можно убрать.

Дополнительно, можно указать следующие параметры -a или —all, чтобы получить еще больше информации о накопителе, или -x и —xall, чтобы просмотреть информацию в том числе и об остальных параметрах накопителя.

Проверка HDD на бэд-блоки на Linux с помощью GParted

GParted как раз для тех, кому текстовый интерфейс не по душе. Утилита выполняет большое количество задач, связанных с работой HDD на Ubuntu и всех Debian-подобных системах. В их число входит и проверка диска на ошибки.

Для начала нам нужно скачать и установить GParted. Вводим следующую команду, чтобы выполнить загрузку из официальных репозиториев:

  1. Открываем приложение. На главном экране сразу же выводятся все носители. Если какой-то из них помечен восклицательным знаком, значит, с ним уже что-то не так.
  2. Щёлкаем по тому диску, который хотим проверить.
  3. Жмём на кнопку «Разделы», расположенную сверху.
  4. Выбираем «Проверка на ошибки».

Программа отсканирует диск. В зависимости от его объёма процесс может занять продолжительное время. После сканирования Вы будете оповещены о его результатах.

Safecopy

Это уже та программа, которую впору использовать на тонущем судне. Если мы осведомлены, что с нашим диском что-то не так, и нацелены спасти как можно больше выживших файлов, то Safecopy придёт на помощь. Её задача как раз заключается в копировании данных с повреждённых носителей. Причём она извлекает файлы даже из битых блоков.

Переносим файлы из одной директории в другую. Выбрать можно любую другую. В данном случае мы переносим данные с диска sda в папку home.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Источник

Оцените статью