LINUX.ORG.RU

Ошибка синхронизации или закрытия файлов /dev/sdc: Ошибка ввода/вывода

 , ,


0

2

Столкнулся с такой проблемой, при попытке запустить gparted я получаю ошибку

Ошибка синхронизации или закрытия файлов /dev/sdc: Ошибка ввода/вывода<<<

ссд живое, ибо реагирует на команду hdparm /dev/sdc

/dev/sdc: multcount = 16 (on) IO_support = 1 (32-bit) readonly = 0 (off) readahead = 256 (on) geometry = 15566/255/63, sectors = 250069680, start = 0<<<

реакция на fdisk -l /dev/sdc

Диск /dev/sdc: 119,2 GiB, 128035676160 байт, 250069680 секторов Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт<<<

реакция на dd if=/dev/zero of=/dev/sdс bs=512 count=1

1+0 записей получено 1+0 записей отправлено 512 bytes copied, 0,000143093 s, 3,6 MB/s<<<

Как решить проблему ? Хотя бы банально создать таблицу разделов, ибо из-за ошибки даже это не могу сделать



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

Ответ на: комментарий от Kron4ek

то же самое

Таблица разделов была изменена. Вызывается ioctl() для перечитывания таблицы разделов. /dev/sdc: не удалось закрыть устройство: Ошибка ввода/вывода<<<

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

[ 3041.489728] sd 3:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 3041.489732] sd 3:0:0:0: [sdc] tag#0 Sense Key : Illegal Request [current] [ 3041.489735] sd 3:0:0:0: [sdc] tag#0 Add. Sense: Unaligned write command [ 3041.489739] sd 3:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 00 00 5e b8 00 00 48 00 [ 3041.489743] blk_update_request: I/O error, dev sdc, sector 24248 op 0x1:(WRITE) flags 0x800 phys_seg 9 prio class 0 [ 3041.489749] Buffer I/O error on dev sdc, logical block 3031, lost async page write [ 3041.489758] Buffer I/O error on dev sdc, logical block 3032, lost async page write [ 3041.489761] Buffer I/O error on dev sdc, logical block 3033, lost async page write [ 3041.489763] Buffer I/O error on dev sdc, logical block 3034, lost async page write [ 3041.489766] Buffer I/O error on dev sdc, logical block 3035, lost async page write [ 3041.489768] Buffer I/O error on dev sdc, logical block 3036, lost async page write [ 3041.489771] Buffer I/O error on dev sdc, logical block 3037, lost async page write [ 3041.489773] Buffer I/O error on dev sdc, logical block 3038, lost async page write [ 3041.489776] Buffer I/O error on dev sdc, logical block 3039, lost async page write [ 3041.509462] sd 3:0:0:0: [sdc] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 3041.509467] sd 3:0:0:0: [sdc] tag#0 Sense Key : Illegal Request [current] [ 3041.509471] sd 3:0:0:0: [sdc] tag#0 Add. Sense: Unaligned write command [ 3041.509476] sd 3:0:0:0: [sdc] tag#0 CDB: Write(10) 2a 00 00 00 5f 00 00 01 98 00 [ 3041.509482] blk_update_request: I/O error, dev sdc, sector 24320 op 0x1:(WRITE) flags 0x800 phys_seg 51 prio class 0 [ 3041.509487] Buffer I/O error on dev sdc, logical block 3040, lost async page write

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

та же проблема

Предупреждение: Ошибка синхронизации или закрытия файлов /dev/sdc: Ошибка ввода/вывода Повторить/Retry/Игнорировать/Ignore?

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

у меня OCZ так и откидывались, не одна и не две, и даже не три

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

Кабель проверь. У меня бывало отходил, были похожие ошибки.

Kron4ek ★★★★★
()
Ответ на: комментарий от ran1dom
dd if=/dev/zero of=/dev/sdc bs=512 count=2048
dd if=/dev/sdc of=/dev/null bs=512 count=2048
firkax ★★★★★
()

реакция на dd

Реакция на dd без oflag=direct говорит только о том что вы писали в page cache а не на диск.

Вообще ваш диск уже тыква. Попробуйте сделать ему blkdiscard /dev/sdc

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

Инджой ёр модный ССД — они именно так и дохнут, без предупреждения, иногда посреди работы.

И, главное, на ЛОРе полно баритонов, звездящих о том, как «устарели» HDD…

anonymous
()
Ответ на: комментарий от Nastishka

раз уж вы заговорили о флаге direct


