使用命令更新/修复/安装 Linux Grub

使用命令更新/修复/安装 Linux Grub

我已经执行了 sudo update-grub 并给出了以下输出 -

Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.0.0-rc1-xia
Found initrd image: /boot/initrd.img-4.0.0-rc1-xia
Found linux image: /boot/vmlinuz-3.13.0-24-generic
Found initrd image: /boot/initrd.img-3.13.0-24-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
done

执行 dpkg --list | grep linux-image 时,输出如下 -

ii  linux-image-3.13.0-24-generic                         3.13.0-24.46                                        amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-4.0.0-rc1-xia                             05                                                  amd64        Linux kernel binary image for version 4.0.0-rc1-xia
ii  linux-image-extra-3.13.0-24-generic                   3.13.0-24.46                                        amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-generic                                   3.13.0.24.28                                        amd64        Generic Linux kernel image

即使存在 kerenl 映像,它也只会启动旧的 linux 映像,而不会显示现有内核的列表。如何在系统启动时获取选项菜单。

编辑 这是我的 grub 文件 -

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

答案1

可能需要更新 GRUB2 配置:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

注意:“make configuration”命令和配置文件位置可能会有所不同。例如,它可能是/boot/efi/EFI/fedora/grub.cfg/boot/efi/EFI/centos/grub.cfg

控制配置的设置文件是:

  • /etc/grub.d(个人,按顺序)
  • /etc/default/grub(一般的)

/etc/grub.d/README

此目录中的所有可执行文件均按 shell 扩展顺序进行处理。

00_*: Reserved for 00_header.
10_*: Native boot entries.
20_*: Third party apps (e.g. memtest86+).

中间的数字命名空间可由系统安装人员和/或管理员配置。例如,您可以添加一个条目来引导另一个操作系统,例如 01_otheros、11_otheros 等,具体取决于您希望它在菜单中占据的位置;然后通过 /etc/default/grub 调整默认设置。

答案2

使用命令更新/修复/安装 Linux Grub


grub2-安装 /dev/sda“ 或者 ”grub 安装 /dev/sda

其中 sda 是您的硬盘驱动器。如果它成功完成命令,则表示已完成,否则尝试通过使用相同的 Linux 操作系统从外部笔式驱动器启动来安装该操作系统目录。然后尝试从链接中执行以下命令http://howtoubuntu.org/how-to-repair-restore-reinstall-grub-2-with-a-ubuntu-live-cd

答案3

对 grub 文件进行以下更改有帮助 (/etc/default/grub)

  1. 注释 GRUB_HIDDEN_TIMEOUT_QUIET=true
  2. 注释 GRUB_TERMINAL=console

答案4

如果你能够在任何基于 Linux 的系统上使用 Live CD,那么你只需运行它就可以 sudo fdisk -l知道你的磁盘的名称以及你在哪里安装了基于 Linux 的系统,比如 Ubuntu 或 Kali。
之后,在我的计算机上的 Live 磁盘上,它被命名为sdb

mount /dev/sda3 /mnt
mount –bind /dev /mnt/dev
mount –bind /dev/pts /mnt/dev/pts
mount –bind /proc /mnt/proc
mount –bind /sys /mnt/sys
chroot /mnt
grub-install /dev/sda
update-grub
exit
umount /mnt/dev/pts
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt

替换sda3为 Linux 安装位置的确切名称。

重新启动后,您将能够在该操作系统中启动,因此登录并执行以下操作:

apt-get install os-prober
os-prober
update-grub

如果是 Windows,一切都会修复

相关内容