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

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

我最近使用 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 无法启动。

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

答案1

  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

答案2

临时修复 - 将 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

完成更改后,更新初始 ramdisk:

sudo update-initramfs -u

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

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

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

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

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

相关内容