можете пояснить, как =правильно= пользоваться этой опцией для ddrescue? (в мане или официальном GNU Manual информация очень сухая)
особенно интересует вопрос использования

--direct (       use direct disc access for input file)
зачем обращаться напрямую к битому диску? (типичный кейс ddrescue - копирование битого диска на здоровый/новый)

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

Чтобы ядро не умничило и не объединяло запросы в один. Чтобы диск получал команды читать по одному сектору. Не факт что поможет, но бывает, что НЖМД зависает при обращении к битому сектору и,отслеживать создание файлов в директории auditd если читать по 16 секторов разом, то и соседние сектора от битого не прочитаются.

Ну и не зачем заполнять дисковый кеш данными, которые больше никакому приложению не нужны. Может система не только ddrescue выполняет.

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

спасибо
со вторым доводом согласен сразу на 200%
по первому доводу - вы немного противоречите вот этому вот пункту (ну или я неправильно понял что-то)

       -c, --cluster-size=<sectors>
              sectors to copy at a time [128]

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

Исходники ddrescue не смотрел. Как я понимаю, размер кластера определят кол-во секторов, которые dd попросит от ядра. А само ядро, без флага O_DIRECT, может попросить от НЖМД больше секторов — read ahead, может выравнивание, может ещё что.

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

ок, ещё раз спасибо
про /sys/block/sd?/queue/read_ahead_kb знал уже раньше
я тоже сырцы не смотрел, просто думал, что упускаю что-то очевидное. Диск буду восстанавливать впервые, поэтому хотелось заранее подготовиться, получить опытную инфу, а не только google/archwiki

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

Обычно при чтении делается так называемый readahead который как правило порядка 64/128KB. Если у вас побит один-два сектора, которые нынче, как известно, 4KB (а у меня были такие диски - если не делать перезапись, через некоторое время не читаются некоторые единичные сектора), то вы получаете ошибку чтения для 16 секторов. С флагом direct читается 4K что означает что вы не прочтете только то что не читается

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

не прошло и полгода, зайка моя!


ну а вообще спасибо - твои слова подтверждают слова mky

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

Чтобы ядро не умничило и не объединяло запросы в один. Чтобы диск получал команды читать по одному сектору.

Мне кажется - Вы сильно упрощаете, и задумку, и реализацию, и ограничения…

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

Возможно. Дайте свой ответ правильного уровня детализации.

Вопрос не в детализации. DIO это не про прямой доступ к диску как к устройству, это об bypassing page cache. И unit’ом там является не HW sector size, а fs block size. Все абстракции файловых систем сохраняются. Из ограничений - всё должно быть block size aligned, и offsets, и sizes.

И мне кажется это немножко ортогонально задаче ТС, если у него HW ошибки сыплются. Я даже не до конца понимаю как DIO в этом контексте всплыл.

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

Все абстракции файловых систем сохраняются

Я отвечал на вопрос анонима про dd_rescue, который, врятли кто додумается запускать на обычный (регулярный) файл. Для файла-устройства O_DIRECT, во всяком случае раньше, требовал размер 512 байт, и гарантировалось, что read-ahead нет.

Я согласен, что для обычного файла ядро работает через драйвер ФС, и тот вобще может полностью игнорить флаг O_DIRECT.

Вы можете написать, в каком случае чтение 512 байт с /dev/sda с флагом O_DIRECT не превратится в одну команду READ на интерфейсе диска?

Я даже не до конца понимаю как DIO в этом контексте всплыл.

DIO всплыл в ответе Nastishka, когда ТС показывал, что dd работает на его SSD-диске.

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

DIO всплыл в ответе Nastishka, когда ТС показывал, что dd работает на его SSD-диске.

Что-то мне подсказывает конкретно этот SSD читит, как насчёт записать не из /dev/zero, а /dev/random (например)?

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

ТС чего-то молчит, видимо расстроился. Конечно, лучше бы он тут отписался, чем всё закончилось, для статистики. Возможно, что после ресета/отключения питания, ssd вобще окирпичился.

mky ★★★★★
()

покажи реакцию на удар молотком.

Minona ★★☆
()
7 июля 2023 г.
Ответ на: комментарий от mky

Для статистики - чистил комп от пыли, после чего вылезла эта ошибка. Загуглил, наткнулся на этот тред и коммент про отвал кабеля. Перевоткнул сата-шлейфы, заодно продул их от пыли, и всё заработало.

Khronos
()

Это проблема с железом.

vbr ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.