LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 12193|回复: 22

Linux的分区结构(原创)

[复制链接]
发表于 2003-12-31 10:41:17 | 显示全部楼层 |阅读模式
Linux的分区结构
    许多人被Windows误导,认为硬盘分区很简单,无外乎C: D: E: …..的盘,最多分区到Z:也就是24个分区。其实不是这样的,硬盘分区并没有你想象的那么简单!通过本文你会发现在硬盘分区方面有许多是在学习Linux之前你要学习。我们先从硬盘的结构说起,然后再讲Linux下的分区。

    首先,硬盘最重要的部分是它的0磁面0磁道1扇区(clindyer 0, side 0, sector 1),在系统BIOS自检结束后,如果BIOS中定义了首先从硬盘启动,计算机就会把控制权交给了硬盘的0磁面0磁道1扇区,它又叫做“硬盘主引导扇区”。

    硬盘主引导扇区由三部分组成,分别是:硬盘主引导记录(MBR)、硬盘分区表(DPT)和结束标志,其总共所占空间为512字节(512b), 其中硬盘主引导记录(MBR)446字节(0000--01BD),硬盘分区表(DPT )64字节(01BE--01FD),结束标志2字节。硬盘主引导记录是用来存放引导程序(Bootloader)的,也就是Linux中Grub程序放置的地方,负责把操作系统的内核(kernel)读入内存。

    硬盘分区表用来存放硬盘分区信息,64字节被平均分为4个部分,也就是每一部分16字节,系统用这每16个字节记录一个硬盘分区,我们把这样的分区叫做主分区(Primary Partition )。一个硬盘最多只能有4个主分区,这对于计算机的发展是很不利的,随着硬盘容量的扩大这个问题渐渐的明显了,但我们又不能打破以前的分区规则,怎么办呢?我们就把4个主分区中的一个拿出来当作特殊的分区处理,在它上面建立新的分区结构。我们把这个特殊的主分区叫做扩展分区(Extended Partition),在扩展分区上划分的新结构分区叫做逻辑分区(Logical Partition)。根据规定IDE硬盘可以分63个区,SCSI硬盘可以分15个区。

   大家都知道在UNIX中一切都是文件,包括我们的硬盘和分区!在Linux 里硬盘和分区都是设备文件,存放在/dev目录下。IDE设备是/dev/hdX,而SCSI设备是/dev/sdX。X是设备标签,IDE设备标签一般从a到d ,/dev/hda代表主板上主IDE插口上的主设备,/dev/hdb代表主板上主IDE插口上的从设备,/dev/hdc代表主板上从IDE插口上的主设备,/dev/hdd代表主板上从IDE插口上的从设备,我们PC机上的硬盘在Linux应你连接的不同一般是/dev/hda或/dev/hdc,我们后面的讨论以/dev/had为准。SCSI设备的命名和IDE设备有相似的地方,因此我们在这里只讨论IDE硬盘的分区。

   现在我们有了一个连接在主板上主IDE插口上的主设备位置的硬盘/dev/hda ,我们开始分区,从/dev/hda1到/dev/hda4 这4个分区设备文件是为主分区预留的,我们一般在Windows里看到的C:盘就是其中之一。扩展分区可以是从/dev/hda2到/dev/hda4中的任意一个,但逻辑分区只能是从/dev/hda5开始而且一定是从/dev/hda5开始,SCSI硬盘的逻辑分区也必须从/dev/sdX5开始。

   我们一般在安装Linux的时候,第一步要做的就是分区。在分区的时候一般使用的是Disk Druid分区工具或Linux自己的Fdisk分区工具。Disk Druid的优点是图形化、易操作,但缺点是只能在安装系统时使用。Linux 自己的Fdisk使用的是字符界面的交互环境,不适于初学者使用,且只能对每个硬盘的前16个分区做操作。

    总的说来,Linux的分区要比Windows下麻烦很多,但这样的麻烦可以让你更了解系统低层的东西,更利于你的提高!
发表于 2004-1-12 17:02:54 | 显示全部楼层
补充一下:linux和windows在分区上面最大的概念不同是:
linux不是用盘符来区别每个分区的,而是用目录来区分。
这点希望初学者能够领悟一下,对于理解硬盘分区概念有点帮助。

另外,建议楼主在发表文章的时候能否分一下段落?

还有,楼主希望您的文章置顶,依我来看,分量还不够,让我来助您一臂之力吧。

Linux和windows在启动方面的比较:
linux:第一步:硬件读取引导扇区;
windows:第一步:硬件读取引导扇区;

linux:第二步:加载LILO或者grub
windows:第二步:加载NTLDR并读取BOOT.ini文件(类似与lilo.conf或者grub.conf)

linux:第三步:加载内核;
windows:第三步:NTDETECT运行并决策硬件设备;

linux:第四步:挂装根文件系统;
windows:第四步:NTLDR加载NTOSKRNL.EXE,NT内核和HAL.DLL,硬件基本驱动层。

linux:第五步:启动init,一切进程的“祖父”;
windows:第五步:NT准备好C:盘;

linux:第六步:读取/etc/inittab文件;
windows:第六步:服务器管理器SMSS.EXE加载,它读入注册表registry并决定需要加载哪些服务;

linux:第七步:允许所有运行级别1指定的脚本程序;
windows:第七步:加载WIN32系统;

linux:第八步:在运行级别1的结尾处告诉系统前进到运行级别3;
windows:第八步:启动提供登录服务的winlogon;

linux:第九步:允许所有运行级别3指定的脚本程序;系统就绪;
windows:第九步:SCREG,注册表扫描工具和LSASS,本地安全授权工具随winlogon一起启动,开始加载驱动程序,系统就绪;
发表于 2004-1-12 17:19:51 | 显示全部楼层
下面是Linux和windows在关机时候的比较,请笑纳!

自己没有研究好,不便发表。抱歉!
发表于 2004-1-12 17:27:56 | 显示全部楼层

回复: Linux的分区机构(原创)

最初由 kissingwolf 发表
总的说来,Linux的分区要比Windows下麻烦很多,但这样的麻烦可以让你更了解系统低层的东西,更利于你的提高!


这句不敢苟同   
老实说,我觉得windows的分区也蛮麻烦的,大家还记得当初在dos下面的情景吗?呵呵:p
 楼主| 发表于 2004-1-13 09:09:52 | 显示全部楼层

谢谢指正!

又回想起Dos 6.22 和 Windows 3.2的美好时光!
发表于 2004-1-29 03:13:17 | 显示全部楼层
呵呵,不错,好东西来的,,,,
发表于 2004-4-5 19:32:13 | 显示全部楼层
dos 的fdisk简单得多
发表于 2004-4-5 20:37:35 | 显示全部楼层
没有什么,只要会了就简单!!!
发表于 2004-4-7 12:07:12 | 显示全部楼层
支持!
很不错的文章,懂技术的人很多,但是能把技术用普通人的语言加以阐述并有条理的写出来的就不多了。kevin,不如专职写书吧!这年头,干这个!挣钱!!!!!
 楼主| 发表于 2004-4-7 14:02:02 | 显示全部楼层
可以考虑!
我本来就是"开放系统"的自由撰稿
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表