博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeBSD下挂载EXT2,FAT32,NTFS文件系统解决方案下挂载EXT2,FAT32,NTFS文件系统解决方案...
阅读量:6423 次
发布时间:2019-06-23

本文共 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,如需转载请自行联系原作者
你可能感兴趣的文章
让script的type属性等于text/html
查看>>
linux 文件系统sysvinit 流程分析
查看>>
体素科技:2018年,算法驱动下的医学影像分析进展
查看>>
Vue 折腾记 - (8) 写一个挺靠谱的多地区选择组件
查看>>
VS Code折腾记 - (3) 多图解VSCode基础功能
查看>>
『翻译』Node.js 调试
查看>>
我的iOS开发之路总结(更新啦~)
查看>>
Java NIO之拥抱Path和Files
查看>>
微信原图泄露的只能是 Exif ,你的隐私不在这!!!
查看>>
微信小程序教学第三章(含视频):小程序中级实战教程:列表篇-页面逻辑处理...
查看>>
页面间通信与数据共享解决方案简析
查看>>
Swift 中 Substrings 与 String
查看>>
作为一个开源软件的作者是一种什么样的感受?
查看>>
移动端适配知识你到底知多少
查看>>
TiDB 在 G7 的实践和未来
查看>>
重新认识javascript对象(三)——原型及原型链
查看>>
小学生学“数学”
查看>>
FastDFS蛋疼的集群和负载均衡(十七)之解决LVS+Keepalived遇到的问题
查看>>
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
查看>>
Android 用于校验集合参数的小封装
查看>>