Проблема с файловой системой 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, выполнив следующие действия:

  1. подключите eMMC к другому компьютеру под управлением Ubuntu
  2. установить ddrescue:

    sudo apt-get install gddrescue
    
  3. скопируйте 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 это имя файла журнала. Всегда используйте лог-файл. Это позволяет возобновить прерванное изображение в том месте, где вы остановились, или повторить попытку поврежденных секторов после первоначального прохода. Без лог-файла вам придется начинать все сначала!
  4. После этого размонтируйте MMC при необходимости

  5. Вставьте новую MMC в слот MMC компьютера и выполните:

    ddrescue --force /tmp/eMMC.img /dev/XdY /tmp/eMMC.restore.log
    
  6. вставьте новую MMC обратно в Lenovo и перезагрузите компьютер

Готово!

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