和上一篇文章差不多,只不过方向反了。这回是用FreeBSD 5.3的内核引导银河麒麟操作系统。
需求:
1、一个FreeBSD 5.3的内核。我建议重新编译一个内核,加上Linux兼容等可选模块,这样更贴近麒麟的做法。不过最低要求不需要加很多,只要加上Linux兼容的部分就行,我建议至少加上下面的选项:
options COMPAT_LINUX
options LINPROCFS
device sound
2、一个可以运行的麒麟操作系统,当然如前文所述,需要的是2.0-14/2.0-21版本。
操作步骤:
将新编译的内核随便起一个名,在这个例子中,我将其命名为freebsd_5.3_sl
将这个内核拷贝到麒麟操作系统的 /boot/kernel/ 目录下
reboot 重新启动麒麟操作系统
在GRUB的引导界面移动光标到Kylin上后按e (如果默认就在Kylin上,就直接按e)
将光标移动到第二行,kernel那行,然后按e
删除后面的mute,并按回车。有了mute后,引导就会隐藏一切信息,也不会问你是否加载其他内核。直接加载默认内核了。所以我们需要他给出提示让我们有机会加载其他内核。
回到这个页面后按b,将引导boot loader
在这里需要注意,bootloader会有短暂的10秒钟停顿,如果10秒钟内没有按键,将继续启动了。在这里,我们要赶紧按除了回车以外的任意键,我一般用空格。
出现OK后,输入下面的命令:
unload
load /boot/kernel/freebsd_5.3_sl
boot
好,现在系统开始真正引导了,注意到上面是FreeBSD 5.3-RELEASE了么?:)
这是进入Kylin初始化部分。虽然有些警告,但是我们注意到所有的服务都可以正常启动。
成功的启动了X Window,进入图形界面的登录窗口。
输入口令登录后,开始加载Gnome各个组件
OK, 现在大功告成了,呵呵。看看最上面的控制台里面显示的是FreeBSD 5.3-RELEASE 了。而且因为加载了Linux兼容模块,也可以通过
/proc/version来查看版本了。呵呵。但是我们现在却是在银河麒麟操作系统里。呵呵
至此,应该算是完成了两个操作系统内核的互换。需要注意的是,这个互换仅仅是操作系统内核,不包括任何外围的驱动和内核模块。也就是说,如果这样替换成功的话,意味着两个内核的所有的系统调用无论是功能还是参数格式应该基本一样,并且因为有后期的内核模块儿加载成功,因此,意味着内核结构部分是相同的,不然内核模块挂接的时候就会出错panic了。所有需要掌握的信息都公开在这两个文章中,有愿意尝试的尽管去试试看。呵呵。也许还会有更多的发现:)