页次: 1
# 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)
离线
不是对齐的原因。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 文件在磁盘上的位置不能变化。
离线
不是对齐的原因。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 文件在磁盘上的位置不能变化。
只要移动第一个分区的开头就可以了吗?
离线
百合仙子 说:不是对齐的原因。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 文件在磁盘上的位置不能变化。只要移动第一个分区的开头就可以了吗?
是的。
离线
页次: 1