分享
 
 
 

FreeBSD分区知识学习及实验备忘录

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

FreeBSD分区知识学习及实验备忘录

作者:顾翠文 EMAIL: win2linux@163.com

版权申明: 仅限非赢利性组织网站,BBS,以及个人博客收藏,用于其他用途前请先和作者联系。

关键字: freeBSD 分区 分区工具

今天对FreeBSD的硬盘分区和存储方式作了一组实验,现在记录下来备案。

首先,由于FreeBSD的分区方式和Linux以及windows的分区方式有很大不同,因此分区和磁盘存储相关的工具的使用也有很大的不同 .为了描述方便,我将FreeBSD中的slice称作主分区,而slice中进一步包含的partition称为逻辑分区。

一,基本概念。

在所有PC体系架构上安装的操作系统都只能分四个分区。这四个分区在不同的操作系统中有不同的说法,在windows和linux中,通常被称为主分区(primary partition),而在BSD风格的UNIX以及Solaris系统中被称为slice (英文原意为小碎片,不知道有没有好的翻译来表述)。slice和主分区是同一个概念,在PC上能安装的操作系统都能根据MBR中的分区表认出这样的主分区。 在windows和linux中,一个硬盘可以分四个主分区,其中一个可作为扩展分区,再在扩展分区中划分逻辑分区,而其他三个主分区则只能作为最小的分区单位了。就是说,只能选择一个扩展分区,然后再在扩展分区中划分逻辑分区。扩展分区中包含的逻辑分区数目可以有很多个,查了资料,一种说法是最多64个,还没有具体验证过,不过反正这个数目比较大,可把硬盘分得足够细。

而FreeBSD,则可以在每个slice中再划分更小的分区单位,在FreeBSD中硬盘的slice中,这种更小的分区单位被称为partition,其概念和windows和linux中的逻辑分区的概念类似。这种更小的分区单位用小写字母a-h表示,共有8个,但是其中c分区有特殊含义,c分区表示该分区所在的整个slice(主分区)。就相当于在solaris中/dev/dsk/c0t0d0c2分区一样,在sparc体系的solaris系统中c0t0d0c2表示的是整个磁盘,因为solaris中没有其他表示整个磁盘的设备名称。 从概念上讲FreeBSD中的/dev/ad0s1c 等同于 /dev/ad0s1

因此,在FreeBSD中,一个硬盘最多可划分(8-1)x4 = 28 个分区。原先老的FreeBSD系统中,逻辑分区d也有特殊用途,就是说,在老版本的FreeBSD系统中,每个硬盘最多能分(8-2)X4 = 24 个分区,但是现在这个d分区的特殊用途也已经淡化了,虽然用sysinstall划分逻辑分区的时候sysinstall会尽量避开使用d分区,但是今天经过实验验证,d分区标识也可以作为一个普通的数据存储分区标识。 因此,以IDE硬盘为例在freebsd中第一块硬盘正常情况下可用的分区设备号为:/dev/ad0s1a /dev/ad0s2a /dev/ad0s3a /dev/ad0s4a /dev/ad0s1b /dev/ad0s2b /dev/ad0s3b /dev/ad0s4b /dev/ad0s1d /dev/ad0s2d /dev/ad0s3d /dev/ad0s4d /dev/ad0s1e /dev/ad0s2e /dev/ad0s3e /dev/ad0s4e /dev/ad0s1f /dev/ad0s2f /dev/ad0s3f /dev/ad0s4f /dev/ad0s1g /dev/ad0s2g /dev/ad0s3g /dev/ad0s4g /dev/ad0s1h /dev/ad0s2h /dev/ad0s3h /dev/ad0s4h

二, FreeBSD下分区工具的使用。

在FreeBSD下最方便的分区方法是使用sysinstall提供的菜单选项,根据提示来完成分主分区(slice)和分逻辑分区(partiton)的划分工作。 这个方法比较简单,很容易学会。

今天主要学习了一下命令行工具fdisk 和 disklabel(又名bsdlabel)的使用。

首先,fdisk是用来划分主分区的,也就是用来划分slice,这一点和linux系统有很大的不同 .

一般的使用方法:dd if=/dev/zero of=/dev/ad0 bs=1k count=1 #目的是先清除硬盘上原有的分区表,新硬盘可跳过这步。

fdisk -BI /dev/ad0 #在硬盘/dev/ad0上创建一个主分区(slice)。

看了一下fdisk的man文档,参数B表示在硬盘的MBR中写入一个标准引导记录,I选项表示将整个硬盘划分出一个slice.也就是说,命令行的分区工具fdisk只能在一个硬盘上划分出一个主分区,应该通过-f参数加配置文件可以定义并划分出四个主分区,但是光用fdisk提供的参数,好像只能划分出一个来。这一点上来说,FreeBSD的命令行分区工具做得还不够人性化,还是用sysinstall提供的界面来分区更方便。

disklabel/bsdlabel的使用:

disklabel -B -w /dev/ad0s1 auto disklabel -e /dev/ad0s1

