GRUB:在 SSD 上安装后“无效的拱形独立 ELF 魔法”

hle*_*one 10 filesystem partitioning grub2 ssd

我有一台带有 128GB SSD 驱动器的全新笔记本电脑。我读到对齐分区以匹配 SSD 的擦除块大小很重要。我遵循了 William Scott 的指南SSD Tweaks in Linux 和 Aligning Partitions,我的分区最终是:

$ sudo fdisk -lu /dev/sda

Disk /dev/sda: 128.0 GB, 128035676100 bytes
32 heads, 32 sectors/track, 244208 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00037bd2

   Device Boot       Start        End     Blocks   Id  System
/dev/sda1   *         1024     206847     102912   83  Linux
/dev/sda2           206848   16985087    8389120   82  Linux swap / Solaris
/dev/sda3         16985088  250068991  116541952   83  Linux
Run Code Online (Sandbox Code Playgroud)

然后我安装了Ubuntu纳蒂和指定分区手动设置,使/dev/sda1成为/boot分区格式化的ext2,/dev/sda2交换和/dev/sda3/ext4的格式。安装后,东西没有启动,我最终进入了 grub-rescue 控制台,这对我来说没有任何意义。它给了我:

error: invalid arch independent ELF magic.
grub rescue>
Run Code Online (Sandbox Code Playgroud)

我在安装过程中是否犯了一些错误?如何解决 grub-recovery 的问题?

hle*_*one 9

启动到 Live CD 并运行:

sudo mount /dev/sda3 /mnt
sudo mount /dev/sda1 /mnt/boot
sudo grub-install --root-directory=/mnt /dev/sda
Run Code Online (Sandbox Code Playgroud)

  • 对于 EFI 机器,您需要在 live-CD 中启动时安装 grub-efi,否则您会遇到一些令人费解的错误。 (3认同)