2009-12-11

我总是奇怪为什么我装完grub2后总是进入rescue模式。但是顺序的执行那些引导指令,都挺正常的,能启动。

今天终于找到原因了。当时装的时候脚本出了点问题,我就把/usr/local/lib/grub/grub-mkconfig_lib里的make_system_path_relative_to_its_root函数改了,无论path是什么,它所在的filesystem的root directory都设置成”/”。

而这个函数是用来计算prefix的,prefix变量的值是要被写入到core.img中的。我也是很偶尔的发现rescue模式下某些命令不能被正确执行是因为prefix变量不对,才想起这个的。

唉,罪过啊罪过。我当时怎么这么干的啊!

顺便,今天,我的U盘终于修好了。我把它装上grub2,终于在实际真实的环境中跑了一下我的os,哈哈!

顺便,我发现格U盘的时候它默认采用的也是gpt格式。但是freebsd的gpart工具的add命令仿佛不能指定任意type,导致我没有办法添加类型为grub boot的分区,所以还是用mbr模式了。但是默认的分区方式在mbr后面只留了63个扇区的位置来装core.img。而我随便加点啥模块,就超过31K了。只好把它格了,重新挪了挪。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