dist-upgrade 之后出现段错误和“只读文件系统”

dist-upgrade 之后出现段错误和“只读文件系统”

在我的 14.04 家庭服务器上运行 apt-get dist-upgrade 之后,似乎出现了一些问题,导致机器无法使用。

一切都从这个开始:

Preparing to unpack .../linux-image-3.13.0-45-generic_3.13.0-45.74_amd64.deb ...
Done.
Unpacking linux-image-3.13.0-45-generic (3.13.0-45.74) ...
Selecting previously unselected package linux-image-extra-3.13.0-45-generic.
Preparing to unpack .../linux-image-extra-3.13.0-45-generic_3.13.0-45.74_amd64.deb ...
Unpacking linux-image-extra-3.13.0-45-generic (3.13.0-45.74) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-extra-3.13.0-45-generic_3.13.0-45.74_amd64.deb (--unpack): cannot copy extracted data for 
'./lib/modules/3.13.0-45-generic/kernel/sound/pci/echoaudio/snd-darla24.ko' to '/lib/modules/3.13.0-45-generic/kernel/sound/pci/echoaudio/snd-darla24.ko.dpkg-new': failed to write (Read-only file system)

dpkg: error while cleaning up:

unable to remove newly-extracted version of `/lib/modules/3.13.0-45-generic/kernel/sound/pci/echoaudio/snd-darla24.ko': Read-only file system
dpkg: error while cleaning up:
unable to remove newly-extracted version of `/lib/modules/3.13.0-45-generic/kernel/sound/pci/echoaudio/snd-indigoio.ko': Read-only file system

dpkg: error while cleaning up:
 unable to remove newly-extracted version of `/lib/modules/3.13.0-45-generic/kernel/sound/pci/echoaudio/snd-indigodj.ko': Read-only file system

随后还有数百行类似的内容,讲述由于只读文件系统而无法删除 blah。

为避免疑问,在我运行升级之前,系统不是只读的!事实上,我在几分钟前运行了一个标准的 apt-get 升级,它毫无问题地完成了。

我首先尝试检查 fstab,但每次尝试使用 sudo 打开文件时都会出现分段错误。

$ sudo vi /etc/fstab
Segmentation fault

从这里,我尝试以标准用户身份打开文件,但出现了 I/O 错误:

$ vi /etc/fstab
-bash: /usr/bin/vi: Input/output error

我现在还不确定该怎么做——我仍然可以通过 SSH 进入盒子,但无法打开任何文件,所以我不确定要检查什么。我将在接下来的几个小时内获得物理访问权限,所以我想弄清楚安装是否可以保存,或者它是否完全崩溃了。

有人遇到过类似的事情吗?任何建议都会很感激,如果你需要更多信息,请告诉我。

答案1

对于偶然发现这个问题的人来说,潜在的问题似乎是我在内核更新过程中耗尽了磁盘空间,因此尚未创建 initrd 映像文件。因此,当我尝试重新启动时,我得到的只是内核崩溃错误。

修理:

  • 将 Xubuntu 的副本刻录到 USB 中
  • 启动到 USB 并选择“尝试 Xubuntu”选项
  • 打开终端 - 发现一些我不需要的东西,并删除了它(在我的例子中,/var/lib/docker 中有 3GB 的 Docker 文件,它们很容易被替换)
  • cd 进入 /boot 并记下最后一个工作的内核(对我来说,它是 3.13.0.43)
  • 重新启动 - 在 GRUB 菜单中选择“高级启动选项”(或其他选项),然后选择上面的内核
  • 系统正常启动(耶!)- 运行 sudo apt-get update && sudo apt-get upgrade
  • 让 Ubuntu 做它该做的事
  • 再次正常重启
  • 固定的!

由于之前的更新失败,屏幕上可能显示必须运行 dpkg 命令才能升级 - 我的大部分内容都是凭记忆引用的。无论如何,我记得我完全按照它告诉我的运行,一切都很顺利。

是的。这个故事的寓意是 - 不要低估你可能需要的 / 分区的大小,并留意磁盘空间!

相关内容