FreeBSD下挂载EXT2,FAT32,NTFS文件系统解决方案下挂载EXT2,FAT32,NTFS文件系统解决方案...
本文共 2489 字,大约阅读时间需要 8 分钟。
系统平台: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,如需转载请自行联系原作者