Ошибки раздела и перемонтирование только для чтения при доступе к конкретному файлу

У меня довольно простая система с Ubuntu 16.04, 1 HDD и несколькими разделами:

sda1 - EXT4 - 100G   - /
sda2 - EXT4 - 723.5G - /home
sda3 - NTFS - 100G   - (windows)
sda5 - SWAP - 8G

Всякий раз, когда я пытаюсь получить доступ к одному из 3-4 файлов в определенном каталоге в /home раздел (конкретная папка, вызывающая проблемы /home/path/to/broken/folder), раздел /home выдаст ошибку и перемонтирует только для чтения. dmesg показывает следующие ошибки:

EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1415: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)
Aborting journal on device sda2-8.
EXT4-fs (sda2): Remounting filesystem read-only
EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1417: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)
EXT4-fs error (device sda2): ext4_ext_check_inode:497: inode #1416: comm rm: pblk 0 bad header/extent: invalid magic - magic 0, entries 0, max 0(0), depth 0(0)

Итак, я понимаю, что происходит ... какой-то плохой блок вызывает ошибку и перемонтирует диск только для чтения, чтобы предотвратить дальнейшее повреждение. Я знаю, что это именно эти конкретные файлы, потому что я могу отменить ошибку путем

  1. , войдя в систему как root
  2. Запуск sync
  3. Остановка lightdm (и все подпроцессы)
  4. Остановите все оставшиеся открытые файлы в /home, найдя их с помощью lsof | grep /home
  5. Размонтируйте /home
  6. Запустите fsck /home (исправление ошибок )
  7. Remount /home

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

Я попытался получить доступ к файлам, запустив ls /home/path/to/broken/folder и rm -r /home/path/to/broken/folder, поэтому кажется, что любая операция с жестким диском на этой части диска приводит к ошибкам и снова выбрасывает его только для чтения.

1135 Мне, честно говоря, наплевать на файлы, я просто хочу, чтобы они исчезли. Я желаю удалить всю папку /home/path/to/broken/folder, но каждый раз, когда я пытаюсь это сделать, она терпит неудачу и выбрасывается только для чтения.

Как это исправить, не переформатировав весь диск /home?


РЕДАКТИРОВАТЬ 1:

Я запустил badblocks -v /dev/sda2 на своем жесткий диск, но он вышел чистый, без плохих блоков. Любая помощь все равно будет принята с благодарностью.


РЕДАКТИРОВАТЬ 2:

Все еще ищете решение этой проблемы. Некоторая информация, которая может быть полезна ниже:

$ debugfs -R 'stat <1415>' /dev/sda2
debugfs 1.42.13 (17-May-2015)
Inode: 1415   Type: regular    Mode:  0644   Flags:  0x80000
Generation: 0    Version: 0x00000000
User:     0   Group:     0   Size: 0
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
atime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
mtime: 0x5639ad86 -- Wed Nov  4 01:02:30 2015
Size of extra inode fields: 0
EXTENTS:

Теперь я сам посмотрел на это и сравнил его с тем, что я подозреваю, что он не поврежден:

$ debugfs -R 'stat <1410>' /dev/sda2
debugfs 1.42.13 (17-May-2015)
Inode: 1410   Type: regular    Mode:  0644   Flags:  0x80000
Generation: 0    Version: 0x00000000
User:     0   Group:     0   Size: 996
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
ctime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
atime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
mtime: 0x5639ad31 -- Wed Nov  4 01:01:05 2015
Size of extra inode fields: 0
EXTENTS:
(0):46679378

Я выделил жирным шрифтом я верю, что здесь есть ключевые различия. Я посмотрел на другие не поврежденные иноды, и они отображают нечто похожее на 1410, которое имеет ненулевой размер и экстент.

Плохой заголовок / экстент здесь имеет смысл ... он не имеет степени .... как мне это исправить?

Я действительно чувствую, что передал этот вопрос кому-то умнее, чем я на серебряном блюде, я просто не знаю, что такое еда (ответ)!

1
задан 11 May 2016 в 08:33

1 ответ

Наконец найденный ответом от кого-то еще на другом сайте, просто обнулил inodes и перепроверил систему, которая была всем!

debugfs -w /dev/sda2
:clri <1415>
:clri <1416>
:clri <1417>
:q
fsck -y /dev/sda2

кому-либо еще с этой проблемой, я нашел свой плохой inodes использованием find на плохом монтировании, затем проверил dmesg на ошибки на плохом inodes.

0
ответ дан 11 May 2016 в 18:33
  • 1
    Спасибо за всю справку! Ничего себе, на самом деле. На ВОПРОС Leo ОТВЕЧАЮТ! – Leo Rivers 27 October 2017 в 12:52

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

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