关于将 grub 安装到特定分区

关于将 grub 安装到特定分区

我有一块硬盘,上面有一些 Windows 分区(NTFS),1 个 Linux 分区,1 个 Linux 交换分区。最近,我试用了 Norton Partition Magic Pro 8.05(附带 Hiren Boot CD)。它建议我安装 ExtendedX。我选择 [修复],然后砰的一声,重启后,我的 grub 损坏了(真是神奇!!!)。

fdisk -l当我使用 Ubuntu Live CD 启动时,我的计算机上的结果如下:

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x4ffe4ffd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2615    21004956    7  HPFS/NTFS
/dev/sda2            2616       14593    96213285    f  W95 Ext'd (LBA)
/dev/sda5            2616        4619    16097098+   7  HPFS/NTFS
/dev/sda6            4620       11459    54942268+   7  HPFS/NTFS
/dev/sda7           11460       11982     4200966    7  HPFS/NTFS
/dev/sda8           11983       14344    18972733+  83  Linux
/dev/sda9           14345       14593     2000061   82  Linux swap / Solaris

我在这里找到并关注了一篇文章: http://gadgetmix.com/index/how-to-restrore-grub-bootloader-in-ubuntu-9-10-standard-and-netbook-remix/

但是在我的计算机上,当我尝试grub-install --root-directory=/mnt /dev/sda8(这是我的 ubuntu 主分区)时,终端返回错误:

root@ubuntu:~# grub-install --root-directory=/mnt /dev/sda8
grub-probe: error: Cannot find a GRUB drive for /dev/sda8.  Check your device.map.

Auto-detection of a filesystem module failed.
Please specify the module with the option `--modules' explicitly.

那是什么错误?我该如何修复它?谢谢。

答案1

尝试这个:

chroot /mnt bash
mount -a
update-grub
grub-install /dev/sda8 # <- are you sure about this? (see below)
unmount -a
exit

关于将 grub 安装到特定分区

如果你这样做,你的引导加载程序需要知道该分区有一些有趣的东西。微软的引导加载程序是通过编辑来配置的c:\boot.ini。你可以先将引导加载程序复制到一个文件中:

dd if=/dev/sda8 of=grub.bin bs=512 count=1

然后保存grub.binc:\grub.bin然后添加类似这样的内容到您的c:\boot.ini

c:\grub.bin="Linux (GRUB)"

如果你对此一无所知,那就别费心了。请阅读下一节。

关于将 grub 安装到主引导记录

蛴螬更好的引导加载程序。将其放入主引导记录中可让您使用来启动 Windows,而不是相反。

继续之前,请在运行后检查 grub 配置文件,update-grub以确保它“了解”Windows:

cat /boot/grub/grub.cfg # used for grub2 users
cat /boot/grub/menu.lst # used for grub1 users

无论您使用什么,请查找指示有关 Windows 和您的(hd0,0)设备的行。当您满意时,只需像以前一样 chroot 然后:

grub-install /dev/sda # <- note this installs to the "master boot record"

重新启动后,Grub 将启动,您可以选择 Windows。如果您的boot.ini文件中存在用于启动 Linux/Grub 的条目,您现在可以删除它们。

这种方法的唯一缺点是 Microsoft Windows可能删除 grub 作为系统更新的一部分,或一般无能。使用 ubuntu 磁盘并简单地重新运行update-grubgrub-install可能比处理更容易grub.bin

答案2

随着操作方法统计数据的变化

grub-install --root-directory=/mnt /dev/sda8

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

相关内容