XuSenfeng

个人站

复读了,更新随缘,有的文件不全或者图片缺失具体看我的笔记库(https://github.com/XuSenfeng/note)


主机规划与磁盘分区

目录

主机规划与磁盘分区

所有的设备都被当做一个文件进行管理, 使用SATA接口的硬盘会使用/dev/sd[a-d]进行管理

设备对应的文件名

设备 文件名
SCSI/SATA/USB硬盘机 /dev/sd[a-p]
USB闪存盘 /dev/sd[a-p] (与SATA相同)
VirtI/O界面 /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 (当前鼠标)
CDROM/DVDROM /dev/scd[0-1] (通用) /dev/sr[0-1] (通用,CentOS 较常见)/dev/cdrom (当前 CDROM)
磁带机 /dev/ht0 (IDE 界面) /dev/st0 (SATA/SCSI界面) /dev/tape(当前磁带)
IDE硬盘机 /dev/hd[a-d] (旧式系统才有)

虚拟机内的磁盘是使用仿真器产生,该仿真器产生的磁盘文件名为 /dev/vd[a-p] 系列的文件名喔

使用侦测到的顺序来决定设备文件名,并非与实际插槽代号有关

磁盘分区

所有盘片的同一个磁道我们称为柱面(Cylinder),通常那是文件系统的最小单位, 因为近来有 GPT 这个可达到 64bit 纪录功能的分区表,现在我们甚至可以使用扇区(sector)号码来作为分区单位

MSDOS (MBR)分区表格式与限制

使用的是支持 Windows 的MBR(Master Boot Record, 主要开机纪录区)的方式来处理开机管理程序与分区表!而开机管理程序纪录区与分区表则通通放在磁盘的第一个扇区

  • 主要存放的信息有两种
  1. 主要开机记录区: 安装开机管理程序的地方,有446Bytes
  2. 分区表(partition table):记录整颗硬盘分区的状态,有64 Bytes

仅有64 Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的柱面号码, 这四个分区的记录被称为主要(Primary)或延伸(Extended)分区

  • 分区的作用

在进行系统整改的时候不会影响其他的分区

加快读取的速度

  • 延伸分区

延伸分区并不是只占一个区块,而是会分佈在每个分区的最前面几个扇区来记载分区信息

硬盘的四个分区记录区仅使用到两个,P1为主要分区,而P2则为延伸分区, 延伸分区最多只能有一个, 延伸分区无法格式化

由于逻辑分区是由延伸分区继续分区出来的,所以他可以使用的柱面范围就是延伸分区所设置的范围

文件名前面四个号码都是保留给Primary或Extended用的, 所以逻辑分区的设备名称号码就由5号开始了

延伸分区之间可以直接融合, 但是某一个延伸分区不能直接和主分区进行融合

由于每组分区表仅有16Bytes 而已,因此可纪录的信息真的是相当有限的

  • 问题

没有办法抓取到 2.2T 以上的磁盘容量

MBR 仅有一个区块,若被破坏后,经常无法或很难救援

MBR 内的存放开机管理程序的区块仅 446Bytes,无法容纳较多的程序码

GPT格式的分区

目前已经有 4K 的扇区设计出现!为了相容于所有的磁盘,因此在扇区的定义上面,大多会使用所谓的逻辑区块位址(Logical BlockAddress, LBA)来处理, GPT 将磁盘所有区块以此 LBA(默认为 512Bytes )来规划,而第一个 LBA 称为 LBA0

使用了 34 个 LBA 区块来纪录分区信息

GPT 除了前面 34 个LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份

  • LBA0 (MBR 相容区块)

这个相容区块也分为两个部份,一个就是跟之前 446 Bytes 相似的区块,储存了第一阶段的开机管理程序, 放入一个特殊标志的分区,用来表示此磁盘为 GPT 格式之意

  • LBA1

纪录了分区表本身的位置与大小,同时纪录了备份用的 GPT 分区, 同时放置了分区表的检验机制码, 若有错误,还可以通过这个纪录区来取得备份的 GPT

  • LBA2-33

每个 LBA 都可以纪录 4 笔分区纪录, GPT 在每笔纪录中分别提供了 64bits 来记载开始/结束的扇区号码GPT 分区表对於单一分区来说,他的最大容量限制就会在“ 264 512Bytes = 263 1KBytes = 233TB = 8 ZB, 1ZB= 230TB

没有所谓的主、延伸、逻辑分区的概念,既然每笔纪录都可以独立存在,当然每个都可以视为是主分区!每一个分区都可以拿来格式化使用

并不是所有的操作系统都可以读取到 GPT 的磁盘分区格式, 否能够读写 GPT 格式又与开机的检测程序有关

开机流程中的BIOS 与 UEFI 开机检测程序

BIOS就是在开机的时候,计算机系统会主动执行的第一个程序, 会去分析计算机里面有哪些储存设备, BIOS会依据使用者的设置去取得能够开机的硬盘,并且到该硬盘里面去读取第一个扇区的MBR位置, 之后会执行保存的开机程序, 可读取核心文件来执行的软件

如果你使用类似 grub 的开机管理程序的话,那么就得要额外分区出一个“ BIOS boot ”的分区

BIOS与MBR都是硬件本身会支持的功能,至于Boot loader则是操作系统安装在MBR上面的一套软件

  • boot loader的主要任务

提供菜单:使用者可以选择不同的开机项目,这也是多重开机的重要功能

载入核心文件:直接指向可开机的程序区段来开始操作系统

转交其他loader:将开机管理功能转交给其他loader负责

开机管理程序除了可以安装在MBR之外,还可以安装在每个分区的开机扇区

  • 多重开机的工作情况

每个分区都拥有自己的开机扇区(boot sector)

实际可开机的核心文件是放置到各分区内的

loader只会认识自己的系统盘内的可开机核心文件,以及其他loader

loader可直接指向或者是间接将管理权转交给另一个管理程序

Linux在安装的时候,你可以选择将开机管理程序安装在MBR或各别分区的开机扇区,而且Linux的loader可以手动设置菜单, 你可以在Linux的bootloader里面加入Windows开机的选项

Windows在安装的时候,他的安装程序会主动的覆盖掉MBR以及自己所在分区的开机扇区,你没有选择的机会,而且他没有让我们自己选择菜单的功能

  • UEFI BIOS 搭配 GPT 开机的流程

BIOS 其实不懂 GPT 通过 GPT 提供相容模式才能够读写这个磁盘设备

因此这个 UEFI 大多用来作为启动操作系统之前的硬件检测、开机管理、软件设置等目的

挂载

使用的是设备树, 可以吧对应的磁盘挂载到任意的位置, 比如根目录, 家目录等位置

硬件相关的服务

  • NAT

使用Linux达到对于IP地址共享的功能, 可以用来控制用户的联网

  • SAMBA和Windows进行连接

进行用用户间的文件传输

对于系统的网卡与硬盘的大小及速度就比较重要,如果你还针对不同的使用者提供文件服务器功能,那么/home这个目录可以考虑独立出来,并且加大容量

  • Mail

Web接口的传输、大于2GB以上的容量空间及全年无休的服务等等

  • Web(WWW服务器)

使用的是Apache这套软件来达成WWW网站的功能

  • DHCP(提供用户端自动取得IP的功能)

  • FTP

主机硬盘规划

当电脑的硬件出现问题的时候, 文件数据的保护

  • 最简单的

最简单的就是仅分区出根目录与内存交换空间( / & swap )即可

交换空间就是当内存不够用的时候会用硬盘进行内存数据保存的空间, 一般情况下使用的空间会比内存大, ubuntu等的休眠会使用这个空间进行对于内存内容的备份

  • 稍微复杂

先分析这部主机的未来用途,然后根据用途去分析需要较大容量的目录,以及读写较为频繁的目录,将这些重要的目录分别独立出来而不与根目录放在一起