拡張パーティションにWindows 8.1とKali Linuxをインストールしました。何らかの理由で、Windowsがインストールされ、再インストールされたパーティションのみをフォーマットしました。これでWindowsで起動するだけで、grubは表示されません。
私はライブUSBを使用していて、GRUBを再インストールしようとしました:
grub-install --boot-directory=/mnt/boot /dev/sda
エラーを取得する:
grub-install :command not found
ユーザー_@kirill-a
_から提供された回答に追加して、もう少し具体化するには:
Windows 8を再インストールして以前のGRUBをクリアした後、Windows 8およびDebian 8デュアルブートマシンでGRUBブートローダーを復元するために最近行ったのはこれです。 =ディスクの先頭からのブートローダーエントリ。
REPAIR GRUB2:LinuxでのUSB/CD 'chroot'メソッドのライブ:
これらの手順は、Debianベースのディストリビューションの暗号化されていない非LVMディスクに一般的に適用されます。RHEL/ SUSEベースのディストリビューション、およびおそらくArchベースのディストリビューションで使用されるディレクトリ名とユーティリティに小さな変更が必要です。
選択したディストリビューションの起動可能なLive USBまたはCDから始めます。
lsblk
を使用して、欠落または破損しているGRUBブートローダーのあるブロックデバイスのカーネル名記述子(つまり_/dev/xxyN
_))を特定します。以下のすべてのアクションはrootとして実行されます(su
またはSudo
を使用)。
インストールされているLinuxの一時的なマウントポイントを作成します。
_mkdir -p /mnt/linux
_
(_-p
_オプションは、親ディレクトリが存在しない場合は_/mnt
_を作成します)
以前のlsblk
コマンドの_/dev/xxyN
_を使用:
_mount /dev/xxyN /mnt/linux
_
次のコマンドは、独立した_/boot
_パーティションがある場合にのみ必要です。 _/dev/xxyN
_は、_/boot
_パーティションのカーネル名記述子を表しています。
_mount /dev/xxyN /mnt/linux/boot
_
次に:
_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
_)
GRUBに他の変更やカスタマイズを加えたい場合は、ここで_/etc/default/grub
_ファイルを編集して保存します。
_grub-mkconfig -o /boot/grub/grub.cfg
_
再起動して確認します。
注:GRUB2ブートローダーがLVM LVルートまたは暗号化されたルートボリューム、あるいはその両方を備えたLinuxシステム上にある場合、この手順にはいくつかの追加ステップがあります。ここにメッセージを送ってください。これらの追加の指示を書き留めて、カーネルdm-cryptモジュールで暗号化されたルートボリュームを含むssd上のLVM LVに数回正常に適用しました。
インストールしたシステムに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