LINUX.ORG.RU

Не загружается система - ata1:00: status: { DRDY ERR }

 


0

1

Не загружается система lubuntu 18.04.05 на ноутбуке (ранее были случаи, когда ноут внезапно вырубили, из-за отключения света). Появляется GRUB, идет загрузка, вроде успешно, а потом останавливается с таким

ata1:00: status: { DRDY ERR }
ata1.00: error {UNC }
blk_update_request: I/O error, dev sda, sector 1354528 op 0x0: (READ) flags 0x0 phys_seq 1 prio class 0
ata1:00: exception Emask 0x0 SAct 0x4 SErr 0x0 action 0x0

ata1.00: failed command: READ FPDMA QUEUED
ata1.00: cmd 60/08:70:58:a6:46/00:00:10:00:00/40 tag 14 ncq 4096 in

Поломался HD-диск (если да, то какой раздел?) или файловая система ? Читал это и это

Загрузился с лайв-дивиди lubuntu 18.04.05

sda1- system, sda2- home, sda3- swap, sda4- extended, sda5- пустой

lubuntu@lubuntu:~$ sudo fdisk -l
Диск /dev/loop0: 1,1 GiB, 1126490112 байт, 2200176 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/sda: 465,8 GiB, 500107862016 байт, 976773168 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
Тип метки диска: dos
Идентификатор диска: 0x60f43089

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *                2048  62945279  62943232    30G            83 Linux
/dev/sda2               62945280 740124671 677179392 322,9G            83 Linux
/dev/sda3              740124672 741597183   1472512   719M            82 Linux своп / Solaris
/dev/sda4              741597184 976773119 235175936 112,1G             5 Расширенный
/dev/sda5              741599232 976773119 235173888 112,1G            83 Linux


Диск /dev/zram0: 974,3 MiB, 1021587456 байт, 249411 секторов
Единицы: секторов по 1 * 4096 = 4096 байт
Размер сектора (логический/физический): 4096 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт


Диск /dev/zram1: 974,3 MiB, 1021587456 байт, 249411 секторов
Единицы: секторов по 1 * 4096 = 4096 байт
Размер сектора (логический/физический): 4096 байт / 4096 байт
Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт
lubuntu@lubuntu:~$ 

Попробовал

lubuntu@lubuntu:~$ sudo e2fsck -f /dev/sda1
e2fsck 1.44.1 (24-Mar-2018)
Проход 1: Проверка inodes, блокs, а также размеров
Pass 2: Checking каталог structure
Pass 3: Checking каталог connectivity
Pass 4: Checking reference counts
Pass 5: Checking группа summary information
/dev/sda1: 307003/1970416 files (0.2% non-contiguous), 3481329/7867904 blocks
lubuntu@lubuntu:~$ sudo e2fsck -f /dev/sda2
e2fsck 1.44.1 (24-Mar-2018)
Проход 1: Проверка inodes, блокs, а также размеров
Inode 14418179 extent tree (at level 1) could be narrower.  Исправить<y>? no
Inode 14421369 extent tree (at level 1) could be narrower.  Исправить<y>? no
Inode 14428912 extent tree (at level 1) could be narrower.  Исправить<y>? no
Inode 14439615 extent tree (at level 1) could be narrower.  Исправить<y>? no
Inode 17178308 extent tree (at level 1) could be narrower.  Исправить<y>? no
Pass 2: Checking каталог structure
Pass 3: Checking каталог connectivity
Pass 4: Checking reference counts
Pass 5: Checking группа summary information
/dev/sda2: 534654/21168128 files (0.5% non-contiguous), 41676936/84647424 blocks
lubuntu@lubuntu:~$ sudo e2fsck -f /dev/sda5
e2fsck 1.44.1 (24-Mar-2018)
Проход 1: Проверка inodes, блокs, а также размеров
Pass 2: Checking каталог structure
Pass 3: Checking каталог connectivity
Pass 4: Checking reference counts
Pass 5: Checking группа summary information
ext+: 11/7356416 files (0.0% non-contiguous), 608025/29396736 blocks
lubuntu@lubuntu:~$ 

Попробовал sudo fsck.ext4 -v /dev/sdaXXX - тоже вроде ничего криминального

lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda1
e2fsck 1.44.1 (24-Mar-2018)
/dev/sda1: clean, 307003/1970416 files, 3481329/7867904 blocks
lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda2
e2fsck 1.44.1 (24-Mar-2018)
/dev/sda2: clean, 534654/21168128 files, 41676936/84647424 blocks
lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda5
e2fsck 1.44.1 (24-Mar-2018)
ext+: clean, 11/7356416 files, 608025/29396736 blocks
lubuntu@lubuntu:~$ 

