linky_fan 发表于 2004-8-27 22:01:36

有分区问题吗?有的话先看这里

Linux的分区机构(原创)
原载于linuxsir。org   createdbykissingwolf(myteacher :-D )

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下麻烦很多,但这样的麻烦可以让你更了解系统低层的东西,更利于你的提高!
补充一下: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一起启动,开始加载驱动程序,系统就绪;

linky_fan 发表于 2004-8-28 13:18:21

自己顶

linky_fan 发表于 2004-8-28 13:42:42

希望版主可以加为精华,对初学者掌握linux的启动步骤很有帮助

newmigplane 发表于 2004-8-28 14:36:55

好帖
这个一定要顶
讲得很详细

linky_fan 发表于 2004-8-28 17:26:26

再顶

bzimage 发表于 2004-8-28 19:32:47

Linux的分区机构 还是叫 机制好些吧

fudaming 发表于 2004-8-28 20:28:38

8) 我好像是在第四步出了问题,或许用win的引导盘修复MBR可以解决问题.

linky_fan 发表于 2004-8-28 20:35:39


Linux的分区机构 还是叫 机制好些吧

同意

neolia 发表于 2004-8-28 21:53:00

呵呵~~~分区是开始LINUX世界的第一步~~这样好帖~~岂能不顶~~~~~??
支持~~!!

rh45 发表于 2004-8-29 22:00:01

长知识了...

linky_fan 发表于 2004-8-31 16:17:58

再顶

firefly2008 发表于 2004-9-5 14:58:34

不错,对初学者很有用,存!

Ztysw 发表于 2004-9-5 15:22:19

:roll:

风儿red 发表于 2004-9-6 18:28:57

好东西

gangbq 发表于 2004-9-6 18:42:26


我好像是在第四步出了问题,或许用win的引导盘修复MBR可以解决问题

怎么修复呀?教教我。
顶!长知识。
页: [1] 2
查看完整版本: 有分区问题吗?有的话先看这里