再会。
我在尝试让 Ubuntu 在三星 3 系列笔记本电脑上启动时遇到了很大困难。Ubuntu 已安装(并且是唯一的操作系统),但无法启动。
我尝试了常见的提示并最终得出结论,我的固件可能存在问题,我无法解决。
到目前为止的故事是这样的:
- 启动修复抱怨 GPT。通过阅读这个论坛,我得出结论,因为我想使用 UEFI,所以这个选项不适用于我。但是,这是日志:
启动修复信息http://paste.ubuntu.com/11842457/
尝试手动添加 EFI 条目。没有成功。重启后条目消失
阅读 Roderick Smith 关于使用他的 rEFInd 手动创建 EFI 条目的建议。我制作了一个可启动的 USB,启动到 shell 中,在映射表中它只显示了一个文件系统 fs0,也就是 USB 本身。没有 HDD,所以我无法创建 EFI,因为坦率地说,shimx64.efi不存在。真令人失望。这到底是怎么回事?
我花了好几天才弄清楚该怎么做。我真的缺少一个简单易懂的指南来指导如何让 Ubuntu 正常工作。
更新
EFI 分区应包含一个/EFI/ubuntu
具有四个文件的目录grub.cfg, grubx64.efi, MokManager.efi
:shimx64.efi
我该如何检查?我已经安装了 EFI 分区并ls
对其进行了检查。它是空的。
按照 Rod 的建议,dmesg
结果是这里
我想,我需要说一下,这台笔记本电脑预装了 Windows 8,因此固件可能已以特定方式配置。在旧硬盘坏掉并换成新硬盘后,我决定安装 Ubuntu。
通过 修复后gdisk
,Ubuntu 终于出现在 中rEFInd
。我看到 shell 中列出了除 USB 磁盘之外的文件系统。但是,我无法确定ls
fs1
哪个是 EFI 分区,即使它在 shell 启动时显示出来。我也找不到shimx64.efi
任何地方。尝试从 中可用的选项启动 Ubuntu rEFInd
。有两个选项:
vmlinuz-3.16.0-43-generic
导致unable to mount root fs on unknown block(0,0)
vmlinuz-3.16.0-43-generic.efi.signed
结果相同
尝试创建 EFI 条目bcfg boot add 4 fs1:\EFI\ubuntu\shimx64.efi "Ubuntu"
显然失败。fs1
是我的 EFI 分区。
需要注意的另一件坏事是:内核失败后可用分区列表为空。
如果我用 移除 USB rEFInd
,仍然没有启动设备。
这是启动信息:http://paste.ubuntu.com/11850314/
谢谢您的回答。特别是 Rod Smith。
答案1
我遇到了同样的问题,你必须从终端执行以下操作:
sudo apt-get install linux-amd64_ linux-efi
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -f
sudo apt-get install aptitude
sudo aptitude linux-efi
这样也许能很好地发挥作用。
答案2
所以我怀疑 EFI 分区是空的并非毫无道理。Ubuntu 尚未完全安装,因为笔记本电脑因过热而死机。我重新安装了它,现在它似乎正在启动。
答案3
根据您的配置,rEFInd 和 EFI shell 应该会显示 ESP 和 Linux 分区。(这假设 rEFInd USB 驱动器配置了 ext4fs 驱动程序,我分发的 rEFInd USB 映像就是这个驱动程序。)因此,我怀疑您的硬盘出了问题。尝试在 Ubuntu 紧急磁盘中sudo sgdisk -v /dev/sda
(更改/dev/sda
为您的硬盘标识符)。这将测试分区表是否有错误。如果您发现任何错误,请报告或阅读我的有关修复 GPT 磁盘的 GPT fdisk 文档。
如果没有 GPT 问题,请尝试dmesg > dmesg.txt
从紧急磁盘并将输出发布到一个 pastebin 网站。该输出可能提供有关为什么磁盘对固件不可见的线索。
编辑:在我看来,rEFInd 似乎找不到与您的内核匹配的初始 RAM 磁盘 (initrd)。请明确一点,您是从 rEFInd 还是从 EFI shell 启动这些内核?我之所以问这个问题,是因为您提供的两个文件名(vmlinuz-3.16.0-43-generic
和vmlinuz-3.16.0-43-generic.efi.signed
)除了.efi.signed
扩展名之外完全相同,并且 rEFInd 包含仅保留.efi.signed
内核(如果两者都存在)的代码,因此两者都出现在 rEFInd 菜单中很奇怪。(另一方面,如果您输入错误并且内核的版本号不同,那么有两个内核(一个带有扩展名,一个没有扩展名)也是完全可以理解的。)
您可以使用实时 Ubuntu 磁盘查找 initrd 文件,并initrd=
在启动内核时按两次 F2 或 Insert 来检查 rEFInd 传递给内核的选项(如果有)。此过程将打开一个文本编辑器,其中显示传递给内核的选项,并且还允许您编辑这些选项。
不过,此时重新安装 Ubuntu 可能更容易。如果我没有理解错的话,这是一个全新安装,因此您在系统上没有有价值的用户数据。由于活动的 0xEE 保护分区现在处于非活动状态,全新安装可能会纠正您遇到的任何其他问题。