На этот вопрос уже есть ответ здесь:
Я немного узнаю о fsck
на лету, но то, что я нахожу до сих пор, не очень помогает, когда я его применяю. Каким будет следующий шаг из этого приглашения, чтобы исправить ошибки, возникающие при загрузке?
Проверьте S.M.A.R.T. Информация. Использовать псевдоним Disks gnome-disks
по этой ссылке легко,
fsck
в файловой системе ext4
Когда я использую fsck
в файле ext4
Я загружаю систему с другого диска и размонтирую файловую систему.
sudo e2fsck -f /dev/sdxn
где x - буква устройства, а n - номер раздела, в вашем случае /dev/sda1
согласно скриншоту.
Иногда полезно выполнить эту команду дважды. Иногда файловая система повреждена без возможности восстановления.
Иногда возникают поврежденные сектора (аппаратные дефекты на диске). Затем вы можете пометить поврежденные сектора (и заставить систему их избегать) с помощью следующей команды
sudo e2fsck -cfk /dev/sdxn
См. Руководство
man e2fsck
для получения дополнительной информации и следующую ссылку для получения дополнительной информации. Советы по восстановлению файловых систем,
Восстановление таблицы разделов и файловой системы в режиме pendrive
Я боюсь, что Ваш жесткий диск имеет 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
поле.
Если УМНЫЙ сам тест PASSED
можно попытаться 'повторно отобразить' badblocks с badblocks
инструмент:
$ sudo badblocks -svo ~/msg.log /dev/sda
и выполненный fsck после:
$ sudo fsck -a /dev/sda1
Если УМНЫЙ сам тест FAILED
необходимо заменить жесткий диск.
PS: Все эти шаги необходимо сделать от сессии LiveCD. И необходимо заменить /dev/sda
к Вашему диску.
Обновление [11.11.2017]: Таким образом, я проверил один из своих старых HHDs с 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