Linux-Ch06 文件系统与系统引导

磁盘与文件系统

磁盘基本原理

  • Linux系统中的所有设备都被抽象成文件,存在/dev目录下
  • 分区:将一个硬盘在逻辑上分为几个区,每个区当成独立的磁盘使用,主流的分区技术有MBR和GPT
  • Linux中分区被表示为:设备名称+分区号,如sda1

MBR:

Master Boot Record,建立在BIOS技术基础上的传统分区机制

  • 支持32位和64位系统
  • 支持分区数量有限(4个主分区)
  • 寻址空间为32位,最大支持2TB的硬盘

GPT:

GUID Partition Table,建立在UEFI技术基础上的新分区机制。

  • 解决MBR机制的缺点

  • 必须使用64位系统

  • 支持超过2TB的硬盘

文件系统

  • 磁盘分区上创建文件系统的过程称为格式化

  • 操作系统必须通过文件系统才能实现对数据和文件的管理

  • 常见文件系统有:fat、fat32、ntfs、ext2-4、xfs、HFS等

将一个新磁盘添加到Linux系统需要三个步骤:

  1. 使用fdisk(gdisk)命令进行磁盘管理

  2. 对分区指定文件系统(mke2fs),du命令查看

  3. 挂载文件系统(mount命令)

    磁盘分区设置好文件系统后必须挂载到一个目录下才能使用

索引式文件系统

Ext2文件系统

  • 超级区块:记录文件系统的整体信息
  • inode:记录文件的属性,一个文件占用一个inode
  • 数据区块:实际保存文件的内容,一个文件可能占用一个或多个数据区块

ln命令:创建和使用链接文件

磁盘阵列

RAID,Redundant Arrays of Inexpensive Disks

  • 通过将多个较小的磁盘整合成一个大磁盘的技术
  • 整合后的大磁盘称磁盘阵列,可用于储存数据、备份、迁移、容错等用途
  • RAID-0、RAID-1、RAID 0+1、RAID 1+0、RAID 5等类型

关键概念和技术:

  • 镜像:一种冗余技术,为磁盘提供保护功能,防止磁盘发送故障而造成数据损失
  • 数据条带:将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理
  • 数据校验:检测数据错误,在能力允许的前提下进行数据重构

Linux系统引导和启动

系统引导的基本概念

现代操作系统的启动一般分两个阶段:系统引导和系统启动

  • 系统引导:开始于打开计算机电源,结束于内核初始化完成
  • 系统启动:init或systemd进程接管工作,运行相关程序,直到用户可以操作计算机

LInux系统引导流程:

  1. 通电自检:BIOS/POST程序
  2. 主引导记录MBR
  3. 引导程序GRUB
  4. 加载操作系统内核
  5. 运行第一个进程init或systemd

init进程机制和systemd机制

init启动机制:

  • 将启动进程分为三种类型:init进程、独立启动进程和超级守护进程

  • init机制启动其他服务范例:

    1
    2
    3
    sudo /etc/init.d/apache2 start
    # 或
    service apache2 start
  • 缺点:启动时间长,因为是串行启动;启动脚本复杂

systemd机制:解决init机制的缺点:

  • systemd管理单一服务:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    systemctl [命令] [服务名]
    # 例子
    sysemctl start apache

    # start:启动服务
    # stop:停止服务
    # restart:重启服务
    # reload:不关闭服务的前提下重新加载配置文件
    # enable:设置开机启动
    # disable:设置开机不启动
  • systemd管理多个服务

    1
    2
    3
    4
    systemctl [命令] [--type=类型] [--all]
    # 命令:
    # list-units:列出所有已经启动的服务
    # list-unit-files:列出所有已经启动的服务及相关文件列表