Large Disk mini-HOWTO 大硬盘

2016-01-29 19:39 3 1 收藏

Large Disk mini-HOWTO 大硬盘,Large Disk mini-HOWTO 大硬盘

【 tulaoshi.com - Linux 】

  作者: Andries Brouwer, jaeb@cwi.nl
译者: Asd L. Chen, asdchen@ms1.hinet.net
v1.0, 26 June 1996 翻译日期: 10-13 November 1997 


--------------------------------------------------------------------------------
所有有关 disk geometry 及 1024 cylinder 的限制. 
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

1. 问题所在
假如你的磁碟超过 1024 个磁簇(cylinders). 还有, 假如你的作业系统使用基本输出入系统(BIOS).那麽你会遇到一个问题, 因为一般磁碟输出入/输入所使用的 INT13 BIOS 介面以一个 10 位元(bit) 的栏位来操作磁簇, 所以无法存取第 1024 及之後的磁簇. 

幸运的是, Linux 不使用 BIOS, 所以没有问题. 

话是这麽说, 但有两件事例外: 

(1) 当你在启动系统时, Linux 还没开始执行所以无法让你避免这个问题.这对 LILO 以及类似的启动载入程式(boot loaders)有些影响. 

(2) 使用磁碟的所有作业系统必须同意分割区的位置.换句话说, 如果你在一颗磁碟上使用 Linux 以及, 例如 DOS, 那麽两者必须以相同的方式解读分割表的资料.这对 Linux 核心以及 fdisk 有些影响. 

底下是对所有相关细节更详细的描述.注意, 我使用 2.0.8 版核心原始程式做为参考.其它的版本可能有一点点出入. 




--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

2. 启动
当系统启动时, BIOS 从第一个磁碟(或从软碟)读取磁区 0 (一般通称的 MBR - Master Boot Record, 主启动磁区)并跳至在该处的程式码 - 通常是一些启动载入程式(bootstrap loader).这些小小的启动程式一般不会有自己的磁碟驱动程式而会使用 BIOS 所提供的服务.这意谓著只有整个 Linux 核心都位於开头的 1024 个磁簇内时才能够被启动. 

这个问题很容易解决: 确定核心(也许还包括其它启动时用到的档案, 像是 LILO map 档) 是放在一个 BIOS 可以存取的到, 全都在开头的 1024 个磁簇内的分割区里 - 这可以(可能)是第一个或第二个磁碟. 

另一点是启动载入程式与 BIOS 必须同意彼此对磁碟逻辑(geometry)上的看法.给 LILO `linear' 这个选项参数可能会有些帮助.细节後述. 




--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

3. 磁碟 geometry 以及分割区
如果你的磁碟上有好几种作业系统, 每一种使用一个或多个分割区.那麽对於分割区位於何处不同的看法可能导致灾难性的後果. 

MBR 中包含一个分割表描述分割区(主分割区: primary) 在那里.有四个表格给四个主要分割区使用, 它们看起来像 

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 */
};

(其中 CHS 是磁簇/磁头/磁区: Cylinder/Head/Sector 的缩写) 
因此, 有项资讯是重覆的: 分割区的位置可以由 24 位元的 begin 以及 end 栏位, 和 32 位元的 start 以及 length 栏位给定. 

Linux 只使用 start 以及 length 栏位, 故最多可以处理包含 2^32 个磁区的分割区, 也就是, 最大 2 TB 的分割区.这是现今磁碟机的两百倍, 所以也许足够往後十年的需求. 

不幸的是, BIOS INT13 呼叫使用三个位元组的 CHS 编码, 10 个位元作为磁簇号码, 8 个位元作为磁头号码, 及 6 个位元作为磁轨上的磁区号码.可能的磁簇号码是 0-1023, 可能的磁头号码是 0-255, 而磁轨上可能的磁区号码为 1-63(是的, 磁轨上的磁区是由 1 起算, 不是 0).以这 24 位元最多可以定址 8455716864 个位元组(7.875 GB), 这是 1983 年磁碟机的两百倍. 

更不幸的是, 标准的 IDE 介面容许 256 个磁区/磁轨, 65536 个磁簇以及 16 个磁头.它自己本身可以存取 2^37 = 137438953472 个位元组(128 GB), 但是加上 BIOS 方面 63 个磁区

来源:https://www.tulaoshi.com/n/20160129/1509871.html

延伸阅读
  The Linux+DOS+Win95 mini-HOWTO by Alan L. Wendt, alan@ez0.ezlink.com v1.0, 10 September 1996 The Linux+DOS+Win95 mini-HOWTO 中文版 by 黄耀民 yawmin@tcts.seed.net.tw ymhuang@pluto.ttem.fcu.edu.tw v1.0, 1998/1/8 这是一篇有关於在同一颗硬碟内有 Linux、DOS、Windows 95等...
  作者: Hanno Mueller, hanno@lava.de http://www.lava.de/~hanno/ 译者: 谢昆中 HSIEH Kun-Chung, linuxer.bbs@cis.nctu.edu.tw 1997年12月21日 -------------------------------------------------------------------------------- 本文件旨在描述如何以调整 Linux 系统的某些设定来减少系统的电源消耗。 这对那些...
  原始文件:Linux Quota mini-HOWTO 档案叙述:磁碟空间限制简易使用说明 翻译日期:1996/09/20 1997/10/21 翻译维护:asdchen@ms1.hinet.net 修 订:cwhuang@phys.ntu.edu.tw (1997/10/21) ------------------------------------------------------...
  v0.3, 22 October 1998 -------------------------------------------------------------------------------- 这份文件在描述自动档案系统的自动挂载程式,如何设定并指出一些应该避免的问题。 -------------------------------------------------------------------------------- 1. 简介 1.1 档案系统自动挂载 - 是...
  作者: Renzo Zanelli, rzanelli@southeast.net 译者: 谢昆中 HSIEH Kun-Chung, ( linuxer.bbs@cis.nctu.edu.tw ) v1.0版, 1998年 3月26日 -------------------------------------------------------------------------------- 这个文件在□述如何做 Windows 95, indows NT 及 Linux 间的多重开机 -------...

经验教程

578

收藏

29

精华推荐

Soundblaster 16 PnP Mini-Howto 如何在Linux设定16位P

Soundblaster 16 PnP Mini-Howto 如何在Linux设定16位P

寕静致邍

IP Masquerade mini HOWTO

IP Masquerade mini HOWTO

步芸家的

ISP-Connectivity-mini-HOWTO

ISP-Connectivity-mini-HOWTO

双鱼石头硬

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部