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

use*_*877 31 grub2 wubi system-installation 14.04

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

Serious errors were found while checking the disk drive for /. 
Run Code Online (Sandbox Code Playgroud)

有三个选项:

press [I] to ignore, press [S] to skip mounting and press [M] to mount manually. 
Run Code Online (Sandbox Code Playgroud)

按下 后I,它显示/tmp无法安装并且我的 Ubuntu 无法启动。

  • 有人可以指导我如何解决这个问题吗?

小智 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
Run Code Online (Sandbox Code Playgroud)

linux   /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk rw   quiet splash $vt_handoff
Run Code Online (Sandbox Code Playgroud)

F10,您可以在 Ubuntu 14.04 中启动。

你可以修复 GRUB2 启动项:

sudo vi /etc/grub.d/10_lupin
Run Code Online (Sandbox Code Playgroud)

更改行:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} ro ${args}
Run Code Online (Sandbox Code Playgroud)

到:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} rw ${args}
Run Code Online (Sandbox Code Playgroud)

重新生成 GRUB2 引导项:

sudo update-grub
Run Code Online (Sandbox Code Playgroud)


bcb*_*cbc 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
Run Code Online (Sandbox Code Playgroud)

进行更改后,更新初始 ramdisk:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

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

注意:显然,如果您在应用此修复程序时犯了一些错别字,则可能会阻止您的安装启动。所以请谨慎行事。如果不确定,请使用更简单的 Grub 覆盖。确保loopdev=在行中使用了 `quote,而不是 ' 。

如果您尝试此操作并遇到问题,您可以尝试以下几种方法:

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

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

  • 引用使徒行传 8:8 - 所以那个城市有很多欢乐......那天晚上在 Tourloupis 家里也是如此......!感谢您的帮助 bcbc。解决了我的问题。毕竟一定是打字错误!请注意,我必须将该部分代码复制并粘贴到 /usr/share/initramfs-tools/script/local 的最新副本中,因为它在我发表原始评论后已被修改。否则,它就像一个魅力!也就是说,在我将 /etc/grub.d/10_lupin 的受影响行改回只读之后。再次感谢您的帮助! (3认同)