查看了bsdlabel的man文档,参数B表示在该主分区中写入引导程序。按照handbook中关于FreeBSD引导过程的描述,fdisk 的 B参数是表示在硬盘的MBR中写入boot0(512字节),而bsdlabel中的B参数则表示在该主分区中写入该主分区的引导记录(并非主引导记录),即boot1(512字节,写在主分区的第一个扇区)和boot2(大概8K左右,写在分区的某个特定区域,并非文件系统中)。 参数w即write,表示写入,此外还可用r参数读取。

[auto]表示在该主分区中自动划分出一个逻辑分区,有点类似于fdisk中的I参数。如果不加auto参数,则用disklabel -e /dev/ad0s1来分区划分出逻辑分区的时候,disklabel会自动打开一个编辑器,让你手工输入逻辑分区大小,偏移量等信息,然后保存后更据你编辑的信息来划分出逻辑分区。手工编写逻辑分区的信息需要对硬盘的知识比较了解,但是好处是可以很自由的安排逻辑分区的起始位置、大小以及分区名称等信息,而且可以更据FreeBSD的规则最多化出7个可用分区和一个特殊的c分区。而用auto参数字自动划分出一个逻辑分区的好处是不需要对硬盘有比较深入的了结,坏处是只能分一个可用的逻辑分区。

disklabel -e /dev/ad0s1 命令用来在该主分区(slice)中写入该逻辑分区的起始位置等信息。

执行完这条命令后,在/dev/目录下就会自动生成设备文件 ad0s1a 和ad0s1c ,如果是手工编辑逻辑分区信息生成多个分区的话,/dev下会有对应的设备文件生成,用newfs创建文件系统后就可以用该逻辑分区了。

以上命令在handbook中有描述,但是没有这么详细的说明,今天根据实验和man文档,以及自己的理解,写下这些备忘记录,以上理解应该是正确的。

综上所述fdisk工具是用来划分主分区(slice)的,他的操作对象是硬盘的第一个扇区(MBR),在MBR中写入标准引导程序(boot0),以及主分区的分区信息。 而disklabel/bsdlabel是用来在主分区中划分逻辑分区的,他的操作对象是硬盘中主分区的第一个扇区,以及一些特殊区域,用来写入引导程序的第二、第三步(boot1和boot2)以及位于该主分区中的逻辑分区的分区信息以及标识号。

一般情况下,用fdisk和disklabel/bsdlabel进行分区不太方便也不直观,sysinstall应该是一个快速直观的选择。

通过阅读相关文档和实验以及和其他操作系统的分区方式和概念的对比,对FreeBSD的分区概念和分区工具的使用有了比较清晰的了解 .

三,一组有趣的实验

在实验的过程中,发现一个有趣的现象,即:在FreeBSD中无论是整个硬盘/dev/ad0整个主分区/dev/ad0s1还是主分区中的逻辑分区 /dev/ad0s1a

都可以用newfs直接创建文件系统然后挂到某个目录下使用。

首先,我对一个没有任何分区的硬盘做如下操作:newfs /dev/ad0 mount /dev/ad0 /mnt

发现没有任何错误和警告信息,该硬盘没有分区就直接可以用了,实际测试了一下,也确实正确。

然后对硬盘划分了四个主分区,再分别在四个主分区上创建文件系统:

newfs /dev/ad0s1 newfs /dev/ad0s2 newfs /dev/ad0s3 newfs /dev/ad0s4

mount /dev/ad0s1 /mnt/1 mount /dev/ad0s2 /mnt/2 mount /dev/ad0s3 /mnt/3 mount /dev/ad0s4 /mnt/4

同样没有任何错误和警告,这些主分区在没有进一步划分逻辑分区的情况下也可直接创建文件系统后使用。

最后,再在四个主分区中分别划分出几个逻辑分区,创建文件系统后当然也能使用,这是FreeBSD中默认的硬盘使用方式。

我甚至对代表整个主分区的c号逻辑分区上创建文件系统:newfs /dev/ad0s1c mount /dev/ad0s1c /mnt 这样也能使用,当然 如果划分了其他逻辑分区的情况下,这种用法会破坏其他逻辑分区,这种用法和:newfs /dev/ad0s1 mount /dev/ad0s1 /mnt 应该是一致的。

通过实验得出结论:在FreeBSD中,硬盘不需要分区,可直接创建文件系统而使用该硬盘。

创建分区的好处,是可以和其他操作系统共存一个硬盘上。

在FreeBSD系统上做完上述实验后,本人又想到linux上是否也可以不划分分区而直接使用整个硬盘呢?

立即做了一下实验,证实了我的想法是正确的,只不过linux的创建文件系统命令mkfs.ext3会发出警告,只要回答yes就可以直接在一个没有分区的硬盘上创建文件系统并mount到系统中使用了。

命令如下:mkfs.ext3 /dev/sdb mke2fs 1.32 (09-NOv-2002)

/dev/sdb is entire device, not just one partition!

Proceed anyway? (y,n) y

mount /dev/sdb /mnt

以上实验说明,在操作系统中,硬盘分区并非必需的,分区是为了更好的管理文件和与其他系统共存。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有