linux学习-磁盘分区
各个元件或设备在Linux下面都是“一个文件!
几乎所有的硬件设备文件都在/dev这个目录内,常见的设备与其在Linux当中的文件名:
磁盘分区:
所有盘片的同一 个磁
各硬件在Linux中的文件: 各个元件或设备在Linux下面都是“一个文件! 几乎所有的硬件设备文件都在/dev这个目录内,常见的设备与其在Linux当中的文件名: 磁盘分区: 所有盘片的同一 个磁道我们称为柱面 (Cylinder), 通常那是文件系统的最小单位,也就是分区的最小单位。 两种分区表格式:MBR 和 GPT MBR中开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区, 这个扇区通常是 512Bytes 的大小:主要开机记录区(Master Boot Record, MBR)可以安装开机管理程序的地方,有446 Bytes;分区表(partition table)记录整颗硬盘分区的状态,有64 Bytes。 由于分区表所在区块仅有64 Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区 段的启始与结束的柱面号码。 若将硬盘以长条形来看,然后将柱面以直条图来看,那么那64 Bytes的记录区段有点像下面的图示: 数字与该分区所在的位置有关 如何将一颗硬盘分区成十个以上的分区的? 由于分区表就只有64 Bytes而已,最多只能容纳四笔分区的记录, 这四个分区的记录被称为 主要(Primary)或延伸(Extended)分区。延伸分区的想法是: 既然第一个扇区所在的分区表只能记录四笔数据, 那我 可否利用额外的扇区来记录更多的分区信息?实际上图示有点像下面这样: 实际上延伸分区并不是只占一个区块,而是会分佈在每个分区的最前面几个扇区来记载 分区信息的!延伸分区的目的是使用额外的扇区来记录分区信息,延伸分区本身并不能被 拿来格式化。然后我们可以通过延伸分区所指向的那个区块继续作分区的记录。 如上图右下方那个区块有继续分区出五个分区, 这五个由延伸分区继续切出来的分区,就被 称为逻辑分区(logical partition)。 同时注意一下,由于逻辑分区是由延伸分区继续分区出 来的,所以他可以使用的柱面范围就是延伸分区所设置的范围喔! 同样的,上述的分区在Linux系统中的设备文件名分别如下: So: GPT 磁盘分区表在扇区的定义上面, 大多会使用所谓的逻辑区块位址(Logical Block Address, LBA)来处理。GPT 将磁盘所有区块以此 LBA(默认为 512Bytes ) 来规划, 而第一个 LBA 称为 LBA0 (从 0 开始编号)。 GPT 使用了 34 个 LBA 区块来纪录分区 信息!除此之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份!这样或许会比较安全些吧! 详细的结构有点像下面的模样: BIOS 与 UEFI 开机检测程序 1、BIOS + MBR/GPT 的开机流程 CMOS是记录各项硬件参 数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个固件(再次说明, 固件就 是写入到硬件上的一个软件程序)。这个BIOS就是在开机的时候,计算机系统会主动执行的 第一个程序了! 接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的设 置去取得能够开机的硬盘, 并且到该硬盘里面去读取第一个扇区的MBR位置。 MBR这个仅 有446 Bytes的硬盘容量里面会放置最基本的开机管理程序, 此时BIOS就功成圆满,而接下 来就是MBR内的开机管理程序的工作了。 这个开机管理程序的目的是在载入(load)核心文件, 由于开机管理程序是操作系统在安装 的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件, 然后接 下来就是核心文件的工作,开机管理程序也功成圆满,将之后的工作就交给大家所 知道的操作系统啦! 如果你的分区表为 GPT 格式的话,那么 BIOS 也能够从 LBA0 的 MBR 相容 区块读取第一阶段的开机管理程序码, 如果你的开机管理程序能够认识 GPT 的话,那么使用 BIOS 同样可以读取到正确的操作系统核心喔!换句话说, 如果开机管理程序不懂 GPT ,例 如 Windows XP 的环境,那自然就无法读取核心文件,开机就失败了 由于 LBA0 仅提供第一阶段的开机管理程序码,因此如果你使用类似 grub(多重开机引导) 的开机管理程序的话,那么就得要额外分区出一个“ BIOS boot ”的分区, 这个分区才能够放置其他开机过程所需的程序码! BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操 作系统安装在MBR上面的一套软件了。由于MBR仅有446 Bytes而已,因此这个开机管理程序是非常小而美的。 这个boot loader的主要任务有下面这些项目: 计算机系统里面可能具有两个以上的开机管理程序:开机管理程序除了可以安装在MBR之外, 还可以安装在每个分区的开机扇区(boot sector) 举一个例子来说,假设你的个人计算机只有一个硬盘,里面切成四个分区,其中第一、 二分区分别安装了Windows及Linux, 你要如何在开机的时候选择用Windows还是Linux开机 呢?假设MBR内安装的是可同时认识Windows/Linux操作系统的开机管理程序, 那么整个流 程可以图示如下: MBR的开机管理程序提供两个菜单,菜单一(M1)可以直接载入 Windows的核心文件来开机; 菜单二(M2)则是将开机管理工作交给第二个分区的开机扇区 (boot sector)。当使用者在开机的时候选择菜单二时, 那么整个开机管理工作就会交给第 二分区的开机管理程序了。 当第二个开机管理程序启动后,该开机管理程序内(上图中)仅 有一个开机菜单,因此就能够使用Linux的核心文件来开机。 “如果要安装多重开机, 最好先安装Windows再安装 Linux”呢?这是因为: Linux在安装的时候,你可以选择将开机管理程序安装在MBR或各别分区的开机扇区, 而 且Linux的loader可以手动设置菜单(就是上图的M1, M2...),所以你可以在Linux的boot loader里面加入Windows开机的选项; Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分区的开机扇 区Linux 磁盘管理,你没有选择的机会, 而且他没有让我们自己选择菜单的功能。 因此,如果先安装Linux再安装Windows的话,那MBR的开机管理程序就只会有Windows的项 目,而不会有Linux的项目 (因为原本在MBR内的Linux的开机管理程序就会被覆盖掉)。 那 需要重新安装Linux一次吗?当然不需要,你只要用尽各种方法来处理MBR的内容即可。 例如 利用Linux的救援模式来挽救MBR 2、UEFI + GPT 开机流程 Linux安装模式下的磁盘分区 文件系统与目录树的关系(挂载) 所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下; 也就是 说,进入该目录就可以读取该分区的意思。这个动作我们称为“挂载”,那个进入点的目录我们 称为“挂载点”。 由于整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分区 的。 至于其他的目录则可依使用者自己的需求来给予挂载到不同的分区。我们以下图来作为 一个说明: 上图中假设我的硬盘分为两个分区,partition 1是挂载到根目录,至于partition 2则是挂载 到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到 partition 2的,如果不是放在/home下面的目录, 那么数据就会被放置到partition 1了 主机的服务规划与硬件的关系 主机硬盘的主要规划最简单的分区方法: 仅分区出根目录与内存交换空 间( / & swap )即可。 如果任何一个小细节坏掉(例如坏轨的产生),你的根目录将可能整个的损毁~挽救方面较困难!稍微麻烦一点的方式: 分析这部主机的用途,然后根据用途去分析需要较大容量的目录, 以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起, 那当这些读写较频繁的磁盘分区有问题时,至少不会 影响到根目录的系统数据,那挽救方面就比较容易啊! 在默认的CentOS环境中,下面的目录是比较符合容量大且(或)读写频繁的目录啰: 分区一:启动分区 /boot Boot 存放开机文件,一般为100M左右(50M~200M) 分区二:根分区 / 根目录(必须与/bin, /sbin, /lib, /dev, /etc这5个目录在同一分区,不可挂载在不同分区,否则系统无法正常启动) 分区三:用户分区 /home Home除root用户之外其他用户的home目录。 分区四:交换分区 swap Swap 交换分区、虚拟内存,一般为物理内存的1.5~2倍。 (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |