Linux的核心概念:各个组件或设备在Linux下面都是一个文件。(这也是和Windows系统最大的不同)
各硬件设备在Linux中的文件名:
设备 | 设备在Linux中的文件名 |
SCSI、SATA、USB硬盘 | /dev/sd[a-p] (中括号中的字母代表不同的硬盘) |
U盘 | /dev/sd[a-p] |
Virtio接口 | /dev/vd[a-p] (用于虚拟机内) |
软驱 | /dev/fd[0-7] |
打印机 | /dev/lp[0-2] (25针打印机) /dev/usb/lp[0-15] (USB接口) |
鼠标 | /dev/input/mouse[0-15] (通用) /dev/psaux (PS/2接口) /dev/mouse (当前鼠标) |
CD-ROM、DVD-ROM | /dev/scd[0-1] (通用) /dev/sr[0-1] (CentOS通用) /dev/cdrom (当前CD-ROM) |
磁带机 | /dev/ht0 (IDE接口) /dev/st0 (SATA/SCSI接口) /dev/tape (当前磁带) |
IDE硬盘 | /dev/hd[a-d] |
举例:
主机上有两个SATA硬盘以及一个USB硬盘,主板上有6个SATA插槽,它们在Linux上的文件名是什么?
答:主机是按照检测到的顺序来决定设备文件名,并非与实际插槽顺序有关,故文件名如下:
SATA1上的硬盘文件名:/dev/sda
SATA2上的硬盘文件名:/dev/sdb
USB硬盘文件名:/dev/sdc (因为USB硬盘要在系统启动完成后才能被识别,故排在最后)
使用虚拟机学习:
如果你的系统是Windows系列,建议使用VirtualBox。
如果原本就是Linux系统,可以使用原本系统内就有的虚拟系统管理器来处理。
磁盘分区:
碟片上面可细分出扇区(Sector)与磁道(Track),扇区的物理大小设计有两种,分别是512字节与4K字节。
早期的磁盘第一个扇区里面含有的重要信息称为MBR格式,后来又多个一个新的磁盘分区格式,称为GPT。
1.MBR(MS-DOS)
早期的Linux系统为了兼容Windows的磁盘,使用的是支持Windows的MBR的方式来处理启动引导程序与分区表。
第一个扇区512字节包含两个东西:
主引导记录(MBR):可以安装启动引导程序的地方,有446字节;
分区表:记录整块硬盘分区的状态,有64字节。
因为分区表只有64字节容量,因此最多只能有四组记录区,分别为/dev/sda1、/dev/sda2、/dev/sda3、/dev/sda4
以上四个记录区就相当于Windows系统中的C、D、E、F盘。
MBR的缺点:
-
- 操作系统无法使用2.2TB以上的磁盘容量;
- MBR仅有一个区块,若被破坏,经常无法或很难恢复;
- MBR内的存放启动引导程序的区块仅446字节,无法存储较多的程序代码。
注意: 主要分区(Primary)、扩展分区(Extended)、逻辑分区(logical)
-
- 主要分区与扩展分区的和最多可以有4个(硬盘的限制)
- 扩展分区最多只能有1个(操作系统的限制)
- 逻辑分区是由扩展分区持续划分出来的分区。
- 能够被格式化后作为数据存取的分区是主要分区与逻辑分区,扩展分区无法格式化。
- 逻辑分区的数量依操作系统而不同,在Linux系统中SATA硬盘已经可以突破63个以上的分区限制。
2.GPT(GUID partition table) 磁盘分区表
为了兼容所有的磁盘,因此在扇区的定义上会使用所谓的逻辑区块地址(LBA)来处理,GPT将磁盘所有区块以此LBA(默认512字节)来规划。
LBA0(GPT表头记录):记录了分区表本身的位置与大小,同时记录了备份用的GPT分区放置的位置。
LBA2-33(实际记录分共信息处):每个LBA都可以记录4组分区记录,所以在默认情况下,总共可以有4*32=128组分区记录。
GPT分区没有所谓有主、扩展、逻辑分区的概念,每个都可以视为主要分区,每一个分区都可以拿来格式化使用。
主机的启动流程与启动检测:
操作系统也是软件,那如何让我们的主机认识这个软件并执行它呢?
1.BIOS搭配MBR/GPT的启动流程
CMOS是记录各项硬件参数且嵌入在主板上面的存储器,BIOS则是一个写入到主板上的一个固件(就是一个软件程序)。
BIOS是主机启动后,计算机系统会主动执行的第一个程序,具体过程如下:
-
-
- BIOS:启动主动执行的固件,会认识第一个可启动的设备;
- MBR:第一个可启动设备的第一个扇区内的主引导记录块,内含启动引导代码;
- 启动引导程序(boot loader):一个可读取内核文件来执行的软件;
- 内核文件:开始启动操作系统。
-
2.UEFI BIOS搭配GPT启动的流程
GPT可以提供64位的寻址,但BIOS仅是16位的程序,而且BIOS其实不懂GPT。
为了解决这个问题,因此就有了UEFI这个统一可扩展固件接口的产生。
Linux安装模式下,磁盘分区的选择:
目录树结构:
Linux整个目录树架构最重要的就是那个根目录,表示方法为一条斜线 / 。(注意:Windows都是使用反斜线 \ )
文件系统与目录树的关系(挂载):
所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说进入该目录就可以读取该分区。
那个进入点的目录我们称为“挂载点”,根目录是最重要的目录,因此一定需要挂载到某个分区。