Chinaunix首页 | 论坛 | 博客
  • 博客访问: 48023
  • 博文数量: 15
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-14 17:22
文章分类
文章存档

2013年(1)

2011年(1)

2010年(1)

2009年(7)

2008年(5)

我的朋友

分类: BSD

2009-04-08 11:30:00

系统平台:Windows XP+Redhat Linux 8.0+FreeBSD 4.7 stable硬盘分区情况:
表1
  “Device Boot Start End Blocks Id System
  /dev/hda1 * 1 791 6353676 b Win95 FAT32
  /dev/hda2 792 4020 25936942+ f Win95 Ext’d (LBA)
  /dev/hda3 4021 5005 7912012+ a5 FreeBSD
  /dev/hda5 792 1582 6353676 b Win95 NTFS
  /dev/hda6 1583 2373 6353676 b Win95 FAT32
  /dev/hda7 2374 2386 104391 83 Linux
  /dev/hda8 2387 3176 6345643+ 83 Linux
  /dev/hda9 3177 3242 530113+ 82 Linux swap
  /dev/hda10 3243 4020 6249253+ 83 Linux
操作功略:
一,首先要弄清楚FreeBSD里的硬盘分区表示规则与linux里的规则不同,比如我的硬盘分区情况,下面是FreeBSD和linux下的分区标志对照表:
表2:
  分 区          linux里的标识  FreeBSD里的标识
—————————————————————————
第一个主分区     hda1 ad0s1
扩展分区        hda2 ad0s2
第一个逻辑分区   hda5 ad0s5
第二个逻辑分区   hda6 ad0s6
第三个逻辑分区(linux /boot) hda7 ad0s7
第四个逻辑分区(linux /usr) hda8 ad0s8
第五个逻辑分区(linux swap) hda9 ad0s9
第六个逻辑分区(linux /) hda10 ad0s10
第二个主分区(FreeBSD) hda3 ad0s3
  FreeBSD / ad0s3a
  FreeBSD swamp ad0s3b
  FreeBSD /var ad0s3e
  FreeBSD /tmp ad0s3f
  FreeBSD /usr ad0s3g
现在知道了分区对应的标识方法之后,我们就开始操练啦!
二,编译FreeBSD内核加入对NTFS和Linux
ext2fs的支持.FreeBSD内核默认情况下只支持FAT文件系统,但不支持NTFS和Linux
ext2格式的文件系统的.我们来重新编译内核以让其支持.编译内核?很麻烦吗?哈哈!在FreeBSD下编译内核比起linux来说要简单的多,而且不
必担心编译后无法启动的问题,可以很方便的恢复.
在/usr/src/sys/i386/conf目录下,可以看到一系列内核配置文件的样例.目录中最重要的文件有GENERIC和LINT,名为
GENERIC的文件就是通用内核kernel.GENERIC的配置文件,而LINT文件中包括FreeBSD支持的几乎所有配置参数,并逐一加以解
释.要重新编译内核,就必须要生成配置文件但直接修改已有的配置文件并不可取,我们可以先复制一个或多个新的配置文件,这样就可以编译几种内核.操作如
下:
# cd /usr/src/sys/i386/conf
# cp GENERIC mykernel
然后我们就可以修改mykernel这个配置文件了.在里面加入以下两行:
options NTFS #NT Filesystem
options EXT2FS #Linux ext2 Filesystem
然后保存修改,好啦!现在我们开始编译吧:
分别输入:
# /usr/sbin/config mykernel
Removing old directory ../../compile/mykernel: Done.
Kernel build directory is ../../compile/mykernel
这个命令将产生一个/usr/src/sys/compile/mykernel的目录,其中目录名对应于内核的名字.
如果这个过程出现错误,就说明配置文件中存在语法错误,config程序将会提示出错的行,以便使用者进行修改。但是config不会发现配置文件中存在的逻辑错误,这些逻辑错误只能在编译内核时才能发现。
下一步就是进入生成的目录中进行编译和安装。
# cd ../../compile/mykernel
# make depend
# make
编译过程需要一些时间以进行编译,这时候就可以作些其他任务等待编译结束。
内核编译成功之后,就可以进行安装了:
# make install
这将原有内核更改为/kernel.old,然后将编译后产生的新内核移到根目录下,命名为/kernel。此后可以重起系统,检查新内核是否正确。
# reboot
现在我们就可以mount NTFS和linux ext2的文件系统了.
三,挂载NTFS,Linux ext2文件系统.
参照我上面的硬盘分区情况,我打算挂载hda1,hda5和hda10,分别对应着C盘D盘和linux的根分区.仔细对照表2,找出FreeBSD下的硬盘分区标识.
首先创建挂载点:
# mkdir /mnt/fat32
# mkdir /mnt/ntfs
# mkdir /mnt/linuxroot
然后分别挂载:
# mount -t msdos -r /dev/ad0s1 /mnt/fat32
# mount -t ntfs -r /dev/ad0s5 /mnt/ntfs
$ mount -t ext2fs -r /dev/ad0s10 /mnt/linuxroot
其中-r同-o rdonly的意义相同,表示只读.
好啦!大功告成!

阅读(872) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~