我和几个朋友正在讨论的东西,我们无法弄清楚。 在FreeBSD和OpenSolaris / Solaris中,当对一个驱动器进行分区时,会创build一个覆盖整个磁盘的分区:
da0s1c c0d0s2
例如,我的OpenSolaris服务器中的主硬盘驱动器的输出:
[email protected]:/dev/rdsk# prtvtoc /dev/rdsk/c4d0s2 * /dev/rdsk/c4d0s2 partition map * * Dimensions: * 512 bytes/sector * 63 sectors/track * 255 tracks/cylinder * 16065 sectors/cylinder * 7296 cylinders * 7294 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * Unallocated space: * First Sector Last * Sector Count Sector * 0 16065 16064 * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 16065 117145980 117162044 2 5 01 0 117178110 117178109 8 1 01 0 16065 16064
使用分区2的原因是什么? 为什么不分区0? 在Unix的历史上,这是决定? 在那个时间点,它提供了哪些遗留function? 随着GPT分区,完全消失(从我发现)。
只是有趣的事情…
由于ParoX提到了GPT风格的分区以及Solaris在vtoc布局方面的performance,这里是我的一个磁盘的输出是1TB,并且在ZFSarrays中,并且已经自动设置了GPT:
[email protected]:~# prtvtoc /dev/rdsk/c5d0 * /dev/rdsk/c5d0 partition map * * Dimensions: * 512 bytes/sector * 1953520128 sectors * 1953520061 accessible sectors * * Flags: * 1: unmountable * 10: read-only * * Unallocated space: * First Sector Last * Sector Count Sector * 34 222 255 * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 4 00 256 1953503455 1953503710 8 11 00 1953503711 16384 1953520094
过去,我们会使用整个磁盘的“dd”进行备份。 因此,我们有了“C”片,以便我们可以用一个命令来完成这一切。
这就是为什么“c”切片存在。
DD并不完美。 如果一个磁盘只占用10%的空间,那么你的时间就有90%是用“垃圾”或(例如)用于“交换”(无用的备份)。 “dd”是一种浪费时间,除非你的磁盘快满了,或者由于某种原因,你需要一个一个一个的一个块一块地复制。
这一切都是在RAID-0磁盘镜像和卷pipe理器为您进行所有types的分区复制之前进行的。
(有人提到了“c”片上的“dump”,这是行不通的,“dump”是一个逐个文件的拷贝[实际上是inode的inode],所以不起作用。
有人问“为什么是c,不是第一个分区,还是最后一个分区”。 答案是“传统”。 我只能猜测,肯或丹尼斯(或可能比尔喜悦或柯克麦克库克)有一个很好的理由在当时。 我假设他们已经使用了前两个分区标签的实际分区。 那么有一天有人有了重叠分区的想法做备份,“c”是下一个可用的分区。 由于当时只有2-3台Unix机器,这样做两次就可以“设置标准”,在剩下的时间内使用。
本文将介绍历史事故如何成为永远不会走的标准的另一个例子: 理解bin,sbin,usr / bin,usr / sbin split
传统上,这是切片的结果如下:
s0:根
s1:交换
s2:bkup
他们把最重要的东西分配给第一部分,并继续降低重要性:)(如果没有根分区,谁需要交换?此外,如果没有数据,谁需要备份任何东西。
我不知道这是什么时候决定的(可能相当早;每当Solaris开发人员决定使用Solaris风格的磁盘标识符和片时)。
由于MBR风格分区scheme不适用,因此GPT问题消失。 (虽然我个人不太了解Solaris如何代表GPT分区…)
希望这有助于XD
================
编辑:
现在你已经对我有兴趣了。 我会在我去上class之前发现一些链接。
Solaris 2.4系统pipe理员答案手册:习惯切片
Solaris 2.4用户指南:外设pipe理
这两个文件都是大约在1994年,他们将s2的创build定义为即时融入“格式”。 要继续挖XD!
有关此问题的更多信息:
根据FreeBSD上的http://en.wikipedia.org/wiki/BSD_disklabel ,其他操作系统也在使用的磁盘上的c分区只能扩展到整个FreeBSD分区,分区d将是整个硬盘!
c分区在专用模式下寻址整个磁盘,或在分片模式下寻址整个FreeBSD slice。 其他分区是通用的。
FreeBSD手动磁盘添加请参见18.3.1编号3。
为什么在老式的Sun OS中,scsi id 3是默认的启动盘?
所有这些时刻都将会stream失,就像雨中的泪水一样。