操作系统的启动与硬盘分区基本知识
一. 开机流程与主引导分区
1.1 开机需要的设备以及程序
- BIOS:镶嵌在主机内的,开机自动执行的一个程序,自动读取磁盘的第一个扇区内的内容–MBR
- MBR(Master Boot Record):主引导记录是硬盘内第一个扇区内的数据,内包含引导加载程序。
- 引导加载程序(Boot Loader):可以读取内核文件来执行的软件
- 内核文件:存放操作系统程序。
1.2 Boot loader提供的功能
- 提供菜单选项:用户可以选择不同的开机选项(多重引导包含的功能)
- 载入内核文件:直接执行可开机的程序段来进入操作系统
- 转交给其他Boot Loader: 转交控制权给其他Loader
磁盘的第一个扇区存放着MBR,MBR中的Boot loader被开机后的BIOS自动执行,其余分区内的Boot扇区内可以存放其他Boot Loader用来加载其他操作系统。
为什么安装windows 和 linux双系统时,最好先安装windows,再安装linux?
- 安装windows时,window会直接覆盖原有的MBR记录。如果磁盘中已经存在linux,那么后安装windows,MBR内的Boot loader直接丢失,找不到加载linux内核的Boot leader,导致linux系统丢失。
- 而安装Linux时,可以选择将Boot loader写到MBR或者其他分区的BOOT SECTOR.而且Linux的Boot loader可以手动设置菜单,所以你可以将window的boot loader加入到Linux 的loader中.
二. 磁盘的分区
可以参考我之前的博客:Linux的磁盘和文件系统
2.1 基本原理
- 分区就是用多条记录来逻辑分割磁盘,便于对不同类型的文件进行管理。比如window操作系统下的C,D,E,F盘就是对磁盘的逻辑分割形成的分区。
2.2 实现原理
- 通过在磁盘的第一个扇区(0号扇区)内的一个64Byte大小(固定)的分区表,记录每个分区的信息,磁盘分区以cylinder为基本单位。
- 每条分区信息占16Byte,64 = 16×4,可以看出默认只能写入四组分区信息。
- 这4组分区信息称为主分区(Primary)或者扩展分区(Extensible),最多有一个扩展分区(操作系统的限制)。
- 主分区直接指向磁盘,不可在分。扩展分区用来扩充64Byte分区表的容量,以容纳更多分区。
- 将扩展分区的第一个扇区用来记录额外的分区信息,这个扇区记录的分区称为逻辑分区。
2.3 分区方案
分区方案取决于具体需求:
- 如果你只想要四个分区,以后也不会增加分区。那么分区时只分为4个主分区(4P)就可以了。
- 如果你不确定以后是否会需要其他分区,可以将系统分为n(n<4)主分区 + 1个扩展分区。
2.4 分区工具
- Linux常用fdisk命令进行分区,具体参数输入man fdisk查看。
2.4 分区挂载
- linux系统规划时,对磁盘进行分区后,我们需要将分好的区挂载到某个目录才能来访问该分区。
- 不同的分区可以采用不同的文件格式,常见的文件格式有ex2,ex3k,fat格式
- 对分区进行格式化后,需要将它挂载在某个目录下。
- Linux下用mount命令进行挂载
2.4 Linux系统安装时常用分区
| 挂载目录 | 磁盘分区大小 | 分区类型 | 用途 | 参考事项 |
|---|---|---|---|---|
| /boot | 100MB | primary | 存放操作系统内核引导文件 | /boot分区必须在整块硬盘的最前面。/boot分区如果太小,导致系统内核文件都存放不下,就会导致安装失败。但是也不用太大,因为多余的直接浪费掉,建议采用100MB足够。 |
| / | 10GB | primary | 根目录 | 如果/分区太小,那么会导致最后写不进去文件。 |
| /home | 10GB | primary | 系统默认的用户主文件夹,当你登录时默认进入/home/username,其中 username是你登录时的用户名。 | 取决于你的主机用途,决定大小。 |
| swap | 5GB | logical | 当操作系统内存不够时,将一部分暂时不用的文件保存到swap中,以便内存中能加载其他文件。 | swap的大小取决与你的物理内存(Main Memory)大小,如果你的物理内存太小,那么swap分区可能会被大量使用。如果物理内存很充足,那么分区大小可以小一点,节约磁盘空间。 |
| /var | 10GB | logical | 存放一些暂时文件 | 建议没必要给过多的存储空间,除非你知道你知道它是用来具体存放什么文件的 |
本文介绍了开机流程,包括BIOS、MBR、Boot Loader的角色和功能,以及Boot Loader如何加载内核文件。接着详细讨论了硬盘分区的基本原理、实现方式、分区方案选择,以及Linux的分区工具fdisk。此外,还提到了分区挂载和Linux系统安装时的分区策略。

980

被折叠的 条评论
为什么被折叠?



