Lenovo 310 的文件系统问题

Lenovo 310 的文件系统问题

我在联想 310 上安装了 Ubuntu 18.04,一段时间后出现了一些问题(问题通常发生在浏览器上观看 Flash 视频后),文件系统变为只读。例如,当我尝试执行 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 复制到另一台计算机的 HDD 上的映像:

     ddrescue --direct --retry-passes=3 /dev/XdY /tmp/eMMC.img /tmp/eMMC.log
    

    上述命令将告诉 ddrescue:

    • --direct使用直接磁盘访问并忽略内核的缓存
    • --retry-passes=3在放弃之前,请重试坏扇区 3 次。
    • /dev/XdY我们正在拯救的 MMC 在哪里X,并Y指定 MMC 的标识符
    • eMMC.img是图像文件的名称
    • eMMC.log是日志文件的名称。始终使用日志文件。这允许您从中断点恢复中断的图像,或者在初始通过后重试坏扇区。如果没有日志文件,您将不得不重新开始!
  4. 完成后,如果需要,卸载 MMC

  5. 将新的MMC插入计算机的MMC插槽中并执行:

     ddrescue --force /tmp/eMMC.img /dev/XdY /tmp/eMMC.restore.log
    
  6. 将新的 MMC 重新插入联想电脑并重启

完毕!

相关内容