Linux中每一个设备都被当成文件,所有的设备文件都在/dev这个目录下。
设备 | 文件名 |
---|---|
IDE硬盘 | /dev/hd[a-d] |
SATA/USB/SCSI硬盘 | /dev/sd[a-p] |
U盘 | /dev/sd[a-p] |
软驱 | /dev/fd[0-1] |
打印机 | 25针:/dev/lp[0-2] usb:/dev/usb/lp[0-15] |
鼠标 | usb:/dev/usb/mouse[0-15] ps2:/dev/psaux |
当前CD/DVD ROM | /dev/cdrom |
当前鼠标 | /dev/mouse |
磁带机 | IDE:/dev/ht0 SCSI:/dev/st0 |
磁盘的接口有两种,分别是IDE接口、SATA接口。目前主流的接口是SATA接口。 使用IDE接口的设备我们称为IDE设备。
设备 | 主设备 | 从设备 |
---|---|---|
IDE1 | /dev/hda | /dev/hdb |
IDE2 | /dev/hdc | /dev/hdd |
-SATA设备 以SATA/USB/SCSI为接口的磁盘使用的都是SCSI模块来驱动的,因此他们的设备文件名都是/dev/sd[a-p]。但是与IDE设备不同的是,他们的文件名没有一定的顺序,谁先插上去,谁就是a,以此类推。
整个磁盘的第一个扇区非常重要,因为他记录了重要的信息:
对磁盘进行分区时,采用柱面作为基本单位。 分区表有64bytes,被分成四个区域,每个区域记录当前磁盘的所有分区的起始和结束柱面号。 例如:一块IDE硬盘被分成四个区域: P1:/dev/hda1 P2:/dev/hda2 P3:/dev/hda3 P4:/dev/hda4
每个磁盘的分区表只能被分成四个区域,这四个区域被称为主分区或扩展分区。 分区的最小单位是柱面。 当系统进行数据的读写时,一定要参考分区表才能进行。
主分区和扩展分区都是分区表中的一条记录,主分区中存放通过直接索引就能到达的分区的开始和结束的柱面号;而扩展分区中存放的是逻辑分区表的开始和结束柱面号,这张逻辑分区表中才存放分区的开始和结束柱面号。 由于一张分区表只能存放四条记录,也就是四个分区,当我们想要多一些分区的时候就必须要通过扩展分区来实现。 PS:分区表中的四条记录对应的设备文件名分别是:/dev/hda1、/dev/hda2、/dev/hda3、/dev/hda4, 这四个文件名是永远不会改变的,即使有哪个记录是空的。 逻辑分区一定是从5开始,分别是:/dev/hda5、/dev/hda6…… PS:扩展分区最多只能有1个! PS:Linux中,IDE硬盘最多有59个逻辑分区,5号-63号;SATA硬盘最多有11个逻辑分区,5号-15号。 PS:在Windows中若D、E盘都是扩展分区中的逻辑分区,那么他们可以整合成一个分区;若两个盘一个是逻辑分区,一个是主分区,那他们是不能合并的。 PS:一块硬盘的第一个扇区记录了MBR和分区表,非常的重要,如果第一个扇区坏了,那么整个硬盘就报废了。
例题:假如我的PC有两块SATA硬盘,我想在第二块硬盘分出6个分区,那么可以怎么分? 答:方式1:P+P+P+E方式,设备文件名分别是: /dev/sdb1、/dev/sdb2、/dev/sdb3、/dev/sdb5、/dev/sdb6、/dev/sdb7 方式2:P+E方式,设备文件名分别是:/dev/sdb1、/dev/sdb5、/dev/sdb6、/dev/sdb7、/dev/sdb8、/dev/sdb9
综上所述:一个硬盘的第一个扇区存放两个东西,一个是MBR,一个是分区表。 分区表中只能存放四条记录,这四条记录存放的是每个分区的起始柱面号和终止柱面号。这四条记录的类型只能是两种:主分区Primary和扩展分区Extended,并且扩展分区最多有1个。 主分区中直接存放分区的起始和结束柱面号,而扩展分区中存放逻辑分区的起始和结束柱面号,逻辑分区中才是存放实际可用分区的起始和终止柱面号。
PS:CMOS是一块嵌入在主板上的存储器。 BIOS中的程序读取CMOS中用户的设置,获取用户设置的可以开机的硬盘,读取该硬盘中的第一个扇区的MBR的位置,运行MBR中的引导加载程序Boot loader,这个程序去加载操作系统内核文件,然后操作系统就启动了,接下来就是操作系统的事了。 PS:MBR=Master Boot Record:主引导分区,它是磁盘的空间。Boot loader是引导加载程序,他是位于MBR中的一个程序。
目录树 在Linux中,整个文件系统呈一棵以/为根目录的树。
挂载 把一个目录当作磁盘中某一个分区的进入点,也就是说,进入了这个目录,就进入了这个磁盘的这个分区。 这个进入的目录我们就称为挂载点。 根目录一定要挂载到某个分区。
如何寻找挂载点? 假设分区1挂载到/下,分区而挂载到/home下,那么/home/chai.txt这个文件的挂载点是哪个? 答:只要逆向寻找第一个挂载点就是这个文件的挂载点。 本题中是/home而不是/