FSCK сообщает, что файловая система все еще имеет ошибки - что мне теперь делать? [dубликат]

На этот вопрос уже есть ответ: Как проверить целостность носителя данных (жесткий диск или флэш-диск)? 4 ответа

Всего новичков. Немного узнать о fsck на лету, но то, что я нахожу до сих пор, похоже, не очень сильно, когда я его применяю. Каким будет следующий шаг из этой подсказки для исправления ошибок, возникающих при загрузке?

6
задан 4 November 2017 в 22:49

4 ответа

Я боюсь, что ваш жесткий диск имеет badblocks или он не работает. Вы видите это сообщение: blk_update_request: I/O error, dev sda, sector 2048? Это означает, что читать этот сектор с физического устройства невозможно.

Вам нужно загрузиться с LiveCD и проверить, что вы управляете:

$ sudo smartctl -HA /dev/sda

и проверить строку SMART overall-health self-assessment test result: PASSED, а строка Reallocated_Sector_Ct должна содержать 0 в RAW_VALUE.

Если самотестирование SMART PASSED, вы можете попробовать «переназначить» badblocks с помощью инструмента badblocks:

$ sudo badblocks -svo ~/msg.log /dev/sda

и запустить fsck после:

$ sudo fsck -a /dev/sda1

Если самотестирование SMART FAILED, вам нужно заменить ваш жесткий диск.

PS: Все эти шаги вы должны выполнить с сеанса LiveCD. И вы должны заменить /dev/sda на свой диск.

Update [11.11.2017]: Итак, я проверил один из моих старых HHD с badblocks, и у меня есть эти сообщения в моем syslog:

Nov 10 13:46:55 router kernel: [ 121.339691] ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 Nov 10 13:46:55 router kernel: [ 121.339702] ata2.01: BMDMA stat 0x64 Nov 10 13:46:55 router kernel: [ 121.339711] ata2.01: failed command: READ DMA Nov 10 13:46:55 router kernel: [ 121.339726] ata2.01: cmd c8/00:08:58:64:00/00:00:00:00:00/f0 tag 0 dma 4096 in Nov 10 13:46:55 router kernel: [ 121.339726] res 51/40:00:5b:64:00/00:00:00:00:00/f0 Emask 0x9 (media error) Nov 10 13:46:55 router kernel: [ 121.339733] ata2.01: status: { DRDY ERR } Nov 10 13:46:55 router kernel: [ 121.339738] ata2.01: error: { UNC } Nov 10 13:46:55 router kernel: [ 121.364282] ata2.00: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380287] ata2.01: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380327] sd 1:0:1:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE Nov 10 13:46:55 router kernel: [ 121.380337] sd 1:0:1:0: [sdb] tag#0 Sense Key : Medium Error [current] [descriptor] Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed Nov 10 13:46:55 router kernel: [ 121.380355] sd 1:0:1:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 64 58 00 00 08 00 Nov 10 13:46:55 router kernel: [ 121.380361] blk_update_request: I/O error, dev sdb, sector 25691 Nov 10 13:46:55 router kernel: [ 121.380369] Buffer I/O error on dev sdb, logical block 3211, async page read Nov 10 13:46:55 router kernel: [ 121.380410] ata2: EH complete

Итак, все сообщения о ошибках ввода-вывода поступают из ядра. Самое интересное, что я нашел в этой строке:

Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed

Как я понял, это декодированное сообщение с прошивки диска. Похоже, что прошивка обнаружила ошибку чтения и попыталась перераспределить сектор и с ним не справилась. Следовательно, в нашем случае badblocks ничего не делал, кроме чтения всех секторов, и мы могли бы заменить его на dd if=/dev/sdX of=/dev/null.

И теперь я полностью взволнован с sudodus. Наиболее подходящим решением является:

sudo e2fsck -cfk /dev/sdxn
6
ответ дан 18 July 2018 в 03:53
[D0] S.M.A.R.T. информация о HDD и SSD

Проверьте значение S.M.A.R.T. Информация. Легко использовать псевдоним дисков gnome-disks в соответствии с этой ссылкой,

