错误消息后,Ubuntu 14.04无法启动。/ tmp无法挂载


31

我最近使用WUBI安装了Ubuntu 14.04,安装后在启动时显示错误:

Serious errors were found while checking the disk drive for /. 

有三种选择:

press [I] to ignore, press [S] to skip mounting and press [M] to mount manually. 

当我按下时I,它表明/tmp无法挂载并且我的Ubuntu无法启动。

  • 谁能指导我解决这个问题?

@pandya我已经看到aleeady链接了,但是答案似乎并没有帮助我解决问题
user272877 2014年

我想通过wubi进行安装,因为这样我可以随时随地删除ubuntu,而不会遇到任何麻烦。您能指导我解决问题的方法

我用上面的,它很好用。但是,当我尝试编辑GRUB2引导项时;它将恢复为原始状态(即使保存后也是如此)。我使用了以下命令:sudo gedit /etc/grub.d/10_lupin我能够对其进行编辑并保存(将ro更改为rw)。但是,重新启动后,它会还原为原始启动项。我如何使其永久化?非常感谢,

圣牛,为什么会这样呢?
德克2014年

Answers:


43
  1. 在Windows引导管理器中,选择Ubuntu。
  2. 按任意键,然后进入GNU Grub2菜单。
  3. 您可以按“ e”编辑GRUB2引导项。

您需要将GRUB2引导项从“ ro”更改为“ rw”,

例如

linux   /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk ro   quiet splash $vt_handoff

linux   /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk rw   quiet splash $vt_handoff

F10,可以在Ubuntu 14.04中启动。

您可以修复GRUB2引导项:

sudo vi /etc/grub.d/10_lupin

更改行:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} ro ${args}

至:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} rw ${args}

重新生成GRUB2引导项:

sudo update-grub

好的,谢谢您的帮助,但是最后一个问题,因为我无法启动到ubuntu,如何在不启动ubuntu的情况下更改grub文件
user272877 2014年

1.在Windows启动管理器中,选择Ubuntu。2.按任意键进入GUN Grub2菜单。3.您可以在启动前按“ e”编辑命令。
user273948

从Windows启动管理器中选择“ Ubuntu”后,按住Shift键,应出现Grub菜单。
gfour

非常感谢,我的ubuntu终于启动了!感谢大家
user272877 2014年

我用这个答案解决了这个问题,但是现在当我重新启动或关闭计算机时,在启动选项中选择了ubuntu之后,屏幕变黑并且从不启动。我手动重新启动,然后在启动选项中选择ubuntu,在菜单中按e然后按F10,它可以正常加载,始终必须按e-> F10才能加载ubuntu。有什么建议么?
Duver 2014年

6

临时修复-将root.disk的初始安装覆盖为rw(读/写)而不是ro(只读)是好的。这是在14.04安装(或升级)后引导Wubi的唯一方法。

但是,与永久修改安装架以进行读取/写入相比,有更好的长期修复方法。最好修改循环设备的创建方式,以允许以读写方式重新安装。然后,这将允许您使用恢复模式。

/usr/share/initramfs-tools/script/local如下所示修改文件(删除一行,添加三行):

--- /home/bcbc/local   2014-11-19 20:25:12.274837304 -0800
+++ /usr/share/initramfs-tools/scripts/local   2014-11-19 20:28:37.990832807 -0800
@@ -143,7 +143,9 @@
        modprobe ${FSTYPE}

        # FIXME This has no error checking
-       mount ${roflag} -o loop -t ${FSTYPE} ${LOOPFLAGS} "/host/${LOOP#/}" ${rootmnt}
+       loopdev=`losetup -f`
+       losetup ${loopdev} "/host/${LOOP#/}"
+       mount ${roflag} -t ${FSTYPE} ${LOOPFLAGS} ${loopdev} ${rootmnt}        

        if [ -d ${rootmnt}/host ]; then
            mount -o move /host ${rootmnt}/host

进行更改后,更新初始虚拟磁盘:

sudo update-initramfs -u

有关其他信息和修复信息,请参见:https : //code.launchpad.net/~noorez-kassam/ubuntu/utopic/initramfs-tools/fix-for-1317437/+merge/219927

注意:显然,如果您在应用此修复程序时进行了一些打错,可能会阻止安装启动。因此,请谨慎操作。如果不确定,请使用更简单的Grub覆盖。确保您loopdev=在行中使用`引号,而不是' 。

如果尝试这种方法并遇到问题,可以尝试以下几种方法:

  1. 如果您有多个内核,请转到“恢复”菜单,然后选择一个较旧的内核(具有自己的initramfs)。
  2. 您可以备份initramfs在更新之前),然后将其从实时DVD / USB复制到损坏的磁盘上。
  3. 您可以在initramfs中重建chroot,但这有点麻烦。

如果是全新安装,那么重新安装是您的最佳选择。


像您一样,我正在尝试找到一个更好的长期解决方案。尝试了您的方法,并导致重新启动时出现很多错误,其中一些错误表明文件丢失,例如/ etc / fstab。可能是我打错了字,但是,“ losetup”是否找到了与预期不同的第一个未使用的环路设备?我应该改用/ dev / loop0吗?目前,我已经应用了更简单的Grub覆盖。
比尔

@Bill我猜那里有错字。如果您粘贴代码并发布链接,我会看一下。
bcbc

谢谢bcbc,不幸的是,由于我最终卸载并重新安装了wubi,因此无法粘贴原始代码。但是,我要做的是将我打算用来重新创建initramfs的当前代码粘贴到bin中。这是链接:pastebin.com/bRKc9fdL
Bill

@比尔看起来不错。
bcbc 2014年

3
引用使徒行传8:8-所以那个城市有很多欢乐。感谢您的帮助。解决了我的问题。毕竟一定是错字!请注意,我不得不将那部分代码复制并粘贴到/ usr / share / initramfs-tools / script / local的最新副本中,因为自从我发表原始评论以来就对其进行了修改。否则,它就像一个魅力!也就是说,在我将受影响的/etc/grub.d/10_lupin行改回只读后。再次感谢您的帮助!
比尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.