1.在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名。比如 IDE接口的硬盘文件名为/dev/hd[a-d] 括号内的字母为a-d当中任意一个,即/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd四个文件.
装置 | 装置在Linux内的档名 |
IDE硬碟机 | /dev/hd[a-d] |
SCSI/SATA/USB硬碟机 | /dev/sd[a-p] |
USB快闪碟 | /dev/sd[ap](与SATA相同) |
软碟机 | /dev/fd[0-1] |
印表机 | 25针: /dev/lp[0-2] USB: /dev/usb/lp[0-15] |
滑鼠 | USB: /dev/usb/mouse[0-15] PS2: /dev/psaux |
当前CDROM/DVDROM | /dev/cdrom |
当前的滑鼠 | /dev/mouse |
磁带机 | IDE: /dev/ht0 SCSI: /dev/st0 |
更多Linux内核支持的设备参考网站: http://www.kernel.org/pub/linux/docs/device-list/devices.txt
2.磁盘分区
以IDE介面来说,由于一个IDE排线可以连接两个IDE装置,又通常主机都会提供两个IDE介面,因此最多可以接到四个IDE装置。也就是说,如果你已经有一个光碟设备了,那么最多就只能再接三颗IDE介面的磁碟啰。这两个IDE介面通常被称为IDE1(primary)及IDE2(secondary),而每条排线上面的IDE装置可以被区分为Master与Slave。这四个IDE装置的档名为:
IDEJumper | Master | Slave |
IDE1(Primary) | /dev/hda | /dev/hdb |
IDE2(Secondary) | /dev/hdc |
/dev/hdd |
3.SATA接口使用SCSI模块来驱动,与IDE不同,SATA/USB接口的磁盘根本没有一定的顺序,这个时候就得根据Linux内核检测到磁盘的顺序了。
例子:如果PC上面有两个SATA磁盘以及一个USB磁盘,而主板上有六个SATA的插槽。这两个SATA磁盘分别安插在主板上的SATA1,SATA5插槽上,请问这三个磁盘在Linux中的设备文件名?
答:由于是使用检测到的顺序来决定设备文件名,并非与实际插槽代号有关,因此设备文件名如下:
SATA1插槽的文件名:/dev/sda
SATA5插槽的文件名:/dev/sdb
USB磁盘(开机完成后才被系统识别):/dev/sdc
4.磁盘的盘片上面可细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512byte那么大。
磁盘的第一个扇区特别重要,因为它记录了整个磁盘的两个重要信息:
主引导分区(MBR):可以安装引导加载程序的地方,有446bytes。
分区表:记录整块硬盘分区的状态,有64bytes
5.在分区表中,总共分成四组记录区,每组记录区记录了该区段的起始与结束的柱面号码(分区的最小单位)
假设磁盘的设备文件名为/dev/hda,那么四个分区的设备文件名分别为:
P1:/dev/hda1 1~100
P2:/dev/hda2 101~200
P3:/dev/hda3 201~300
P4:/dev/hda4 301~400
注意的几点:
所谓的分区只是针对那个64byte的分区表设置
硬盘默认的分区表仅能写入四组分区信息
这四组分区信息我们称为主(Primary)或扩展(Extended)分区。
分区的最小单位为柱面(cylinder)
分区的作用:1.数据的安全性 2.系统的性能
6.可以在扩展分区上划分多个逻辑分区
注意1~4的数字保留给主分区或扩展分区使用,逻辑分区的设备名称号由5号开始
主分区与扩展分区最多可以有四个(硬盘的限制)
扩展分区最多只能有一个(操作系统的限制)
逻辑分区是由扩展分区持续切割出来的分区
能够被格式化作为数据访问的分区为主分区与逻辑分区,扩展分区本身无法格式化
逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号),SATA硬盘则有11个逻辑分区(5号到15号)
如果扩展分区被破坏掉,所有上面的逻辑分区将会被删除
7.假如PC有两块SATA硬盘,我想在第二块硬盘分出6个可用的分区(可以被格式化来访问数据),那么每个分区在Linux系统下的设备文件名为何?且分区类型为何?至少写出两种不同的分区方式
答:由于P+E最多只能有4个,E最多只能有一个
第一种分法:
P+P+P+E
实际可用的是 /dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb5,/dev/sdb6,/dev/sdb7
第二种分法:
P+E
实际可用的是/dev/sdb1,/dev/sdb5,/dev/sdb6,/dev/sdb7,/dev/sdb8,/dev/sdb9
8.电脑开机流程到操作系统之前的动作应该是这样的:
BIOS:开机主动执行的韧体(韧体就是写入到硬件上的一个软件程序),会认识第一个可开机的设备
MBR:第一个可开机的设备的第一个扇区内的主引导分区块,内包含引导加载程序
引导加载程序(Boot loader):一支可读取内核文件来执行的软件
内核文件:开始操作系统功能
9.Boot loader的作用:提供菜单,载入内核文件,转交其他loader
10.每个分区都有自己的启动扇区(boot sector)
实际可开机的内核文件是放置到各分区内的
loader只会认识自己的系统分区内的可开机内核文件,以及其他loader而已
loader可直接指向或是间接将管理权转交给另一个管理程序
11.Linux操作系统的文件使用目录树,与磁盘的对应需要有"挂载"的操作才行。所谓的挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,也就是进入该目录就可以读取该分区。