Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2094074
  • 博文数量: 454
  • 博客积分: 10921
  • 博客等级: 上将
  • 技术积分: 5396
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-15 15:20
个人简介

伪IT男

文章分类

全部博文(454)

文章存档

2016年(2)

2013年(6)

2012年(17)

2011年(29)

2010年(24)

2009年(54)

2008年(53)

2007年(202)

2006年(67)

分类:

2007-01-05 16:58:56

小弟虽然是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) |
给主人留下些什么吧!~~