关于卸载 CD-ROM 后运行 LiveCD Linux 的行为的问题

关于卸载 CD-ROM 后运行 LiveCD Linux 的行为的问题

有人能解释一下在使用 LiveCD 会话期间拔掉 CD-ROM 后系统会发生什么吗?

假设我正在使用 Ubuntu LiveCD,突然意外地断开了 CD-ROM 的连接,例如外部设备断电或只是打开了 CD 托盘(如果操作系统允许的话)。假设过了一会儿,CD-ROM 又插上了。

有人能解释一下究竟发生了什么吗,为什么操作系统停止了或者说还在运行但不像以前那样了,如果可能的话,如何恢复稳定性和实用性,让用户可以继续使用?

根据我对 Ubuntu LiveCDs(12 以下版本,内核版本大概是 2.6.XX)的观察,系统反应如下:

  • X 桌面上的所有应用程序都消失了(我认为这是由于操作系统自动向所有进程发送了终止信号,好像操作系统想要关闭,但实际上它似乎在等待什么东西),看起来只有带有光标的背景图像可以一直移动
  • 所有 TTY 都可用并可显示,但那里只有错误消息,如INFO: task <process name>:<pid> blocked for more than 120 secondsSquashFS error: unable to read [...]
  • 我一直看到闪烁的“_”,我可以输入一些内容,但按回车键只会让它跳到新行,显然操作系统不会执行它
  • 终端的取消和退出当前进程的快捷键也不起作用
  • 神奇的 SysRq 组合通常有效,我可以看到实际的输出,但我不知道在这种情况下哪一个有用

有人能解释一下这种反应,并说出这些错误到底是什么意思吗?那么可以做些什么来修复它 - 有什么办法吗?如果有的话,为什么不呢?

这里: https://unix.stackexchange.com/questions/76166/what-does-info-task-xxx-blocked-for-more-than-120-seconds-exactly-mean-on-lin 我刚刚读到“如果任务被阻止,它会等待资源再次可用”。所以如果我理解正确的话,它正在等待资源 - 这是正确的还是只是错误的解释,它会无休止地等待 - CD-ROM 肯定会尽快再次插入。如何理解它?

我知道进程已经消失(或者如错误消息所暗示的那样“被阻止”?),但 ramdisk 中的文件怎么样?它们在重启之前还会存在吗?是否可以以某种方式访问​​它们?或者例如仅提取文本字符串等?

有一个神奇的 SysRq 快捷键可以重新挂载文件系统 - 在这种情况下,它是否有可能有所帮助,或者在尝试其他方法后最终应该尝试一下?如果 CD 作为虚拟 fs 工作,那么在这种情况下重新挂载文件系统会带来什么效果?

答案1

我将尝试指出其中的一些错误:

  • SquashFS error: unable to read [...]尝试访问 CD 本身的文件系统时出现错误。壁球,正如 Wikipedia 所指出的,是一种压缩的只读文件系统,通常用于 LiveCD 上的系统数据。您的大多数系统目录(可能是/bin/sbin和其他一些目录)可能都位于这些 CD 文件系统上,因此当程序必须访问这些目录时,您会收到错误。
  • <process name>:<pid> blocked for more than 120 seconds可能是因为某个进程想要从 SquashFS 读取某些内容,但内核却因为出现读取错误而阻止了它。
  • 闪烁_是正常的(也就是说,Ubuntu 不会getty在您使用的任何 TTY 上运行 - 我在完全正常的系统上按Ctrl+ Alt+即可获得一个F8)。但是,如果它在较低的 TTY 上(TTY 7 以下的任何 TTY),则可能表明 Ubuntu 无法启动该login程序,因为它找不到它。但是,如果您可以输入某些内容,则意味着您可能正在运行getty
  • SysRQ 有许多可能的选择 - 维基百科给出了有用列表。您可以尝试Alt+ SysRQ+u看看 Linux 是否能够成功重新安装您在移除 CD 时丢失的 SquashFS 文件系统。如果成功,您应该能够再次获得 shell - 虽然我不知道您的其他进程是否会恢复。

您应该尝试的一件事是查看与这些只读文件系统关联的目录。为此,您应该尝试mount | grep squashfs。这将找出磁盘上存储了哪些文件系统,以及删除它时会受到什么影响。

至于恢复 RAM 中的文件 - 它们会一直存在直到重新启动,但如果您无法重新挂载文件系统并访问登录 shell,则它们几乎肯定会在您重新启动时被破坏。

相关内容