我正在虚拟机中尝试 Arch Linux,我正在安装 grub 引导加载程序。
当我尝试将 grub 安装到“ /dev/sda1
”时,它显示以下内容:
Installing for i386-pc platform.
grub-install: warning: File system ‘ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
注意:我正在使用ext4
,而不是ext2
注意:我尝试使用grub-install --force /dev/sda1
,它显示了相同的错误,并在最后显示了一条假成功消息,就像如果它显示错误,它如何可能没有错误,我想它不会工作。我不想冒险尝试重新启动并查看。
我应该怎么办?
答案1
编辑:我加入了一个Linux不和谐服务器并询问了它,他们说我应该写“/dev/sda”而不是“/dev/sda1”
答案2
该错误的原因是因为您可能启动进入分割已转换为磁盘的映像,而不是磁盘图像;确认这一点的一个简单方法是在启动(使用超级 grub2 磁盘)后运行 lsblk 并查看是否得到以下信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 5G 0 disk /
您会注意到磁盘本身是安装点,而不是以下预期的磁盘和分区树:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 5G 0 disk
└─sda1 8:1 0 5G 0 part /
如果您使用 gnome-disks (gnome-disk-utility) 之类的工具来创建磁盘映像,请使用:
VBoxManage convertfromraw yourdisk.img newvirtualdisk.vdi --format VDI
如果引导加载程序存在于原始磁盘上,这样做也会复制引导加载程序,否则现在您将能够使用超级 grub2 磁盘引导,然后运行 sudo grub-install /dev/sda ,没有任何问题!