chap3主机规划与磁盘分区
- 在Linux系统中,每个设备都被当成一个文件来对待
- 几乎所有的硬件设备文件都在目录/dev内
- 常见设备文件名
- IDE硬盘:/dev/hd[a-d]
- SCSI/SATA/USB设备:/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 ROM/DVD ROM:/dev/cdrom
- 当前鼠标:/dev/mouse
- 磁带机:(不同distribution可能有不同的文件名)
- IDE:/dev/ht0
- SCSI:/dev/st0
磁盘连接方式与设备文件名
- 一个IDE扁平电缆可以连接两个IDE设备,通常主机会提供两个IDE接口,分别称为IDE1(primary)、IDE2(secondary),每条电缆上由分为主设备(Master)、从设备(Slave)
- 相应文件名
IDE\Jumper | Master | Slave |
IDE1(Primary) | /dev/hda | /dev/hdb |
IDE2(Secondary) | /dev/hdc | /dev/hdd |
- SATA/USB接口的磁盘没有一定的顺序,根据Linux内核检查到磁盘的顺序来命名
- 磁盘
- 主要由盘片、机械手臂、磁头与主轴马达组成
- 数据是写在盘片上的,盘片又可以细分为扇区(Sector)与柱面(Cylinder)两种单位,其中每个扇区为512bytes
- 磁盘的第一扇区尤为重要,它记录了磁盘的重要信息
- 主引导分区(Master Boot Record, MBR):446bytes,可安装引导加载程序的地方
- 分区表(partition table):64bytes,记录磁盘分区的状态
- 磁盘文件名后面的数字与分区所在位置有关
- “分区”实际上只是在那64bytes的磁盘空间进行操作
- 磁盘默认只能写入四组分区信息,分区信息分为主分区(Primary)和扩展分区(Extended)
- 分区的最小单位为柱面
- 系统往磁盘写入数据时,一定会参考磁盘分区表,有针对性地对某个分区进行处理
- 扩展分区的目的是用额外的扇区来记录分区信息
- 扩展分区本身不能拿来格式化,但逻辑分区可以
- 通过扩展分区指向的区块可以继续做分区的记录
- 由扩展分区继续分出来的分区称为逻辑分区
- 扩展分区至多只能有一个
- 逻辑分区的数量由操作系统和磁盘接口决定
- 在Linux系统中,IDE硬盘最多有59个逻辑分区,SATA硬盘则由11个
- 因为逻辑分区的信息都记录在扩展分区内,所以如果扩展分区被破坏,所有的逻辑分区都会被删除
- 分区表就类似一个指针数组,指向分区所在的起始柱面;而扩展分区就是用额外的空间开辟新的指针数组,扩展分区就相当于二级指针,指向这个指针数组
- 如果磁盘的第一扇区物理坏掉了,这个磁盘大概也就没有用了
- 分区时一般把扩展分区放在磁盘的末端
- 开机流程与主引导分区(MBR)
- 开机流程
- BIOS:开机主动执行的韧体,识别第一个可开机的设备
- MBR:第一个可开机的设备的第一扇区内的主引导分区块,内含引导加载程序
- 引导加载程序(Boot loader):可读取内核文件的软件,有以下功能:
- 提交菜单:用户可以选择不同的开机选项,实现多重引导
- 载入内核文件:直接指向可开机的程序区段来开始操作系统
- 转交其他loader:将引导加载功能转交给其他loader负责,这就允许将引导加载程序安装到各个分区的引导扇区(boot sector)上,而不必安装在MBR中
- 内核文件:开始操作系统的功能
- BIOS和MBR由硬件支持,boot loader是操作系统安装在MBR上的一套非常小却又完美的软件
- 多重引导
- 先加载MBR,在菜单上选择要启动的系统
- 接下来直接载入第一分区的系统,或者转交其他loader加载其他系统
- 注意:
- 实际可开机的内核文件在各个分区中
- loader只能认识自己的系统分区内的可开机内核文件,以及其他loader
- loader可以直接或间接将管理权转交另一个管理程序
- 安装多重引导,最好先安装windows再安装linux
- linux安装时,可选择将引导加载程序安装在MBR或个别分区的启动扇区(/boot),而且linux的loader可以手动设置菜单,加入windows的开机选项
- windows安装时,会主动覆盖掉MBR以及自己所在分区的启动扇区,而没有提供手动设置菜单的功能,但是可以通过spfdisk、easybcd等软件进行引导(启动驱动器务必指向挂载/boot的分区,引导分区必须设置为挂载/boot的分区)
- 目录树结构(directory tree)
- 以根目录(\)为主
- 挂载:以一个目录为进入点,进入磁盘的某个分区;这个进入点就叫挂载点
- linux默认将光驱数据放到/media/cdrom/目录下