Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

《鸟哥的Linux私房菜(基础篇)》第2章 主机规划和磁盘分区 #17

Open
qunzi0214 opened this issue Nov 12, 2020 · 0 comments
Labels
read book 读书笔记

Comments

@qunzi0214
Copy link
Owner

qunzi0214 commented Nov 12, 2020

硬件

硬件支持

Red Hat 硬件支持
openSUSE 硬件支持
Linux 对笔记本电脑的支持

常见设备在Linux中的文件名

设备 在Linux中的文件名
SCSI、SATA、USB /dev/sd[a-p]
Virtio接口 /dev/vd[a-p](虚拟机内)
软盘驱动器 /dev/fd[0-7]
鼠标 /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(当前磁带)

虚拟机相关

VirtualBox官网
Fedora官网教程

磁盘分区

MBR(Master Boot Record)

早期的硬盘第一个扇区(512B)包涵启动引导程序(446B)和分区表(64B)
分区表记录整个硬盘分区状态,64B最多仅能有四组记录区,每组记录区记录了该区的起始与结束柱面号码

假设硬盘设备文件名为 /dev/sda 那么这4个分区文件名在Linux系统中如下:

  • P1: /dev/sda1
  • P2: /dev/sda2
  • P3: /dev/sda3
  • P4: /dev/sda4

最初的四组分区记录,可以设置为主要分区和扩展分区(最多一个),而扩展分区可以继续拆分为逻辑分区
扩展分区的目的是用额外的扇区来记录分区信息,本身并不能拿来格式化
假设初始分区分为:P1(Primary) P2(Extended),同时P2拆分为 L1、L2、L3(logical partition)
则在Linux系统中,设备文件名如下:(前面四个号码都是保留给主要分区和扩展分区使用的)

  • P1: /dev/sda1
  • P2: /dev/sda2
  • L1: /dev/sda5
  • L2: /dev/sda6
  • L3: /dev/sda7

总结:

  • 主要分区和扩展分区最多可以有4个;
  • 扩展分区最多有1个;
  • 逻辑分区是由扩展分区继续划分的分区;
  • 能够格式化后存储数据的是主要分区和逻辑分区;
  • 逻辑分区的数量限制依操作系统不同而不同
  • 无法使用2.2TB以上的磁盘容量;
  • MBR仅有一个扇区、若损坏,经常无法修复
  • MBR内存放的启动引导程序仅446B,无法存储较多的程序代码

GPT(GUID partition table)

目前已经有4K的扇区设计出现,为了兼容所有硬盘,在扇区的定义上,会使用逻辑区块地址(LBA, Logical Block Address)
GPT将磁盘所有区块以LBA来规划,使用了34个LBA区块来记录分区信息,同时将磁盘最后34个LBA区块用来做备份

  • LBA0(MBR兼容区块)存储了第一阶段的启动程序,用一个特殊标识符来表示此磁盘为GPT格式
  • LBA1(GPT表头记录)记录分区表本身的位置和大小、备份区块的位置、分区表的校验码(CRC32)
  • LBA2-33(实际记录的分区信息)每个LBA可以记录4组分区记录,所以默认总共可以有 4 * 32 = 128 组分区记录

BIOS和UEFI

BIOS搭配GPT/MBR启动流程:

  • BIOS:启动主动执行的固件,会认识第一个可启动的设备;
  • MBR:第一个可启动设备的第一个扇区内的主引导记录块,内涵启动引导代码;
  • 启动引导程序(boot loader):一个可读取内核文件来执行的软件;
  • 内核文件:开始启动操作系统

Boot loader的主要任务:

  • 提供选项:用户可以选择不同启动项,这也是多重引导的重要功能;
  • 加载内核文件:直接指向可执行的程序来启动操作系统;
  • 转交给其他启动引导程序(多系统):启动引导程序除了可以安装在MBR以外,还可以安装在每个分区的启动扇区;

UEFI BIOS(Unified Extensible Firmware Interface, 统一可扩展固件接口)搭配GPT/MBR启动流程:

相比于传统的BIOS,UEFI更像一个小型操作系统。某些时候,需要将UEFI的安全启动功能(secure boot)关闭,才能正常启动Linux系统。虽然UEFI可以直接获取GPT分区表,但是最好有BIOS boot分区。为了与windows兼容,并且提供其他第三方厂商使用的UEFI存储空间,需要格式化一个FAT格式的文件系统分区,通常512MB - 1GB

Linux安装时,磁盘分区的选择

文件系统和目录树的关系

将磁盘分区的数据防止在某个目录下,进入该目录就可以读取分区,这个操作被称为“挂载”。整个Linux系统最终要的就是根目录 root(/) ,因此根目录一定会挂载个某个分区,其他目录则可以挂载在不同的分区。可以通过对路径反向追踪来判断某个文件在哪个分区:即哪一级目录先被查到是挂载点,则该文件属于这个挂载点对应的分区

挂载点与磁盘分区的规划

懒人划分:

  • 划分“/”以及“交换分区”
  • 预留一些磁盘容量作为备用

麻烦一点的划分:根据主机服务来确定硬盘的规划

主机服务规划与硬件关系

  • NAT(IP分享器):Linux NAT可以额外安装一些分析软件,控制带宽或者流量。通常对网卡要求较高
  • SAMBA(网络邻居):没有客户端数量限制、适合用于小型环境的文件服务器。通常需要注意网卡和硬盘的性能,/home
    这个目录可以考虑独立出来挂载,并加大容量
  • Mail(邮件服务器):通常需要注意网卡和硬盘的性能,/var这个目录可以考虑独立出来挂载,并加大容量
  • Web(www服务器):通常需要考虑CPU和内存的性能
  • DHCP(提供客户端自动获取IP的功能):对硬件要求不高
  • FTP:通常需要注意网卡和硬盘的性能
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
read book 读书笔记
Projects
None yet
Development

No branches or pull requests

1 participant