Прошу помощи.

Как исправить (хочу попробовать без переустановки, если это возможно) ? Если это диск (какой раздел?), то как обойти битые секторы и использовать его дальше (я в этом не разбираюсь) ?

P.S. Разделы монтируются в файловом менеджере лайвдивиди 18.04 обычным щелчком. Файлы доступны. В ФМ лайвсиди убунту 14.04 выкидывало окно

Error mounting .... exited with non-zero exit status 32: mount: wrong fs type, bad option, bad superblock on /dev/sda1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Отключил swap. Получаю такое:

lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda3
e2fsck 1.44.1 (24-Mar-2018)
/dev/sda3 is mounted.
e2fsck: Cannot continue, aborting.

lubuntu@lubuntu:~$ sudo swapoff -a
lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda3
e2fsck 1.44.1 (24-Mar-2018)
ext2fs_open2: Bad magic number in super-block
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block при попытке открыть /dev/sda3

The superблок could not be read or does not describe a valid ext2/ext3/ext4
ФС.  If the устройство is valid and it really contains an ext2/ext3/ext4
ФС (and not swap or ufs or something else), then the superблок
is corrupt, and you might try running e2fsck with an alternate superблок:
    e2fsck -b 8193 <устройство>
 or
    e2fsck -b 32768 <устройство>

/dev/sda3 contains a swap file system
lubuntu@lubuntu:~$ 


Последнее исправление: noname111 (всего исправлений: 2)

Дисковая утилита UDisks 2.7.6 пишет, что диск исправен, но повреждено 8 секторов. Файловая система не повреждена.

Можно ли как-то исправить или заблокировать эти сектора и переустановить систему на этот диск ?

noname111
() автор топика

/dev/sda1 * 2048 62945279 62943232 30G 83 Linux

Для системы очень мало. Весьма вероятно, нет свободного места.

lubuntu@lubuntu:~$ sudo swapoff -a
lubuntu@lubuntu:~$ sudo fsck.ext4 -v /dev/sda3

Это свап, там особая файловая система. Какого черта ты туда с ext4 лезешь.

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

Для системы очень мало. Весьма вероятно, нет свободного места. GPARTED показывает занято 13 , свободно 16

Вот новый вывод fdisk -l

Устр-во    Загрузочный    начало     Конец   Секторы Размер Идентификатор Тип
/dev/sda1  *                2048  62945279  62943232    30G            83 Linux
/dev/sda2               62945280 740124671 677179392 322,9G            83 Linux
/dev/sda3              740124672 741597183   1472512   719M            82 Linux своп / Solaris
/dev/sda4              741597184 976773119 235175936 112,1G             5 Расширенный
/dev/sda5              741599232 976773119 235173888 112,1G    

Это свап, там особая файловая система. Какого черта ты туда с ext4 лезешь.

Я уже прошелся по нему gparted и форматировал его в swap

noname111
() автор топика
Ответ на: комментарий от noname111

уже прошелся по нему gparted и форматировал его в swap

Значит изменился УУИД и система не загрузится. Ещё одна «ненормальность».

andytux ★★★★★
()
Последнее исправление: andytux (всего исправлений: 1)
Ответ на: комментарий от noname111

ata1:00: status: { DRDY ERR } ata1.00: error {UNC } blk_update_request: I/O error, dev sda, sector

у меня для тебя - плохие новости

sector 1354528 < 62945279 то есть это на первом разделе

вообще диск читается?

есть прекрасная утилита badblocks, можно для начала ей попробовать пройтись

обычно есть на install disks и live cd

а вот smartctl обычно нет, хотя она будет в разы информативнее

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

sector 1354528 < 62945279 то есть это на первом разделе

вообще диск читается?

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

А если sda1 форматнуть и заново накатить систему, оставив старый хоум ?

Читал в инете, цитирую: "..есть мнение, что после форматирования прошивка диска наконец сделала то, что должна была сделать изначально - взять сектора из резерва на замену плохим, а плохие спрятать от системы. "

noname111
() автор топика
Ответ на: комментарий от noname111

могу открывать файлы.

Скорее всего, не все файлы пробовали. Цитата не совсем корректно отражает, что должна делать прошивка. Remap/Realloc (замена сектора из резерва) может быть только при записи в этот сектор. При чтении эта операция не может быть произведена. Если сектор не читается, то он и не читается. То есть, если в этом секторе содержимое нужного исполняемого файла или конфига, то система не может его прочитать и всё. И прошивка не имеет права подменить этот сектор другим, ведь тогда чтение вернёт левые данные.

Переустановка должна помочь, вопрос только на сколько времени. То есть непредсказуемо, сколько накопитель работает после появляения сбойных секторов. И /dev/sda1 сначала лучше записать весь нулями, а потом прочитать и посмотреть SMART, чтобы выяснить сколько там на самом деле сбойных секторов. А остальные разделы, которые типа целые, просто попробовать прочитать (dd if=/dev/sda2 of=/dev/null bs=40960).

более детальный вывод этой утилиты говорит, что эти 8 секторов числятся как «неопределенные»,а неисправных 0.

Переводчики хреновы. Вот лучше бы они не трогали термины. Если «неопределённые» — это ″Pending″, а неисправные — это ″Realloc″ то только запись и переведёт «неопределённые» в «неисправные».

Ну, а так, если очень хочется, то можно переводить номер сектора в номер блока /dev/sda1, потом определять какому файлу он относится (e2debufs для ext4) и переустанавливать пакет с этим файлом или откуда-то его копировать. Или даже сразу получать номер блока, если запускать badblocks.

mky ★★★★★
()
Последнее исправление: mky (всего исправлений: 2)
Ответ на: комментарий от mky

я тут запустил из под лайвсиди

sudo fsck -M -cc /dev/sda1 

и после смог загрузиться в основную систему. И пишу сейчас из неё.

Переводчики хреновы. Вот лучше бы они не трогали термины. Если «неопределённые» — это ″Pending″, а неисправные — это ″Realloc″ то только запись и переведёт «неопределённые» в «неисправные».

Запустил утилиту gnome-disks в анг. локали и сравнил с русс. переводом:

196 Reallocation - переопределенные.
197 Current Pending Sector count  - неопределенные
198 Uncorrectable Sector count - неисправные

И /dev/sda1 сначала лучше записать весь нулями, а потом прочитать и посмотреть SMART, чтобы выяснить сколько там на самом деле сбойных секторов. А остальные разделы, которые типа целые, просто попробовать прочитать (dd if=/dev/sda2 of=/dev/null bs=40960).

Так при записи нулями забивается нулями весь sda, а не конкретный раздел ? Насколько я понял из прочитанного, невозможно забить нулями конкретный раздел диска.

dd if=/dev/zero of=/dev/sdX bs=4M (with /dev/sdX being a device like /dev/sdb, not a partition like /dev/sdb1) operates directly on the raw disk, not respecting any partitioning. Zeroing a drive out with this command effectively wipes out the boot sector, partition table and all partitions equally.

?

Если планировать переустановку, то в ее ходе будет произведено форматирование. Нужно ли для переустановки предварительно забить нулями ?

Ну, а так, если очень хочется, то можно переводить номер сектора в номер блока /dev/sda1, потом определять какому файлу он относится (e2debufs для ext4) и переустанавливать пакет с этим файлом или откуда-то его копировать. Или даже сразу получать номер блока, если запускать badblocks.

А как переводится номер сектора в номер блока ? badbloks очень медленный..

noname111
() автор топика
Ответ на: комментарий от noname111

Если dd делать на раздел, то только раздел будет забит, главное раньше времени при вводе не нажать Enter:

dd if=/dev/zero of=/dev/sda1 bs=4M

В прочитаном вами:

with /dev/sdX being a device like /dev/sdb, not a partition like /dev/sdb1

как раз про то, что если хочется обнулить весь диск, то нужно букву без цифры указывать.

198 Uncorrectable Sector count

Вроде, это называлось Offline_Uncorrectable и подразумевалось, что это счётчик нечитаемых секторов при выполнении встроенного long теста.

Для переустановки лучше забить нулями, так как форматирование не подразумевает записи на весь раздел, а только разметка файловой системы. Но, по хорошему home лучше куда-нибудь сбэкапить. Там может быть, что если образовалась большая область не читаемых секторов, то при записи накопитель захочет сделать для них всех realloc, у него закончится резервное место и, если там бага в прошивке, он может уйти в себя.

А как переводится номер сектора в номер блока

Из вывода fdisk -l /dev/sda берёте поле Start для /dev/sda1. 2048, как обычно. Из вашего номера 1354528 вычитаете этот Start (1354528-2048=1352480), потом разность делите на 8 (1352480/8=169060). Потом кормите 169060 команде ″icheck″ из ″debugfs″. Получаете номер ″inode″, потом этот номер кормите команде ″ncheck″, получаете имя файла.

