Linux 版 (精华区)

发信人: wf (吴非), 信区: Linux
标  题:  Lilo+Linux+FreeBSD+Win98实战(common swap)(转)
发信站: 紫 丁 香 (Tue Jan 25 18:40:08 2000), 转信

发信站: BBS 水木清华站 (Tue Jan 25 09:53:15 2000)
 
   小弟虽然是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还提供了另一种方法,但小弟没试过,哪位  
如果试验过,不妨讲讲!    
             
--

快乐

不得了
!!!
8-)

※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: pactunix.hit.edu]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.456毫秒