grub-install:找不到命令

grub-install:找不到命令

我在扩展分区中安装了 Windows 8.1 和 Kali Linux。由于某种原因,我只格式化了安装Windows的分区并重新安装。现在它只能启动到Windows 并且不显示grub。

我正在使用实时 USB 并尝试重新安装 grub:

grub-install --boot-directory=/mnt/boot /dev/sda

并得到错误:

grub-install :command not found

答案1

添加到用户提供的答案@kirill-a并进一步充实它:

以下是我最近在 Windows 8 和 Debian 8 双引导计算机上恢复 GRUB 引导加载程序所做的事情,在 Windows 8 重新安装从磁盘开头清除了以前的 GRUB 引导加载程序条目后。

修复 GRUB2:Linux 上的实时 USB/CD 'chroot' 方法:

这些说明通常适用于基于 Debian 的发行版上未加密的非 LVM 磁盘,在基于 RHEL/SUSE 和可能基于 Arch 的发行版下使用的目录名称和实用程序需要进行细微更改。

从您选择的发行版的可启动 Live USB 或 CD 开始。

  1. 用于确定GRUB 引导加载程序丢失或损坏的块设备的lsblk内核名称描述符(即)。/dev/xxyN

以下所有操作均需以 root 身份完成(使用susudo)。

  1. 为已安装的 Linux 创建临时挂载点:

    mkdir -p /mnt/linux
    

    (如果父目录尚不存在,该-p选项将创建父目录)/mnt

  2. 使用/dev/xxyN上一个lsblk命令:

    mount /dev/xxyN /mnt/linux
    
  3. 仅当您有单独的分区时才需要以下命令/boot/dev/xxyN这里代表/boot分区的内核名称描述符。

    mount /dev/xxyN /mnt/linux/boot
    
  4. 然后:

    mount -t proc none /mnt/linux/proc
    mount -t sysfs sys /mnt/linux/sys
    mount -o bind /dev /mnt/linux/dev
    mount -t devpts pts /mnt/linux/dev/pts
    chroot /mnt/linux /bin/bash
    grep -v rootfs /proc/mounts > /etc/mtab
    grub-install /dev/xxy
    

    (此处,dev/xxy= 要安装 GRUB 引导加载程序的设备名称和编号,例如 ,/dev/sda不包括 中的根分区号/dev/sda1

  5. 如果您想对 GRUB 进行任何其他更改/自定义,现在是编辑文件/etc/default/grub并保存的时候了。

    grub-mkconfig -o /boot/grub/grub.cfg
    
  6. 重新启动并验证。

注意:如果 GRUB2 引导加载程序驻留在具有 LVM LV 根和/或加密根卷的 Linux 系统上,则此过程还有几个附加步骤。请随意在这里给我发消息,我已经写下了这些附加说明,并已成功将它们多次应用到 SSD 上的 LVM LV,其中包含使用内核 dm-crypt 模块加密的根卷。

答案2

您需要chroot到已安装的系统并从那里重新安装 grub:

mount /dev/sda(number of partition with kali) /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt bash
grub-install --boot-directory=/mnt/boot /dev/sda
update-grub
exit
reboot 

答案3

我的答案是 forgrub2-installgrub2-mkconfig命令。

command not found我的 Photon OS Linux 机器上也出现错误。

下有配置文件/boot/grub2。所以我认为 grub2 软件包已经安装,但由于某种原因 grub2-* 命令不起作用。

但是发现grub2软件包没有安装。运行以下命令修复了该问题。

yum install grub2 -y

对于grub-install命令,您需要安装grub软件包而不是grub2.

相关内容