8 это 4096/512. 4096 — размер блока ФС, 4к стандартный для ext4, можете проврить в выводе tune2fs. 512 — размер сектора из вывода fdisk.

https://mellowhost.com/blog/identifying-file-inode-by-sector-block-number-in-...

Наверное, debugfs у вас не установлена, поставить пакет, как точно он называется в Убунту не знаю, должно быть e2fsprogs. Без ключа ″-w″ debugfs запускается в read-only, ничего на ФС не запишет, не испортит.

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

форматировать диск при наличии ошибок как у вас (DRDY ERR и т.п.) - это очень плохая мысля.

я не могу понять - вроде я вам уже написал простые и проверенные меры:

  1. прогнать badblocks - это позволит понять, есть ли реальные проблемы с чтением диска, кстати, у него есть и режимы с записью, почитайте его руководство (типовое - -t 0 -n -s -v)

  2. прогнать встроенную проверку диска по команде smartctl -t long, уж явно встроенное ПО диска (firmware) лучше знает про его особенности и сумеет сделать ту самую подстанвку («remap») - сразу говорю, на 2 и более тб дисках - это долго. но можно подклчив диск к компу, заниматься своими делами на компе , главное к нему не обращаться.

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

badblocks сделает это гораздо лучше чем dd, к тому же с показом движухи без -USR1 и проверкой записи

у ТСа скорее всего либо просто диск сыпется, либо ещё какие проблемы с железом (кабель SATA и т.п.)

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

smartctl -t long не делает realloc, в лучшем случае только Offline_Uncorrectable. А бывает, что заканичается на первом бэде, такая прошивка. Его можно прогнать, но как повезёт.

badblocks работает медленее dd. Делать read-write тест смысла нет, если в dmesg ошибки чтения и 8 Current Pending Sector в SMART. Только впустую потраченое время. На каждом нечитаемом секторе будет тупить, а запись туда не сделает. Нужна запись.

с показом движухи

Смысл в этом? Всё одно, SMS-ку он не отправит, лучше заняться чем-то полезным, чем смотреть на прогресс-бар. Но, так, у dd есть опция status=progress.

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

А тратить время на badblocks -w имеет смысл, если подозревать, что всё совсем плохо, что диск читает не то, что записали.

просто диск сыпется

Для меня «сыпется» — когда постоянно расёт кол-во bad (realloc) блоков. А возникновение отдельных нечитаемых блоков, часто, ничего не значит, особенно в ноуте. Не один НЖМД у меня работал несколько лет после первых realloc и они на нём не росли. Пусть ТС регулярно записывает SMART и сравнивает с предыдущим, там и будет понятно, «сыпется» или так, случайность.

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

А как переводится номер сектора в номер блока

Из вывода fdisk -l /dev/sda берёте поле Start для /dev/sda1. 2048, как обычно. Из вашего номера 1354528 вычитаете этот Start (1354528-2048=1352480), потом разность делите на 8 (1352480/8=169060). Потом кормите 169060 команде ″icheck″ из ″debugfs″. Получаете номер ″inode″, потом этот номер кормите команде ″ncheck″, получаете имя файла.

Попробовал, оно немного подумало, но ничего не сказало:

$ sudo debugfs -D -R "icheck $169060" /dev/sda1
debugfs 1.44.1 (24-Mar-2018)
Block Inode number
69060 1834647
$ sudo debugfs -D -R "ncheck $1834647" /dev/sda1
debugfs 1.44.1 (24-Mar-2018)
Inode Pathname
:~$

Там нет файла ?

Если забивать раздел sda1 нулями, то в команде ‘dd if=/dev/zero of=/dev/sda1 bs=4M status=progress’ устанавливать bs=4M ?

А остальные разделы, которые типа целые, просто попробовать прочитать (dd if=/dev/sda2 of=/dev/null bs=40960 status=progress).

Здесь bs=40960 или 4096 ? С какой целью выполняется это прочтение?

И /dev/sda1 сначала лучше записать весь нулями, а потом прочитать и посмотреть SMART, чтобы выяснить сколько там на самом деле сбойных секторов.

А с какой целью производится запись нулями ? Что это даёт ?

noname111
() автор топика
Ответ на: комментарий от noname111

Попробовал, оно немного подумало, но ничего не сказало:

А вот так сказало:

