FreeBSD下挂载EXT2,FAT32,NTFS文件系统解决方案下挂载EXT2,FAT32,NTFS文件系统解决方案

系统平台: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的意义相同,表示只读.
好啦!大功告成!









本文转自 mcshell 51CTO博客,原文链接:http://blog.51cto.com/mcshell/210491,如需转载请自行联系原作者

上一篇:使用Angular CLI创建一个Hello World级别的Angular应用


下一篇:php文库系统解决方案