![使用命令更新/修复/安装 Linux Grub](https://linux22.com/image/1485358/%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E6%9B%B4%E6%96%B0%2F%E4%BF%AE%E5%A4%8D%2F%E5%AE%89%E8%A3%85%20Linux%20Grub.png)
我已经执行了 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)
- 注释 GRUB_HIDDEN_TIMEOUT_QUIET=true
- 注释 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,一切都会修复