~$ sudo debugfs /dev/sda1
[sudo] пароль для user: 
debugfs 1.44.1 (24-Mar-2018)
debugfs:  ncheck 1834647
Inode	Pathname
1834647	/usr/lib/firefox/libxul.so
debugfs:  

Что с этим делать? Распотрошить пакет фокса и подсунуть в систему файлик или переустановить фокс ?

noname111
() автор топика
Ответ на: комментарий от noname111

Запись нулями даёт запись в том числе в сбойные сектора, которые в результате будут realloc. Так как SMART не даёт номера Pending секторов, то пишем во все.

Чтение после записи с целью проверить, что все сектора читаются. Смысл этих действий — перед форматированием, установкой дистрибутива проверить, что сбойных секторов не становится больше. Иначе устанавливать, настраивать и смысла нет.

Размер bs= у команды dd не особо важен. Просто по-умолчанию 512 и это совсем мало, его увеличение условно до 40кбайт (40960) обычно даёт заметный прирост скорости, а дальше не особо. И размер желательно кратен 4 кбайт (4096). Я пишу 40960, мне так проще, чем 40k или 1M.

По поводу debugfs. Вас что надоумило знак доллара ставить? Это же спецсимвол sh. В данном случае ″$1″ раскрылось в «пусто», и вы даже не заметили, что запрашивали для ″$169060″, а получили ответ для «69060». Ну и дальше, понятно, получили неправильный файл, так как firefox не мог стопорить загрузку системы. Должно быть что-то важное/серьёзное. И вобще в этом сектор мог не файл лежать, а метаданные файловой системы.

И, по идее, этот файл не должен читаться, то есть:
cat filename >/dev/null
должно дать ошибку.

Что именно делать с файлом зависит от того, какой файл. Если он из пакета, то, вроде как, можно просто переустановить пакет:
apt-get install --reinstall packet

только это не касается конфиг-файлов пакета. Но, важное/системное может не входить не в один пакет, поэтому может придётся расковыривать.

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

Ещё можете посмотреть вывод ″smartctl -x /dev/sda″, там среди прочего, должен быть журнал ошибок. И там может быть записи типа:
ABRT at LBA = 0x003c0838 = 3934264
это номер других секторов, на которых были ошибки.

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

По поводу debugfs. Вас что надоумило знак доллара ставить? Это же спецсимвол sh. В данном случае ″$1″ раскрылось в «пусто», и вы даже не заметили, что запрашивали для ″$169060″, а получили ответ для «69060». Ну и дальше, понятно, получили неправильный файл, так как firefox не мог стопорить загрузку системы. Должно быть что-то важное/серьёзное. И вообще в этом сектор мог не файл лежать, а метаданные файловой системы.

:) Что надоумило ? Вот это.

Хорошо, с долларом вообще ничего не выдает. А так - ффокс.. Так как его правильно запустить ?

Вот такое выдает sudo smartctl -x /dev/sda

   After command completion occurred, registers were:
  ER -- ST COUNT  LBA_48  LH LM LL DV DC
  -- -- -- == -- == == == -- -- -- -- --
  40 -- 41 00 10 00 00 00 14 ab 20 40 00  Error: UNC at LBA = 0x0014ab20 = 1354528
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     PO-R--   100   100   050    -    0
  2 Throughput_Performance  P-S---   100   100   050    -    0
  3 Spin_Up_Time            POS--K   100   100   001    -    1052
  4 Start_Stop_Count        -O--CK   100   100   000    -    2131
  5 Reallocated_Sector_Ct   PO--CK   100   100   050    -    0
  7 Seek_Error_Rate         PO-R--   100   100   050    -    0
  8 Seek_Time_Performance   P-S---   100   100   050    -    0
  9 Power_On_Hours          -O--CK   064   064   000    -    14555
 10 Spin_Retry_Count        PO--CK   142   100   030    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    2131
191 G-Sense_Error_Rate      -O--CK   100   100   000    -    18
192 Power-Off_Retract_Count -O--CK   100   100   000    -    151
193 Load_Cycle_Count        -O--CK   100   100   000    -    2135
194 Temperature_Celsius     -O---K   100   100   000    -    38 (Min/Max 12/48)
196 Reallocated_Event_Count -O--CK   100   100   000    -    0
197 Current_Pending_Sector  -O--CK   100   100   000    -    8
198 Offline_Uncorrectable   ----CK   100   100   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
220 Disk_Shift              -O----   100   100   000    -    0
222 Loaded_Hours            -O--CK   064   064   000    -    14552
223 Load_Retry_Count        -O--CK   100   100   000    -    0
224 Load_Friction           -O---K   100   100   000    -    0
226 Load-in_Time            -OS--K   100   100   000    -    180
240 Head_Flying_Hours       P-----   100   100   001    -    0

