3

При попытке dd последние несколько блоков жесткого диска 200GB Maxtor IDE, я бегу в следующее сообщение об ошибке:

$ dd if=/dev/zero of=/dev/sdc bs=4M status=progress
203901894656 bytes (204 GB, 190 GiB) copied, 7283.07 s, 28.0 MB/s
dd: error writing '/dev/sdc': Permission denied
48621+0 records in
48620+0 records out
208223076351 bytes (208 GB, 194 GiB) copied, 8379.27 s, 24.8 MB/s 

Эта ошибка сохраняется даже после попытки возобновить dd с seek=48620 , где 48620 - количество пропущенных блоков. Чтобы определить, является ли эта ошибка результатом плохих секторов, я хотел бы запустить badblocks таким же образом, откуда dd потерпел неудачу.

Это будет переводиться в команду badblocks следующим образом:

badblocks -svw -b 4000000 -c 500000 -p 1 -o /cygdrive/b/badblocks.txt /dev/sdc 199148543 48620

... где -b 4000000 приравнивается к размеру блока оГО я использовал , когда первоначально dd ИНГ привод, и 48620 является вариантом first_block , который определяет первый блок для badblocks , чтобы начать с.

Однако это приводит к одной из двух ошибок. Либо несмертельная ошибка ...

badblocks: Invalid argument during seekrs)

... появляется во время выполнения команды, или одна фатальная ошибка завершает ее:

Segmentation fault (core dumped)

Вышеуказанная ошибка также сохраняется, даже если для -c установлено более нормальное значение, например 2000 .


Кроме того, когда я перестаю пытаться запустить badblocks в том же блоке, где произошел сбой dd вместо этого попробуйте просто увеличить параметр first_block до достаточно большого числа:

badblocks -svw -b 4000000 -c 1000000 -p 1 -o /cygdrive/b/users/hashim/desktop/maxtorbadblocks.txt /dev/sdc 199148543 12345678 

... многочисленные случаи следующей ошибки появляются без нарушения команды:

badblocks: Invalid argument during seekrs)  again get several get the same error.

Как запустить badblocks в указанном месте на диске и тем самым сэкономить огромное количество времени на запуск?

1 ответ1

3

Половина ответа (пока), почему это не удается.

Переключатели в этой строке неверны:

badblocks -svw -b 4000000 -c 500000 -p 1 \
          -o /cygdrive/b/badblocks.txt /dev/sdc 199148543 48620

-b - для размера блока (сколько байтов в блоке), который обычно кратен 512, обычно это будет 1024, 2048 или 4096. Значение 4 000 000 не кратно 512 и больше, чем любой текущий жесткий диск будет использовать.

-c - это количество блоков для тестирования за раз, которое умножается на значение, переданное в -b показывает, сколько байтов будет считываться за раз, поэтому -b 4000000 -c 500000 говорит компьютеру прочитать 2 000 000 000 000 (два триллиона) байт за раз.

Что еще хуже, аргумент 199148543 сообщает badblocks что файловая система содержит по крайней мере столько блоков, а поскольку блоки определяются с помощью ключа -b , badblocks считает, что файловая система содержит как минимум 796 594 172 000 000 байт (или 796 ТБ , почти петабайт). ,

Поскольку весь диск занимает 200 ГБ , badblocks останавливается и печатает сообщение об ошибке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .