鸟哥的linux私房菜读书笔记3

第三章:主机规划与磁盘分区

在linux系统中,每个设备都被当成一个文件来对待。例如IDE接口的硬盘的文件名即为:/dev/hd[a-d],括号中的为a-d中的任意一个,例如/dev/hda、….等四个文件,[]只是一种表达方式;打印机为/dev/lp0,软盘为/dev/fd0;每个磁盘驱动器的磁盘分区不同时,其磁盘文件名还会改变;

主机通常提供两个IDE接口,每个IDE接口又可以连接两个IDE设备,所以一个主机最多可以连接四个IDE设备。两个IDE设备通常称为IDE1,IDE2;每个IDE设备可以被分为主设备master和从设备slave;IDE1的主从分别为/dev/had、/dev/hdb。IDE2的主从分别为/dev/hac、/dev/hdd,顺序固定,只有一个IDE接口的硬盘,接在IDE2的master上,就是/dev/hac。

SATA接口是使用SCSI模块来驱动,这些接口的磁盘设备名是/dev/sd[a-p],与IDE接口不同的是,SATA接口的磁盘没有一定的顺序,根据linux内核检测到的磁盘的顺序来定;

磁盘的组成:盘片、机械手臂、磁头、主轴马达等;数据的写入其实是在盘片上面。盘片上又可以分出扇区与柱面两种单位,其中扇区大小为512kb。

扇区:大小固定为512字节,旧式的记录方式是半径小的地方数据密度高,半径大的地方数据密度低;新的解决方式为,越往磁盘外面的地方就应该划分越多的扇区。每个扇区的面积都一样,容纳的数据量也是一样的;数据写入的时候先写满最外道的磁道,接着再写里面的磁道,磁盘用久了读写越来越慢,是因为同样的时间,在外面可以扫过多个扇区的面积,读取多个磁道的数据;而在里面的磁道只能扫过一个扇区的面积,读写一个扇区的数据,所以这时候做磁盘整理或者格式化,使外面的磁道得到使用。

柱面:硬盘通常由重叠的一组盘片构成,每个盘面但都被划分为数目相等的磁道,并且从外面的0开始编号,具有相同编号的磁道形成一个柱面,称之为磁盘的柱面。柱面数与磁道数相同。每个盘面都有自己的磁头,盘面数等于总的磁头数。

磁盘的第一个扇区特别重要,它记录了连个重要的信息:主引导分区MBR,可以安装引导加载程序的地方,有446字节;分区表,记录整块硬盘分区的状态,有64字节;MBR很重要,系统在开机时会主动去读取这个区块的内容,系统才知道程序放在那里并且如何进行开机。

假设磁盘设备文件名为/dev/hda时,将其分为四个分区,四个分区的文件名为p1:/dev/hda1、…等;

由于分区表只有64字节,最多只能容纳四个分区,被称为主分区或扩展分区。其实所谓的分区只是针对那个64字节的分区表进行设置而已;硬盘默认的分区表仅能写如四组分区信息;这四组分区信息我们称为主或者扩展分区;分区的最小单位为柱面;当系统要写入磁盘时,一定会参考磁盘分区表,才能对某个分区进行数据的处理。

利用额外的扇区来记录更多的分区信息:四个分区记录区仅使用了两个,P1是主分区、P2是扩展分区。扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。然后我们可以通过扩展分区所指向的那个区块继续做分区的纪录。扩展分区继续切分出来的分区,就称为逻辑分区。主分区和扩展分区的名字为p1:/dev/hda1、p1:/dev/hda2,扩展分区分的设备文件名为:L1:/DEV/HDA5、L2:/DEV/HDA6、L3:/DEV/HDA7…;没有hda3,hda4是因为前面四个号码都是保留给primary和extended使用的。

关于主分区、扩展分区和逻辑分区的特性我们做个简单的定义:主分区与扩展分区最多可以有四个(硬盘的限制);扩展分区最多只能有一个(操作系统的限制);逻辑分区是由扩展分区持续切割出来的分区;能够被格式化后作为数据访问的分区为主分区与逻辑分区;扩展分区无法格式化;逻辑分区的数量依操作系统而不同,在linux系统中,IDE硬盘最多有59个逻辑分区(5到63号),SATA则有11个逻辑分区(5到15号);

硬盘的容量等于主分区容量加上扩展分区的容量;

扩展分区的容量等于各个逻辑分区的容量之和;

由于第一个扇区所记录的分区表与MBR是这么重要,几乎只要读取硬盘都会由这个扇区先读起。因此,如果硬盘的第一个扇区屋里坏掉了,那这个硬盘就没什么用了。因为系统找不到分区表,就没办法继续读取柱面等。

CMOS是记录各项硬件参数并嵌入到主板上面的存储器,BIOS是一个写入到主板上面的一个软件程序,是开机运行的第一个程序。接下来BIOS会去分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS会依据用户的设置去取得能够开机的硬盘,并且到该硬盘里面读取第一个扇区里面的MBR位置。MBR这个仅有446字节的容量里装的是最基本的引导加载程序,此时BIOS功成身退,接下来是MBR内部的引导加载程序的工作了;引导加载程序的目的是加载内核文件,由于引导加载程序是操作系统安装时提供的,所以它会识别硬盘内的文件系统格式,因此就能够读取内核文件,接下来就是内核文件的工作了,引导加载文件也完成了,之后就是操作系统的任务了;

简单说开机流程如下:BIOS,开机主动执行的程序,会认识第一个可开机的设备;MVR,第一个可开机设备的第一个扇区内的主引导分区块,内包含引导加载程序;引导加载程序loader,一支可读取内核文件来执行的软件;内核文件,开始操作系统的功能。

BIOS和MBR是硬件本身会支持的功能,而引导加载程序是操作系统安装在MBR上面的一套软件罢了。

引导加载程序的主要任务有:提供菜单,用户可以选择不同的开机选项,这也是多重引导的重要功能;载入内核文件,直接指向可开机的程序区段来开始操作系统;转交其他的loader:将引导加载功能转交给其他loader负责。第三点实现多系统的安装,用户选择某个分区上的引导加载程序来进行开机。

目录树结构:整个目录树结构最重要的就是那个根目录,这个根目录的表示方法为一条斜线“/”,所有文件都与目录树有关;所有文件都是由根目录衍生而来的,而次目录之下还能够有其他的数据存在。整个linux系统使用的是目录树结构,但是我们的文件数据其实是放置在磁盘分区当中的,通过挂载的方式将目录树的架构与磁盘内的数据结合起来;

文件系统与目录树的关系(挂载):利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说,通过进入该目录就可以读取该分区的意思。这个操作叫做挂载,那个进入点的目录我们称为挂载点。由于整个linux系统最重要的是根目录,因此根目录一定要挂在在某个分区上,置于其他目录可以根据用户的需求挂载到不同的分区。

挂载:在windows系统中,挂在通常是值给磁盘分区分配一个盘符。第三方软件,如磁盘分区管理软件、虚拟磁盘软件等,通常也附带挂在功能。

在linux系统中,挂在是指将一个设备挂接到一个已存在的目录上。我们要访问存储设备上面的文件,必须将文件所在分区挂在到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂在是一个非常重要的功能,使用非常频繁。将一个设备(通常是一个存储设备)挂接到一个已存在的目录上,这个目录可以不为空,但是挂载后这个目录下以前的内容将不可用。Linux将所有设备都视为文件,他将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。

Swap分区:当物理内存不够用时,把内存的一部分空间释放出来以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存在swap分区中,等到那些程序要运行时,再从swap分区中恢复保存的数据到内存中。

重点回顾:

新添计算机硬件配置时,需要考虑的角度有游戏机/工作机的考虑,性价比的考虑、支持度的考虑;

旧的硬件配置可能由于保存的问题或者电子元件老化的问题,导致计算机系统非常容易在运行过程中出现不明的死机情况;

在linux系统中,每个设备都有一个设备名,被当成一个文件来对待;

磁盘的设备名主要分为IDE接口的/dev/hd[a-d]及SATA/SCSI/USB接口的/dev/sd[a-p]两种;

磁盘的第一个扇区主要记录了两个重要的信息,分别是:主引导分区,可以安装引导加载程序的地方,有446字节;分区表,记录整个硬盘分区的状态,有64字节。

磁盘的主分区与扩展分区最多可以有四个,逻辑分区的设备文件名号码一定由5号开始;

开机的流程是:BIOS->MVR->bootloader->内核文件;

Boot loader的功能主要有提供菜单、加载内核、转交控制权给其他loader;

Boot loader可以安装的地点有两个,分别是MBR与boot sector;

Linux操作系统的文件使用目录树系统,与磁盘对应需要有挂载的操作才行。

适合新手的简单分区:建议只要有/及swap两个分区即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值