А вот такой тест ‘smartctl –test=long /dev/sda’ можно из-под работающей системы запускать ? Или только из-под лайвсиди ?

noname111
() автор топика
Ответ на: комментарий от noname111

Прочитал это

Получил такое же:

~$ sudo debugfs
 debugfs 1.44.1 (24-Mar-2018)
debugfs:  open /dev/sda1
debugfs:  icheck 169060
Block	Inode number
169060	<block not found>
debugfs:   block_dump 169060
block_dump: Input/output error while reading block 169060

debugfs:  testb 169060
Block 169060 marked in use
debugfs:
noname111
() автор топика
Ответ на: комментарий от noname111

197 Current_Pending_Sector -O–CK 100 100 000 - 8

Многовато, но если расти не будут (и потом превращаться в 196 атрибут), то можно оставить. Можно установить whdd и в readonly режиме прогнать тест.

Также можно hdparm --read-sector и осторожно hdparm --write-sector попросить прошивку диска поутюжить бэд-сектора.

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

Ну попробуйте: sudo dumpe2fs -b /dev/sda1
-- это выведет список плохих блоков. Если этот 169060 там будет, значит fsck его туда поместил, уже не узнать, к чему относился этот блок.

А вот если его там нет, тогда нужно бы смотреть вывод dumpe2fs (без ключей), но это страшно. Там куча строк и по части блоков указаны интервалы значений, поэтому просто grep по номеру блок может не сработать. И, если получится, что этот блок относится к ″Block bitmap at″ или ″Inode bitmap at″, или ″Inode table at″, значит fsck не отработал как надо.

Странно, если smartctl -x выдаёт только про один блок, если Pending целых 8 шт. Хотя у каждой прошивки своё мнение как и что считать и логгировать.

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

Ну попробуйте: sudo dumpe2fs -b /dev/sda1 – это выведет список плохих блоков. Если этот 169060 там будет, значит fsck его туда поместил, уже не узнать, к чему относился этот блок.

Так и есть.

:~$ sudo dumpe2fs -b /dev/sda1
dumpe2fs 1.44.1 (24-Mar-2018)
169060
:~$
noname111
() автор топика
Ответ на: комментарий от Dimez

Также можно hdparm –read-sector и осторожно hdparm –write-sector попросить прошивку диска поутюжить бэд-сектора.

Это можно в работающей исследуемой системе запускать или только из-под лайв сиди (то-бишь, раздел должен быть отмонтирован) ? Тот же вопрос по whdd. Тот же вопрос по ‘smartctl –test=long /dev/sda’ и командам типа fsck и e2fsck в рассматриваемом в теме контексте.

Для запуска badblocks том должен быть отмонтирован, насколько я читал. Затирка диска нулями - из-под лайвсиди. А вот это на прочтение ‘dd if=/dev/sda2 of=/dev/null bs=40960’ ? Тоже из-под лайвсиди, надо полагать?

P.S. Просто в инструкциях не обращают внимание на этот момент. Вроде как само собой разумеющееся, но ведь только для специалистов.

noname111
() автор топика
Ответ на: комментарий от noname111

Согласно man smartctl, просто тесты (-t short/-t long) запускаются при нормальной работе системы. И без разницы откуда запускать, диск всё равно ничего не знает, про то, смонтированы его разделы или нет.

Это если ещё опцию -C добавить, то во время теста с диском ничего делать нельзя.

Про whdd не знаю, там же разные тесты.

Так все тесты просто на чтение, что dd, что badblocks в режиме по умолчанию запускаются со смонтированым разделом. Отмонтировать раздел надо, если тест на запись, что неразрушающий, что полный.

hdparm -read-sector тоже можно на смонтированой системе, так как чтение. Единственно, что бывают баги в прошивках дисков, что чтение из сбойного сектора приводит к его полному зависанию (диска), но это редкое ненормальное поведение.

hdparm -write-sector по секторам, занятым ФС можно только, если этот сектор входит в неиспользуемый блок, лучше чтобы вобще в список плохих блоков. Там особо не важно, смонтирован раздел или нет. Если занулить используемый ФС сектор, файловая система в любом случае может расстроиться.

mky ★★★★★
()