Проблема с файловой системой Lenovo 310
Я установил Ubuntu 18.04 в Lenovo 310 и через некоторое время у меня возникают проблемы (обычно проблема возникает после просмотра флэш-видео в браузере), файловая система становится доступной только для чтения. Например, когда я пытаюсь сделать ls, появляется следующая ошибка:
bash: cannot create temp file for here-document: Read-only file system
и с dmesg я нахожу следующее:
[ 1113.452578] mmc1: mmc_hs400_to_hs200 failed, error -110
[ 1113.452615] mmcblk1: timed out sending r/w cmd command, card status 0x400e00
[ 1113.452617] mmcblk1: command error, retrying timeout
[ 1113.452908] mmc1: mmc_hs400_to_hs200 failed, error -110
[ 1113.452931] mmcblk1: timed out sending r/w cmd command, card status 0x400e00
[ 1113.452933] mmcblk1: command error, retrying timeout
[ 1123.552180] mmc1: Timeout waiting for hardware interrupt.
[ 1123.552209] mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 1123.552216] mmc1: sdhci: Sys addr: 0x20000008 | Version: 0x00001002
[ 1123.552223] mmc1: sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000008
[ 1123.552229] mmc1: sdhci: Argument: 0x02400988 | Trn mode: 0x0000002b
[ 1123.552235] mmc1: sdhci: Present: 0x1fff0001 | Host ctl: 0x0000003d
[ 1123.552241] mmc1: sdhci: Power: 0x0000000b | Blk gap: 0x00000080
[ 1123.552248] mmc1: sdhci: Wake-up: 0x00000000 | Clock: 0x00000207
[ 1123.552254] mmc1: sdhci: Timeout: 0x00000006 | Int stat: 0x00000000
[ 1123.552260] mmc1: sdhci: Int enab: 0x02ff000b | Sig enab: 0x02ff000b
[ 1123.552266] mmc1: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 1123.552272] mmc1: sdhci: Caps: 0x546ec881 | Caps_1: 0x80000807
[ 1123.552278] mmc1: sdhci: Cmd: 0x0000193a | Max curr: 0x00000000
[ 1123.552285] mmc1: sdhci: Resp[0]: 0x00400e00 | Resp[1]: 0x00000000
[ 1123.552291] mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00400e00
[ 1123.552296] mmc1: sdhci: Host ctl2: 0x0000000d
[ 1123.552303] mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x000000016f310200
[ 1123.552306] mmc1: sdhci: ============================================
[ 1123.552579] mmcblk1: error -110 sending stop command, original cmd response 0x0, card status 0x400900
[ 1123.552619] mmcblk1: error -110 transferring data, sector 37751176, nr 8, cmd response 0x0, card status 0x0
Когда я перезагружаюсь, появляется терминал, говорящий мне запустить fsck, и после этого и перезагрузки система снова работает нормально (на некоторое время).
Я читал, что это может быть проблема с ядром, но это также может быть проблема с моим оборудованием.
Может ли кто-нибудь помочь мне выяснить, в чем проблема? Какую информацию журнала я могу предоставить, чтобы уточнить это?
1 ответ
У вас проблема с оборудованием, но вы можете сохранить eMMC, выполнив следующие действия:
- подключите eMMC к другому компьютеру под управлением Ubuntu
установить ddrescue:
sudo apt-get install gddrescue
скопируйте eMMC на изображение на жестком диске другого компьютера:
ddrescue --direct --retry-passes=3 /dev/XdY /tmp/eMMC.img /tmp/eMMC.log
Приведенная выше команда скажет ddrescue:
--direct
использовать прямой доступ к диску и игнорировать кеш ядра--retry-passes=3
повторите неудачные секторы 3 раза, прежде чем сдаться./dev/XdY
ММС, где мы спасаемся?X
а такжеY
обозначить идентификатор ММСeMMC.img
это имя файла изображенияeMMC.log
это имя файла журнала. Всегда используйте лог-файл. Это позволяет возобновить прерванное изображение в том месте, где вы остановились, или повторить попытку поврежденных секторов после первоначального прохода. Без лог-файла вам придется начинать все сначала!
После этого размонтируйте MMC при необходимости
Вставьте новую MMC в слот MMC компьютера и выполните:
ddrescue --force /tmp/eMMC.img /dev/XdY /tmp/eMMC.restore.log
вставьте новую MMC обратно в Lenovo и перезагрузите компьютер