Ubuntu 10.04 在 vi​​rtualbox 上出现错误:目标文件系统没有 /sbin/init \ No init found。尝试传递 init= bootarg

Ubuntu 10.04 在 vi​​rtualbox 上出现错误:目标文件系统没有 /sbin/init \ No init found。尝试传递 init= bootarg

我是 Linux 新手,安装它的唯一原因是这样我就可以不再遇到 Windows 与 Ruby on Rails 不兼容的问题。话虽如此,它确实很棒,而且速度快得多,而且我认为我不会很快做任何 Winrails 的事情。

因此,我使用 virtualbox 创建了一个虚拟机,并在过去的 3 周内一直在运行 ubuntu。最近 ubuntu 询问是否可以更新一些内容,我单击了“确定”。

现在它无法启动,我收到此错误:*mount:在 /root/dev 上安装 /dev 失败:没有此文件或目录 mount:在 /root/sys 上安装 /sys 失败:没有此文件或目录 ... 目标文件系统没有 /sbin/init。未找到 init。尝试传递 init=bootarg

BusyBox v1.13.3...

(initramfs)_ *

所以我浏览了论坛,发现有各种各样的解决方案,但它们都与从 live cd 启动有关。(我认为这是我最初安装 ubuntu 时使用的 ISO 映像)。但是当我从该 CD 启动时,它只是挂在 ubuntu 屏幕上,小点不断从白色变为红色,但它挂在那里一个小时,所以我认为它卡住了。不确定我能做什么;我可以从 busybox shell(或任何其他东西)做任何事情来修复问题吗?

问题是,我花了大约 10 个小时才得到我需要的所有东西,包括所有的宝石和诸如此类的东西。而且我并没有真正写下我调整了什么,而且我已经是中年了,所以现在所有这些信息都泄露了,我不想再这样做了。我真的很想修复我现有的安装。

你可能会问,ISO 有问题吗?我认为没有问题,因为我创建了一个新的虚拟机并使用相同的 iso 文件安装了全新的 ubuntu。

任何帮助都非常感谢。

菲尔

答案1

引导加载程序提示符下一切看起来都很正常。所以我担心文件系统已被损坏。

我建议遵循以下流程:

  1. 创建一个新的虚拟机,并全新安装 Ubuntu。
  2. 安装etckeeper软件包,然后运行etckeeper init​​。这将/etc置于版本控制之下。如果您在 Bazaar、Darcs、Git 和 Mercury 中有喜欢的版本控制工具,请在/etc/etckeeper/etckeeper.conf运行 之前选择它etckeeper commit
  3. 您的更改/etc将在包管理任务之前和之后自动提交,每天一次。您可以通过运行etckeeper commit或直接调用底层版本控制工具来手动提交。
  4. 现在是尝试保存旧 VM 的时候了。关闭新 VM,然后将旧 VM 的磁盘添加到新 VM,并启动新 VM。
  5. 尝试安装/dev/sdb2。如果系统提示您运行fsck,请执行此操作。
  6. 从旧的虚拟机中恢复所有可以恢复的内容。
  7. 请记住在备份设置中包含存储库/etc以及您可能在VM 中/usr/local执行的任何操作。/home

答案2

我遇到了类似的事情 - Ubuntu 10.10 主机和 Ubuntu 10.10 客户机。

客户 FS 损坏并导致与上述相同的错误。

通过从 vdi 文件挂载分区并对这些分区运行文件检查,解决了这个问题。

sudo vdfuse -g -f /media/ssdext4/UbuntuGuest.vdi /mnt/

您现在应该能够使用“sudo ls -l /mnt/”列出 vdi 文件中的分区

现在运行 FS 检查 - 使用完整路径。sudo fsck.ext4 /mnt/Partition1

我认为 vdfuse 应该是默认安装的一部分。除非您有 vdfuse,否则我不知道如何解决这些问题。

答案3

虽然不是最复杂的,但可能是最快的方法:将损坏的 VM 中的磁盘映像添加到新安装的 VM 中,从那里挂载它,复制 $HOME、/etc 以及 /var/{lib,db, ...} 中的某些内容(或至少保留一份副本),您应该可以在不到一个小时的时间内恢复正常。

我猜实际问题是由初始 ramdisk 无法正确发现和安装虚拟磁盘设备引起的。因此,如果您设法访问损坏的 VM 文件系统,您还可以尝试以下方法:

mount /dev/sdbroken1 /mnt/brokendisk
for i in dev dev/pts proc sys; do
  mount --bind /$i /mnt/brokendisk/$i
done
chroot /mnt/brokendisk
update-initramfs -u -k all # regenerate initial ramdisk - look for errors
^D
reboot

答案4

我有完全一样的问题;包括实时 iso 的奇怪行为。

事实证明,问题出在 grub 以某种方式被搞砸了 - 可能是由于主机系统进入睡眠状态 [我这样说是因为 Christis Bergeles 描述了与我相同的问题,使用相同的主机(mac osx)在http://christos.bergeles.net/blog/files/tag-grub.html]

将有问题的虚拟 HD 附加到另一个正在运行的 ubuntu VM。

启动到该虚拟机

(接下来的两行假设此虚拟机在 /dev/sdb 处有问题磁盘)

sudo 挂载 /dev/sdb1 /mnt

sudo grub-install --root-directory=/mnt/ /dev/sda

对我有用-针对此问题的两个不同实例。

蒂姆。

相关内容