Реформировать жесткий диск после повреждения поврежденного загрузочного сектора вредоносным программным обеспечением - прокрутить вниз до «Возможно, повреждено оборудование на диске»

Выбрать S.M.A.R.T. через кнопку at (1) и проверить общую оценку на (2).

Реформирование жесткого диска после повреждения вредоносного загрузочного сектора - прокрутите вниз до «Возможно, повреждено дисковое оборудование»

Запустите fsck в файловой системе ext4

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

sudo e2fsck -f /dev/sdxn

где x - буква устройства, а n - номер раздела, в вашем случае /dev/sda1 в соответствии с снимком экрана.

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

Иногда возникают неисправные сектора (аппаратные дефекты на диске). Затем вы можете отметить поврежденные сектора (и заставить их избегать их) следующей командой

sudo e2fsck -cfk /dev/sdxn

Подробнее см. Руководство

man e2fsck

и следующую ссылку для получения дополнительных рекомендаций по ремонту файловых систем,

Исправьте таблицу разделов и файловую систему pendrive

9
ответ дан 18 July 2018 в 03:53

Я боюсь, что ваш жесткий диск имеет badblocks или он не работает. Вы видите это сообщение: blk_update_request: I/O error, dev sda, sector 2048? Это означает, что читать этот сектор с физического устройства невозможно.

Вам нужно загрузиться с LiveCD и проверить, что вы управляете:

$ sudo smartctl -HA /dev/sda

и проверить строку SMART overall-health self-assessment test result: PASSED, а строка Reallocated_Sector_Ct должна содержать 0 в RAW_VALUE.

Если самотестирование SMART PASSED, вы можете попробовать «переназначить» badblocks с помощью инструмента badblocks:

$ sudo badblocks -svo ~/msg.log /dev/sda

и запустить fsck после:

$ sudo fsck -a /dev/sda1

Если самотестирование SMART FAILED, вам нужно заменить ваш жесткий диск.

PS: Все эти шаги вы должны выполнить с сеанса LiveCD. И вы должны заменить /dev/sda на свой диск.

Update [11.11.2017]: Итак, я проверил один из моих старых HHD с badblocks, и у меня есть эти сообщения в моем syslog:

Nov 10 13:46:55 router kernel: [ 121.339691] ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0 Nov 10 13:46:55 router kernel: [ 121.339702] ata2.01: BMDMA stat 0x64 Nov 10 13:46:55 router kernel: [ 121.339711] ata2.01: failed command: READ DMA Nov 10 13:46:55 router kernel: [ 121.339726] ata2.01: cmd c8/00:08:58:64:00/00:00:00:00:00/f0 tag 0 dma 4096 in Nov 10 13:46:55 router kernel: [ 121.339726] res 51/40:00:5b:64:00/00:00:00:00:00/f0 Emask 0x9 (media error) Nov 10 13:46:55 router kernel: [ 121.339733] ata2.01: status: { DRDY ERR } Nov 10 13:46:55 router kernel: [ 121.339738] ata2.01: error: { UNC } Nov 10 13:46:55 router kernel: [ 121.364282] ata2.00: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380287] ata2.01: configured for UDMA/100 Nov 10 13:46:55 router kernel: [ 121.380327] sd 1:0:1:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE Nov 10 13:46:55 router kernel: [ 121.380337] sd 1:0:1:0: [sdb] tag#0 Sense Key : Medium Error [current] [descriptor] Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed Nov 10 13:46:55 router kernel: [ 121.380355] sd 1:0:1:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 64 58 00 00 08 00 Nov 10 13:46:55 router kernel: [ 121.380361] blk_update_request: I/O error, dev sdb, sector 25691 Nov 10 13:46:55 router kernel: [ 121.380369] Buffer I/O error on dev sdb, logical block 3211, async page read Nov 10 13:46:55 router kernel: [ 121.380410] ata2: EH complete

Итак, все сообщения о ошибках ввода-вывода поступают из ядра. Самое интересное, что я нашел в этой строке:

Nov 10 13:46:55 router kernel: [ 121.380346] sd 1:0:1:0: [sdb] tag#0 Add. Sense: Unrecovered read error - auto reallocate failed

