virtualbox上的Ubuntu 10.04出现错误:目标文件系统没有/ sbin / init \找不到init。 尝试传递init = bootarg

我是一个Linux新手,我安装它的唯一原因是,我可以停止与Ruby on Rails的Windows不兼容问题。 话虽如此,它确实很好,而且速度也很快,我不认为我很快就会做任何Winrails的东西。

所以我使用virtualbox创build了一个虚拟机,并且在过去的三个星期里已经安装了ubuntu。 最近ubuntu问是否可以更新一些东西,我点击“确定”。

现在它不会启动,我得到这个错误:*挂载:挂载/ dev的/ root / dev失败:没有这样的文件或目录mount:挂载/ sys在/根/ sys失败:没有这样的文件或目录…目标文件系统没有/ sbin / init。 找不到init。 尝试传递init = bootarg

BusyBox v1.13.3 …

(initramfs)_ *

所以我滔滔不绝地提出了各种各样的解决scheme,但都是从现场光盘启动。 (我认为这是我用来首先安装ubuntu的ISO映像)。 但是当从光盘启动时,它只会挂在Ubuntu的屏幕上,小圆点不断的骑着白色到红色,但是在那里挂了一个小时,所以我觉得它被卡住了。 不知道我能做什么; 我可以做任何事情从busyboxshell(或不pipe是什么)来解决事情?

事情是,花了大约10个小时,所有的gem和什么都不需要我所需要的一切。 而且我并没有真正写下我调整过的东西,而我是中年人,所有这些信息都已经泄露了,我不想再这样做了。 我真的想修复我现有的安装。

你可能会遇到的一个问题是,ISO有什么问题吗? 我不这么认为,因为我制作了一个新的虚拟机,并使用相同的iso文件来安装新的ubuntu。

任何帮助非常感谢。

菲尔

在bootloader提示符下一切看起来很正常。 所以我担心文件系统已经损坏。

我build议以下过程:

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

我有类似的东西 – Ubuntu 10.10的主机与Ubuntu 10.10的客人。

来宾FS遭到了腐败,导致与上面相同的错误。

这是通过从vdi文件中挂载分区并运行文件检查来解决的。

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

你现在应该可以用“sudo ls -l / mnt /”列出vdi文件中的分区

现在运行FS检查 – 完整的path。 sudo fsck.ext4 / mnt / Partition1

我认为vdfuse应该是默认安装的一部分。 我不明白如何解决这些问题,除非你有vdfuse。

不是最复杂的,但也许是最快捷的方法:从破坏的虚拟机添加磁盘映像到新安装的,从那里挂载它,复制你的$ HOME,/ etc,也许从/ var / {lib,db,.. (或者至less保留一个副本),你应该在不到一个小时的时间内备份​​。

我猜实际的问题是由于初始虚拟硬盘无法正确发现和挂载虚拟磁盘设备而引起的。 所以如果你设法访问破坏的虚拟机的文件系统,你也可以尝试一下:

 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 

也许更新的内核有问题。 尝试启动以前的内核(它应该仍然在)。 当您看到蓝色背景上的虚拟机启动屏幕时,请按住Shift键 。 几秒钟后,将会出现bootloader菜单。

  • 如果有以前的内核版本的条目,请尝试启动它。
  • 否则,请尝试正常input。 向下移动到linux系统,擦除看起来像-2.6.32-24-generic的部分,然后按Tab键来查看其他内核是否存在( /boot/vmlinuz-* )。 还要在下面select一个匹配的initrd
  • 你也可以尝试改变linuxroot=设置。 使用默认安装(VM内没有其他操作系统), root=/dev/sda1应该可以工作。

如果这些都不起作用,但是您可以在途中或需要时看到有趣的错误消息,请将其发布到此处。 根据问题所在,在Grub提示符处input时,可能会看到命令ls /boot的输出。

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

事实certificate,问题在于grub被某种程度的修改 – 可能是主机系统进入睡眠状态(我说,因为Christis Bergeles用同样的主机(mac osx)描述了和我一样的问题, /christos.bergeles.net/blog/files/tag-grub.html]

把你的问题虚拟高清附加到另一个工作的Ubuntu VM。

启动到该虚拟机

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

sudo mount / dev / sdb1 / mnt

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

为我工作 – 在这个问题的两个单独的实例。

蒂姆。