您尚未登录。

#1 2014-03-10 21:49:35

yhylord
会员
注册时间: 2013-11-16
帖子: 84

【已解决】GRUB2 core.img is unusually large

# grub-install --recheck /dev/sda
grub-install: warning: your core.img is unusually large. It won't fit in the embedding area.
grub-install: error: file system 'btrfs' doesn't support blocklists.

我的第一个分区在63开始,好像这种情况是因为4k没有对齐什么的。
linux下有命令行工具可以无损4k对齐么?

最近编辑记录 yhylord (2014-03-11 22:21:33)

离线

#2 2014-03-11 00:12:57

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,469
个人网站

Re: 【已解决】GRUB2 core.img is unusually large

不是对齐的原因。grub 2 需要将一个生成的 core.img 文件放入分区前边的空隙。一般这个空隙会有两 M 左右大,所以能放下很多东西。但是你的分区应该是 Windows / DOS 分的,这个空隙只有 63 个扇区也就是30多K,而 btrfs.mod 这个 grub 模块就有 14K(相比之下,ext 系列的 ext2.mod 只有 5.5K),加上其它一些需要的模块就超过了一点。

建议的办法:

1. 使用 gparted 之类的工具移动分区;
2. 将 /boot 放到支持 blocklists 的文件系统上(比如 ext4),然后使用 blocklists 的方法让 grub 直接去读取特定的扇区来加载需要的代码。这种方案要求 core.img 文件在磁盘上的位置不能变化。

离线

#3 2014-03-11 06:23:13

yhylord
会员
注册时间: 2013-11-16
帖子: 84

Re: 【已解决】GRUB2 core.img is unusually large

百合仙子 说:

不是对齐的原因。grub 2 需要将一个生成的 core.img 文件放入分区前边的空隙。一般这个空隙会有两 M 左右大,所以能放下很多东西。但是你的分区应该是 Windows / DOS 分的,这个空隙只有 63 个扇区也就是30多K,而 btrfs.mod 这个 grub 模块就有 14K(相比之下,ext 系列的 ext2.mod 只有 5.5K),加上其它一些需要的模块就超过了一点。

建议的办法:

1. 使用 gparted 之类的工具移动分区;
2. 将 /boot 放到支持 blocklists 的文件系统上(比如 ext4),然后使用 blocklists 的方法让 grub 直接去读取特定的扇区来加载需要的代码。这种方案要求 core.img 文件在磁盘上的位置不能变化。

只要移动第一个分区的开头就可以了吗?

离线

#4 2014-03-11 11:20:10

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,469
个人网站

Re: 【已解决】GRUB2 core.img is unusually large

yhylord 说:
百合仙子 说:

不是对齐的原因。grub 2 需要将一个生成的 core.img 文件放入分区前边的空隙。一般这个空隙会有两 M 左右大,所以能放下很多东西。但是你的分区应该是 Windows / DOS 分的,这个空隙只有 63 个扇区也就是30多K,而 btrfs.mod 这个 grub 模块就有 14K(相比之下,ext 系列的 ext2.mod 只有 5.5K),加上其它一些需要的模块就超过了一点。

建议的办法:

1. 使用 gparted 之类的工具移动分区;
2. 将 /boot 放到支持 blocklists 的文件系统上(比如 ext4),然后使用 blocklists 的方法让 grub 直接去读取特定的扇区来加载需要的代码。这种方案要求 core.img 文件在磁盘上的位置不能变化。

只要移动第一个分区的开头就可以了吗?

是的。

离线

页脚