Как я понял, это декодированное сообщение с прошивки диска. Похоже, что прошивка обнаружила ошибку чтения и попыталась перераспределить сектор и с ним не справилась. Следовательно, в нашем случае badblocks ничего не делал, кроме чтения всех секторов, и мы могли бы заменить его на dd if=/dev/sdX of=/dev/null.

И теперь я полностью взволнован с sudodus. Наиболее подходящим решением является:

sudo e2fsck -cfk /dev/sdxn
6
ответ дан 24 July 2018 в 17:57
  • 1
    Лучше не запускать badblocks напрямую, а скорее использовать sudo e2fsck -ck /dev/sdxn. Проверьте man badblocks для получения дополнительной информации. – heynnema 4 November 2017 в 23:15
  • 2
    В этом случае я хочу, чтобы badblocks переназначал badblocks в зарезервированную область, а не для подачи его вывода на fsck. – Evgeniy Yanuk 4 November 2017 в 23:39
  • 3
    Вы не поняли. На каждом жестком диске и SSD есть область reserved. И если диск firmware обнаруживает неудачную попытку записи в сектор, он может переназначить этот сектор на один из зарезервированной области. Поэтому, когда вы попытаетесь получить доступ к этому сектору, вы получите данные из переназначенного. Поэтому никто не знает об этом секторе помимо прошивки. Возможно, эта статья очистит тему. – Evgeniy Yanuk 4 November 2017 в 23:54
  • 4
    @sudodus, записывая в плохой сектор, либо исправит его (в случае, когда данные только что были скремблированы, возможно, из-за внезапной потери мощности), либо заставит его перераспределить из резервного пула. Если вы не используете ключ -w, badblocks пытается только прочитать с диска. Даже если вы это сделаете, я не уверен, попытается ли он написать блок, который он не может прочитать первым. – psusi 5 November 2017 в 02:35
  • 5
    У меня был диск с badblocks, и я использовал инструмент badblocks для проверки этого диска (без опций -w или -n). [F4] рос, и я связал сообщения в syslog с ядром. Я не могу найти какие-либо документы, чтобы доказать свои слова, но я проведу один из таких дисков во вторник и сообщите здесь. – Evgeniy Yanuk 5 November 2017 в 04:13
[D0] S.M.A.R.T. информация о HDD и SSD

Проверьте значение S.M.A.R.T. Информация. Легко использовать псевдоним дисков gnome-disks в соответствии с этой ссылкой,

Реформировать жесткий диск после повреждения поврежденного загрузочного сектора вредоносным программным обеспечением - прокрутить вниз до «Возможно, повреждено оборудование на диске»

Выбрать S.M.A.R.T. через кнопку at (1) и проверить общую оценку на (2).

Реформирование жесткого диска после повреждения вредоносного загрузочного сектора - прокрутите вниз до «Возможно, повреждено дисковое оборудование»

Запустите fsck в файловой системе ext4

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

sudo e2fsck -f /dev/sdxn

где x - буква устройства, а n - номер раздела, в вашем случае /dev/sda1 в соответствии с снимком экрана.

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

Иногда возникают неисправные сектора (аппаратные дефекты на диске). Затем вы можете отметить поврежденные сектора (и заставить их избегать их) следующей командой

sudo e2fsck -cfk /dev/sdxn

Подробнее см. Руководство

man e2fsck

и следующую ссылку для получения дополнительных рекомендаций по ремонту файловых систем,

Исправьте таблицу разделов и файловую систему pendrive

9
ответ дан 24 July 2018 в 17:57
  • 1
    Когда вы плохо блокируете диск, лучше добавить новые плохие блоки в существующую таблицу bad block с sudo e2fsck -cfk /dev/sdxn ... НО я сначала проверил бы информацию SMART. – heynnema 4 November 2017 в 23:10
  • 2
    Плохие блоки на современном диске (21 век) являются признаком неизбежной кончины. Идея плохого списка блоков стала довольно бессмысленной. Вместо этого замените диск. e2fsck неудачи не так уж плохи, поскольку они могут быть вызваны временными проблемами. Они не требуют замены диска. – MSalters 5 November 2017 в 18:27

Другие вопросы по тегам:

Похожие вопросы: