无法加载文件,无法启动

我是Ubuntu的新用户,对计算机知之甚少。 我现在已经使用Ubuntu大约3个星期了,一切都很好,但我今天收到了这条消息:

microcode: failed to load file amd-ucode/microcode_amd.bin 

它现在不会启动通过此屏幕。 我目前正在使用旧笔记本电脑提出这个问题。 有任何想法吗?

系统正在寻找amd64-microcode包。 这是系统上硬件所需的固件。 Ubuntu可以很好地检测您的硬件,并且在大多数情况下安装所需的硬件,但这并非万无一失。

如果你已经使用该系统3周并且这个问题刚刚开始,那么很可能内核最近更新了,新内核必须有这个包。 软件更新安装了新内核。 您可能没有意识到安装了新内核。

新安装的内核总是有可能破坏某些东西。 发生这种情况时,您可以从较旧的内核启动,直到找到所需内容为止。 在这种情况下,看起来系统需要您手动安装该包,这很容易。

首先尝试从旧内核启动

启动菜单由Grub2处理。 安装新内核后,它会将新内核作为首选,并将所有旧版kenrels隐藏在菜单项“Ubuntu的高级选项”之后。

如果Ubuntu是计算机上唯一的操作系统,则默认情况下您可能看不到Grub2菜单。 要查看它,请在系统引导时按住Shift键

当您看到Grub2菜单时,使用 (向下箭头键)向下移动到高级选项,然后按Enter键 。 您将看到一个带有旧内核的一个或多个引导选项。 选择一个,你应该启动好。

安装包

在软件中心中很难找到技术包。 最简单的方法是使用终端。

Ctrl + Alt + t将打开一个终端。 复制和粘贴:

 sudo apt-get install amd64-microcode 

恢复模式

如果由于某种原因您没有看到其他内核选项或仍然无法启动,您应该在高级选项选项中看到以(恢复模式)结束的选项 。 选择这个。 开始运行后,您将看到一个包含各种恢复选项的对话框。

首先尝试恢复 。 这可能允许您在没有问题的情况下启动。 如果这样做,请从命令行安装软件包,如上所示。 务必在事后重启。

如果仍然无法启动,请再次尝试,这次从恢复对话框中选择Root 。 这将使您进入root的命令行。 您将能够安装该软件包,但在以root身份工作时要小心 。 务必在事后重启。

chroot环境

如果以上都不起作用,您可以使用live cd中的chroot安装软件包。 chroot的一个用途是将根环境从LiveCD更改为您需要定位的已安装系统硬盘驱动器。 (这通常在硬盘驱动器上,但可能在USB或其他地方。)简而言之,您正在使用Live介质来启动一个无法启动的损坏系统。 这有点复杂但并不难。

1)从用于安装Ubuntu的LiveCD / USB启动(或者至少确保实时媒体和已安装的系统具有相同的架构 – 32位或64位)。 使用Try Ubuntu。

2)打开终端。

3)挂载你的Ubuntu根分区: sudo mount /dev/sdXY /mnt

X是分区字母,Y是分区号。

如果你遵循标准的“替换Windows”,我相信你将/ dev / sda1作为你的根分区。

如果您不确定,以下命令可能会帮助您解决问题。

 sudo fdisk -l sudo blkid 

如果您真的被困在这部分,您可能需要寻求更多帮助。

我们假设root在/ dev / sda1上

 sudo mount /dev/sda1 /mnt 

4)然后,您需要安装文件系统的各个部分。 重新安装GRub2的Ubuntu社区页面有一个很好的单一命令来处理这个问题。

 for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done 

5) Chroot进入已安装的系统

 sudo chroot /mnt 

6)安装包装。

 apt-get install amd64-microcode 

您将处于根提示符,因此您不需要sudo 。 一如既往,请在安装完成后立即小心并重新启动。

  1. 正常启动你的Ubuntu
  2. 当您看到登录屏幕时,请尝试按Ctrl – Alt – F1
  3. 在我的情况下(ubuntu 12.10),出现一个空白屏幕。 不要惊慌,尝试Ctrl – Alt – F2
  4. 登录控制台显示并要求您使用您的ID和密码登录。 登录后。 运行这些命令。
    sudo apt-get update
    sudo apt-get upgrade
  5. 然后重新启动计算机
    sudo reboot

然后尝试再次登录。

如果它不起作用,您可能需要使用上面相同的过程手动安装amd包,但使用install命令
sudo apt-get install your_package_name