📄 large-disk-3.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Large Disk mini-HOWTO 中译版: 磁碟 geometry 以及分割区</TITLE>
<LINK HREF="Large-Disk-4.html" REL=next>
<LINK HREF="Large-Disk-2.html" REL=previous>
<LINK HREF="Large-Disk.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Large-Disk-4.html">Next</A>
<A HREF="Large-Disk-2.html">Previous</A>
<A HREF="Large-Disk.html#toc3">Contents</A>
<HR>
<H2><A NAME="s3">3. 磁碟 geometry 以及分割区</A></H2>
<P>如果你的磁碟上有好几种作业系统, 每一种使用一个或多个分割区.那麽对於分割区位於何处不同的看法可能导致灾难性的後果.
<P>MBR 中包含一个分割表描述<I>分割区</I>(主分割区: primary) 在那里.有四个表格给四个主要分割区使用, 它们看起来像
<BLOCKQUOTE><CODE>
<PRE>
struct partition {
char active; /* 0x80: bootable, 0: not bootable */
char begin[3]; /* CHS for first sector */
char type;
char end[3]; /* CHS for last sector */
int start; /* 32 bit sector number (counting from 0) */
int length; /* 32 bit number of sectors */
};
</PRE>
</CODE></BLOCKQUOTE>
(其中 CHS 是磁簇/磁头/磁区: Cylinder/Head/Sector 的缩写)
<P>因此, 有项资讯是重覆的: 分割区的位置可以由 24 位元的 <CODE>begin</CODE> 以及 <CODE>end</CODE> 栏位, 和 32 位元的 <CODE>start</CODE> 以及 <CODE>length</CODE> 栏位给定.
<P>Linux 只使用 <CODE>start</CODE> 以及 <CODE>length</CODE> 栏位, 故最多可以处理包含 2^32 个磁区的分割区, 也就是, 最大 2 TB 的分割区.这是现今磁碟机的两百倍, 所以也许足够往後十年的需求.
<P>不幸的是, BIOS INT13 呼叫使用三个位元组的 CHS 编码, 10 个位元作为磁簇号码, 8 个位元作为磁头号码, 及 6 个位元作为磁轨上的磁区号码.
可能的磁簇号码是 0-1023, 可能的磁头号码是 0-255, 而磁轨上可能的磁区号码为 1-63(是的, 磁轨上的磁区是由 1 起算, 不是 0).
以这 24 位元最多可以定址 8455716864 个位元组(7.875 GB), 这是 1983 年磁碟机的两百倍.
<P>更不幸的是, 标准的 IDE 介面容许 256 个磁区/磁轨, 65536 个磁簇以及 16 个磁头.它自己本身可以存取 2^37 = 137438953472 个位元组(128 GB), 但是加上 BIOS 方面 63 个磁区与 1024 个磁簇的限制後只剩 528482304 个位元组(504 MB)可以定址的到.
<P>这不足以应付现今的磁碟, 人们使用各种硬体或软体上的方法来克服.
<P>
<P>
<HR>
<A HREF="Large-Disk-4.html">Next</A>
<A HREF="Large-Disk-2.html">Previous</A>
<A HREF="Large-Disk.html#toc3">Contents</A>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -