小弟虽然是Redhat的忠实用户,但对FreeBSD神往已就久。
两个月前第一次装FreeBSD,虽然装上了,但很别扭,装在
第二块硬盘上的Primary partition上,由于Linux是用loadlin
启动(没装LILO),而且FreeBSD带的Boot Manager也没装上,
所以每次要使用FreeBSD,只能把将第二块硬盘设置成第一块,
麻烦!
前几天刚从suzhe(这里就写过suzhe大虾了:))那儿拿到
FreeBSD 3.4 Realease的光盘,在加上机器上的98经常崩溃,
所以打算将那块15G的硬盘重新分区,装上RedHat 6.1、
FreeBSD 3.4 Release、win98,统一用Lilo启动,
linux和FreeBSD共享交换分区。
折腾了一天,终于搞定。小弟在安装前,搜索了一下水母的Linux版
和Freebsd版,发现关于这方面的文章都很简略(至少我觉得),
所以想把自己的体会写出来,以方便后来者。如有不对之出,欢迎
指正。
1. 硬盘分区
由于FreeBSD和Win98都必须装在Primary Partition,所以安装前的分
区策略十分重要.为了能在一个硬盘上分出一个以上的Primary Partition,
我使用Linux的fdisk工具(也可以用Smartfdisk或PQ Magic):使用redhat
6.0的光盘启动,然后进入fdisk界面,重新分区,具体如下:
The 1st Primary Partition:/dev/hda1 前2个G 类型设为FAT32/FAT16
The 2nd Primary Partition:/dev/hda2 接下去的2.5G 类型为Linux native
The 3th Primary Partition:/dev/hda3 接下去的4G 类型为BSD/386
剩余的空间可以都分成Fat32 extend分区.我把剩下的全划给了fat extend,
就是: /dev/hda4
其实除了第一个分区的类型必须为FAT32/FAT16,其它分区的类型
可以随便,后面 还有机会修改。
2.安装阶段
首先在第一个Primary Partition安装win98(这个我就不费口舌了〕,对extend
分区(/dev/hda4)分继续分成及格逻辑分区,单暂且不要使用它,或至少空出一个
逻辑分区来,以用来暂时作为Linux的swap分区。我将它分成两个逻辑分区。
接着安装Linux,在安装Linux过程中要注意两点:
1〕swap分区可以使用/dev/hda4中的空间(这部分空间在装98时并未使用〕
2〕Lilo建议安装于MBR。
安装完Linux,已经可以使用LILO启动linux和98了,但为了使lilo能够启动FreeBSD
须重新编译内核,因为第一次安装时使用的缺省内核不支持ufs(也就是FreeBSD
使用的文件系统〕。在重新配置内核时,必须选中UFS filesystem support和
FreeBSD disklabel support。然后配置lilo.conf,使用新内核。
最后安装FreeBSD。将/dev/wd0s3(即linux中的/dev/hda3〕分配给FreeBSD,
然后安装。(FreeBSD中slice和partition的区别就参看王波先生的大作吧〕
安装过程中注意不要安装FreeBSD的BootManage,在选择第三项none,
以免覆盖了Lilo.如果怕不慎覆盖Lilo,可以事先将新编译的Linux内核拷出来,
一旦Lilo被覆盖,使用Loadlin启动Linux.
3。配置Lilo
安装完FreeBSD后重新进入Linux,然后编辑lilo.conf,加入
以下各行:
other=/dev/hda3 #/dev/hda3:FreeBSD所在分区
table=/dev/hda
label=FreeBSD
然后运行Lilo,使新配置生效。
到此为止,已经完成了3个OS的安装和Lilo对它们的启动管理。
4。Linux与FreeBSD共享交换分区
现在首先看看Linux启动过程中的分区检查信息(以我的安装为例):
hda: hda1 hda2 hda3! hda4 < hda5 hda6 > < hda7 hda8 hda9 hda10 >
然后在Linux下使用fdisk查看分区信息:
Command (m for help): p
Disk /dev/hda: 255 heads, 63 sectors, 1869 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 262 2104483+ b Win95 FAT32
/dev/hda2 263 589 2626627+ 83 Linux
/dev/hda3 * 590 1112 4200997+ a5 BSD/386
/dev/hda4 1113 1869 6080602+ f Win95 Ext'd (LBA)
/dev/hda5 1113 1800 5539386 b Win95 FAT32
/dev/hda6 1801 1869 548294+ 82 Linux swap
比较可知,< hda7 hda8 hda9 hda10 >实际上是/dev/hda3(或者说/dev/wd0s3
slice)中的FreeBSD分区,其中hda7是root分区,hda8是交换分区,hda9和hda10
是其它分区。
Linux与FreeBSD能够共享交换分区建立在以下事实的基础上:
a. Linux能够访问ufs
b.FreeBSD能够使用任何类型的分区作为交换分区。
为了共享FreeBSD的交换分区,首先修改Linux下的/etc/fstab文件,注释掉
原来的与swap分区相关的行,然后添加一行:
/dev/hda8 none swap sw 0 0
接着,由于Linux在自己的交换分区上作了一个标记,该任务由命令mkswap完成。
但在进入到FreeBSD后,FreeBSD会破坏该标记,为此每次启动进入LInux系统,必须
重新执行mkswap。在Red hat中,需要在启动脚本文件 /etc/rc.d/rc.sysinit中紧接
swapon -a命令之前添加如下行:
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
之后,Linux就可以共享FreeBSD的swap分区了。
对于Linux原来的借用extend分区的swap分区,可以使用Linux的fdisk重新划分
extend中逻辑分区的大小,标记分区类型,但不能改变分区数。因为一旦改变了分区
数FreeBSD slice中的分区的编号就变了,swap分区就可能不再是hda8了。其实最稳妥的
解决办法是将临时的swap分区分在第二块硬盘上(如果条件许可的话)。
在Linux的mini howto Linux+FreeBSD还提供了另一种方法,但小弟没试过,哪位
如果试验过,不妨讲讲!
阅读(631) | 评论(0) | 转发(0) |