当前位置:首页>Linux>Linux 磁盘分区与挂载实操,从此不再迷糊

Linux 磁盘分区与挂载实操,从此不再迷糊

  • 2026-06-30 15:29:40
Linux 磁盘分区与挂载实操,从此不再迷糊

Linux 磁盘分区与挂载实操,从此不再迷糊

背景与适用场景

磁盘分区和挂载是 Linux 运维中最基础但也最容易出问题的操作之一。新服务器上线需要分区格式化、数据盘需要挂载、磁盘满了需要扩容、磁盘故障需要更换,这些场景每个运维工程师都会遇到。

磁盘分区是将一块物理磁盘划分成多个逻辑区域的过程,每个区域可以有不同的文件系统、不同的挂载点、不同的用途。挂载则是将分区关联到目录,使得该目录可以访问分区上的数据。

常见的分区场景包括:新服务器初始化、数据盘挂载、迁移数据到新磁盘、扩容现有分区、修复损坏的文件系统等。挂载相关的操作则包括手动挂载、自动挂载配置、挂载选项调整、卸载等。

本文面向初中级运维工程师,详细讲解 Linux 磁盘分区的概念、工具选择、分区方案,以及挂载的各种场景和操作步骤。


第一部分:磁盘分区基础概念

磁盘和分区的关系

Linux 中一切皆文件,磁盘设备也是如此。常见的磁盘设备文件:

  • /dev/sda:第一块 SCSI/SATA 磁盘
  • /dev/sdb:第二块 SCSI/SATA 磁盘
  • /dev/nvme0n1:第一块 NVMe 磁盘
  • /dev/vda:第一块虚拟磁盘(KVM 常用)

分区则是在磁盘上划分的逻辑区域,分区编号从 1 开始:

  • /dev/sda1:第一块磁盘的第一个分区
  • /dev/sda2:第一块磁盘的第二个分区
  • /dev/sdb1:第二块磁盘的第一个分区

分区表类型

MBR 分区表

MBR(Master Boot Record)是传统的分区表格式,位于磁盘的第一个扇区(512 字节)。

特点:

  • 最大支持 2TB 的磁盘容量
  • 最多支持 4 个主分区,或 3 个主分区 + 1 个扩展分区
  • 扩展分区可以划分多个逻辑分区
  • 兼容性好,老旧系统支持良好

限制:

  • 磁盘容量大于 2TB 时无法使用
  • 分区数量有限制

GPT 分区表

GPT(GUID Partition Table)是现代分区表格式,是 UEFI 规范的一部分。

特点:

  • 支持超过 2TB 的磁盘容量(最大 18EB)
  • 理论上支持无限多个分区(实际受操作系统限制,Linux 通常限制为 128 个)
  • 每个分区有唯一的 GUID
  • 包含备份分区表和 CRC 校验,数据更安全
  • 需要 UEFI 引导或 BIOS + GPT 兼容模式

选择建议:

  • 磁盘容量小于 2TB:可以使用 MBR 或 GPT
  • 磁盘容量大于 2TB:必须使用 GPT
  • 新建分区:建议使用 GPT
  • 兼容老旧系统:考虑 MBR

分区类型

Linux 常见的分区类型(MBR 分区表):

类型代码
名称
用途
83
Linux
普通 Linux 分区
82
Linux swap
交换分区
8e
Linux LVM
LVM 逻辑卷
fd
Linux RAID
RAID 阵列

Linux 常见的分区类型(GPT 分区表):

类型 GUID
名称
用途
28732AC1-11D5-4D0C-8A33-4BB7C3D0D0B7
Linux filesystem
普通 Linux 分区
0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
Linux swap
交换分区
E6D6D379-F507-44C2-A23C-238F2A3AF928
Linux LVM
LVM 逻辑卷
A2D3D0F5-B8C4-45C8-92D2-5D6B5E7F8A9B
Linux RAID
RAID 阵列

查看磁盘和分区

查看所有磁盘设备:

lsblk

输出示例:

NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   100G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0    99G  0 part
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0   7.8G  0 lvm  [SWAP]
  └─centos-home 253:2    0  41.2G  0 lvm  /home
sdb               8:16   0   500G  0 disk
sr0              11:0    1  1024M  0 rom

查看磁盘详细信息:

fdisk -l /dev/sda

查看分区表类型:

 parted /dev/sda print | grep "Partition Table"

查看 SCSI 设备:

cat /proc/scsi/scsi

第二部分:分区工具详解

fdisk 使用详解

fdisk 是最传统的分区工具,适合 MBR 分区表。

查看分区表

fdisk -l /dev/sda

进入交互模式

fdisk /dev/sdb

交互命令:

  • p:打印当前分区表
  • n:新建分区
  • d:删除分区
  • t:修改分区类型
  • w:保存并退出
  • q:不保存退出
  • m:显示帮助

新建分区示例

# 进入 fdisk 交互界面
fdisk /dev/sdb

# 输入 m 查看帮助
Command (m forhelp): m

# 输入 p 查看当前分区
Command (m forhelp): p

# 输入 n 新建分区
Command (m forhelp): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151): +10G

# 输入 w 保存
Command (m forhelp): w

删除分区示例

fdisk /dev/sdb
Command (m forhelp): p  # 先查看分区
Command (m forhelp): d  # 删除分区
Partition number (1-4): 1  # 输入分区号
Command (m forhelp): w  # 保存

修改分区类型示例

fdisk /dev/sdb
Command (m forhelp): t  # 修改类型
Partition number (1-4): 1  # 选择分区
Hex code (type L to list codes): 8e  # Linux LVM 类型码
Changed system type of partition 1 to 8e (Linux LVM)
Command (m forhelp): w  # 保存

parted 使用详解

parted 是更现代的分区工具,支持 MBR 和 GPT。

查看分区表

parted /dev/sdb print

选择磁盘

parted /dev/sdb

交互命令:

  • print:显示分区表
  • mklabel:创建分区表(msdos=gpt,gpt=gpt)
  • mkpart:创建分区
  • rm:删除分区
  • resize:调整分区大小
  • set:设置分区标志
  • quit:退出

创建 GPT 分区表

parted /dev/sdb mklabel gpt

创建分区示例

# 创建主分区(GPT)
parted /dev/sdb mkpart primary xfs 0% 100%

# 创建分区并指定文件系统
parted /dev/sdb mkpart primary ext4 0% 50G

# 创建交换分区
parted /dev/sdb mkpart primary linux-swap 50G 60G

# 创建数据分区(使用剩余空间)
parted /dev/sdb mkpart primary xfs 60G 100%

删除分区

parted /dev/sdb rm 1  # 删除分区号 1

调整分区大小(谨慎操作)

# 先卸载
umount /dev/sdb1

# 调整大小
parted /dev/sdb resizepart 1 100G

gdisk 使用详解

gdisk 是专门用于 GPT 分区表的工具,界面和 fdisk 类似。

查看分区表

gdisk -l /dev/sdb

进入交互模式

gdisk /dev/sdb

交互命令:

  • p:打印分区表
  • n:新建分区
  • d:删除分区
  • t:修改分区类型
  • w:保存
  • q:退出

创建 GPT 分区示例

gdisk /dev/sdb
Command (m forhelp): n
Partition number (1-128, default 1): 1
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 2048
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +50G
Current type is 'Linux filesystem'
Hex code or GUID (L to show all, Enter = 8300): 8300
Command (m forhelp): w

工具选择建议

场景
推荐工具
说明
MBR 分区(<2TB)
fdisk
简单易用
GPT 分区(>2TB)
parted 或 gdisk
parted 更现代,gdisk 兼容性好
脚本化分区
parted
支持非交互模式
修复损坏分区表
fdisk 或 parted
可以查看但不能完全修复 GPT
LVM 前期准备
fdisk 或 parted
创建 PV 用的分区

第三部分:文件系统创建与格式化

常见文件系统

Linux 支持多种文件系统:

文件系统
特点
适用场景
ext4
Linux 传统文件系统,稳定可靠
通用场景,系统盘
xfs
高性能,大文件支持好
日志、大型数据库、大容量存储
btrfs
支持快照、压缩、校验和
需要数据保护的高端场景
vfat
兼容 Windows
UEFI 启动分区、跨平台存储
ntfs
Windows NTFS
Linux 访问 Windows 分区(需要 ntfs-3g)
swap
交换分区
虚拟内存

创建 ext4 文件系统

# 格式化分区
mkfs.ext4 /dev/sdb1

# 指定卷标
mkfs.ext4 -L "data" /dev/sdb1

# 指定块大小(默认 4096 字节)
mkfs.ext4 -b 4096 /dev/sdb1

# 指定 inode 数量(默认自动计算)
mkfs.ext4 -N 1000000 /dev/sdb1

# 快速格式化(不检查坏块)
mkfs.ext4 -E lazy_itable_init=1 /dev/sdb1

# 完整格式化(带坏块检查)
mkfs.ext4 -c /dev/sdb1

创建 xfs 文件系统

# 格式化分区
mkfs.xfs /dev/sdb1

# 指定卷标
mkfs.xfs -L "data" /dev/sdb1

# 指定数据块大小(默认 4096 字节)
mkfs.xfs -b size=4096 /dev/sdb1

# 指定 inode 大小和数量
mkfs.xfs -i size=512 -i maxpct=5 /dev/sdb1

# 快速格式化
mkfs.xfs -f /dev/sdb1

ext4 和 xfs 的选择:

  • 通用场景、系统盘:ext4
  • 大文件存储、日志系统、数据库:xfs
  • 需要快照和数据校验:btrfs(但生产环境使用前请充分测试)

创建 swap 分区

# 格式化为 swap
mkswap /dev/sdb2

# 启用 swap 分区
swapon /dev/sdb2

# 禁用 swap 分区
swapoff /dev/sdb2

# 查看 swap 状态
swapon -s
free -h

查看文件系统信息

# 查看文件系统 UUID 和卷标
blkid /dev/sdb1

# 查看 ext4/ext3/ext2 超级块信息
dumpe2fs -h /dev/sdb1

# 查看 xfs 文件系统信息
xfs_info /dev/sdb1

# 查看磁盘使用情况
df -h

# 查看 inode 使用情况
df -i

文件系统修复

ext4 文件系统修复:

# 卸载分区
umount /dev/sdb1

# 检查并修复(通常需要按 y 确认)
fsck.ext4 -f /dev/sdb1

# 自动修复(跳过交互)
fsck.ext4 -p /dev/sdb1

# 强制修复(危险,可能丢失数据)
fsck.ext4 -fy /dev/sdb1

xfs 文件系统修复:

# 卸载分区
umount /dev/sdb1

# 检查 xfs 文件系统(xfs 只支持检查,不支持修复)
xfs_check /dev/sdb1

# 如果需要修复,可以尝试
xfs_repair /dev/sdb1

注意:文件系统修复前最好先备份数据。修复操作有风险,可能导致数据丢失。


第四部分:挂载操作详解

挂载基础概念

挂载是将分区关联到目录的过程。挂载后,访问该目录就相当于访问分区上的数据。

关键概念:

  • 设备:要挂载的分区,如 /dev/sdb1
  • 挂载点:目录,即设备挂载到的位置
  • 文件系统类型:分区的文件系统格式,如 ext4、xfs

基本挂载操作

# 基本挂载
mount /dev/sdb1 /mnt/data

# 指定文件系统类型挂载
mount -t ext4 /dev/sdb1 /mnt/data

# 以只读模式挂载
mount -r /dev/sdb1 /mnt/data

# 重新挂载(修改选项)
mount -o remount,rw /mnt/data

查看挂载状态

# 查看所有挂载
mount

# 查看特定挂载点
mount | grep /mnt/data

# 使用 df 查看(更直观)
df -h

# 使用 lsblk 查看
lsblk

卸载操作

# 卸载(普通卸载)
umount /mnt/data

# 强制卸载(设备忙时)
umount -f /mnt/data

# 延迟卸载(确保数据写完后再卸载)
umount -l /mnt/data

注意:卸载前确保没有进程还在使用该文件系统。

查看正在使用文件系统的进程:

lsof +D /mnt/data
# 或
fuser -v /mnt/data

挂载选项

常用挂载选项:

选项
说明
适用场景
defaults
使用默认选项(rw,suid,dev,exec,auto,nouser,async)
默认
ro
只读
安全、只读场景
rw
读写
默认
suid
允许执行 SUID
默认,安全性要求高时关闭
nosuid
不允许执行 SUID
提高安全性
dev
解析设备文件
默认
nodev
不解析设备文件
提高安全性
exec
允许执行二进制文件
默认
noexec
不允许执行二进制文件
提高安全性
auto
开机自动挂载
适用于 /etc/fstab
noauto
不自动挂载
需要手动挂载
user
允许普通用户挂载
仅适用于可移动介质
users
允许任何用户挂载
多人使用环境
async
异步 I/O
提高性能
sync
同步 I/O
数据安全性要求高
noatime
不更新 inode 访问时间
提高性能
nodiratime
不更新目录 inode 访问时间
提高性能
relatime
相对访问时间更新
折中方案
errors=remount-ro
错误时重新挂载为只读
文件系统错误处理

示例:

# 安全挂载选项(适合公开目录)
mount -o nosuid,noexec,nodev,ro /dev/sdb1 /mnt/shared

# 高性能挂载选项
mount -o noatime,nodiratime,async /dev/sdb1 /mnt/data

# 恢复读写权限
mount -o remount,rw /mnt/data

第五部分:自动挂载配置

/etc/fstab 基础

/etc/fstab 配置文件定义了开机时自动挂载的文件系统。

格式:

# <设备>                                   <挂载点>      <类型>  <选项>                            <dump> <pass>
UUID=550e8400-e29b-41d4-a716-446655440000 /boot          ext4    defaults                          1      2
UUID=b2a7d3f0-1234-5678-9abc-def012345678 /              xfs     defaults                          0      1
UUID=c8b9a1e2-3456-7890-abcd-ef0123456789 /data          ext4    defaults,noatime                 0      2
/dev/sdb1                                  /mnt/data      ext4    defaults,noatime                 0      2
tmpfs                                      /dev/shm       tmpfs   defaults,noexec,nosuid,nodev    0      0

字段说明:

  • 设备:设备名、UUID、LABEL 都可以
  • 挂载点:目录路径
  • 类型:文件系统类型,如 ext4、xfs、tmpfs
  • 选项:逗号分隔的挂载选项
  • dump:是否使用 dump 备份(0=不备份,1=备份)
  • pass:fsck 检查顺序(0=不检查,1=根分区,2=其他分区)

获取设备 UUID 和 LABEL

# 查看所有设备的 UUID
blkid

# 查看特定设备
blkid /dev/sdb1

# 示例输出
/dev/sdb1: UUID="550e8400-e29b-41d4-a716-446655440000" TYPE="ext4" PARTUUID="12345678-01"

添加自动挂载

编辑 /etc/fstab:

vi /etc/fstab

添加一行:

UUID=550e8400-e29b-41d4-a716-446655440000 /data ext4 defaults,noatime 0 2

测试 fstab 配置

修改 fstab 后,务必测试配置是否正确:

# 重新挂载所有条目(不重启)
mount -a

# 验证挂载
df -h

# 如果失败,系统可能无法启动!

使用 LABEL 挂载

# 给分区设置卷标
e2label /dev/sdb1 "data"
xfs_admin -L "data" /dev/sdb1

# 在 fstab 中使用 LABEL
LABEL=data /data ext4 defaults,noatime 0 2

使用 tmpfs(内存文件系统)

tmpfs 是基于内存的文件系统,断电后数据丢失,适合存储临时数据。

# 在 fstab 中添加
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0

# 添加 tmpfs 挂载
tmpfs /tmp/app tmpfs defaults,size=2G,noexec,nosuid,nodev 0 0

常用 tmpfs 选项:

选项
说明
size
文件系统大小,如 2G、50%
nr_blocks
块数量(与 size 二选一)
mode
权限,如 1777
noexec
不允许执行
nosuid
不允许 suid

第六部分:LVM 逻辑卷管理

LVM 基础概念

LVM(Logical Volume Manager)是 Linux 下的软件卷管理工具,提供了比传统分区更灵活的管理方式。

核心概念:

  • **Physical Volume (PV)**:物理卷,即物理磁盘或分区
  • **Volume Group (VG)**:卷组,多个物理卷组成的存储池
  • **Logical Volume (LV)**:逻辑卷,从卷组中划分出来的逻辑分区

优势:

  • 可以动态调整分区大小
  • 支持快照备份
  • 可以跨磁盘扩展
  • 热添加新磁盘

创建 LVM

1. 将分区转为 LVM 类型

# 使用 fdisk 创建分区
fdisk /dev/sdb

# 在 fdisk 中将分区类型改为 Linux LVM (8e)
# 输入 t,然后输入 8e

# 或者使用 parted
parted /dev/sdb set 1 lvm on

2. 创建物理卷 (PV)

# 创建 PV
pvcreate /dev/sdb1

# 查看 PV
pvdisplay
pvs

3. 创建卷组 (VG)

# 创建 VG
vgcreate vg_data /dev/sdb1

# 查看 VG
vgdisplay
vgs

# 添加更多 PV 到 VG
vgextend vg_data /dev/sdc1

# 从 VG 移除 PV(需要先迁移数据)
pvmove /dev/sdb1
vgreduce vg_data /dev/sdb1

4. 创建逻辑卷 (LV)

# 创建 LV(-n 指定名称,-L 指定大小,-l 指定 PE 数量)
lvcreate -n lv_data -L 100G vg_data

# 使用全部可用空间
lvcreate -n lv_data -l 100%FREE vg_data

# 查看 LV
lvdisplay
lvs

5. 创建文件系统并挂载

# 创建文件系统
mkfs.ext4 /dev/vg_data/lv_data

# 挂载
mount /dev/vg_data/lv_data /data

LVM 动态调整

扩展逻辑卷

# 1. 先扩展 VG(如果有新 PV)
vgextend vg_data /dev/sdc1

# 2. 扩展 LV
lvextend -L +50G /dev/vg_data/lv_data

# 或者扩展到指定大小
lvextend -L 200G /dev/vg_data/lv_data

# 3. 扩展文件系统(ext4)
resize2fs /dev/vg_data/lv_data

# 3. 扩展文件系统(xfs)
xfs_growfs /mnt/data

缩减逻辑卷(需要先卸载)

# 1. 卸载
umount /dev/vg_data/lv_data

# 2. 检查文件系统
e2fsck -f /dev/vg_data/lv_data

# 3. 缩减文件系统
resize2fs /dev/vg_data/lv_data 50G

# 4. 缩减 LV
lvreduce -L 50G /dev/vg_data/lv_data

# 5. 重新挂载
mount /dev/vg_data/lv_data /data

注意:缩减操作有风险,建议提前备份数据。xfs 文件系统不支持缩减。

LVM 快照

LVM 快照是 LVM 的重要特性,用于备份。

# 创建快照(快照大小要能容纳变化数据)
lvcreate -s -n lv_data_snap -L 10G /dev/vg_data/lv_data

# 挂载快照
mkdir -p /mnt/snapshot
mount /dev/vg_data/lv_data_snap /mnt/snapshot

# 备份完成后卸载快照
umount /mnt/snapshot

# 删除快照
lvremove /dev/vg_data/lv_data_snap

使用快照备份:

#!/bin/bash
# lvm_snapshot_backup.sh

VG_NAME="vg_data"
LV_NAME="lv_data"
SNAP_NAME="lv_data_snap"
SNAP_SIZE="10G"
BACKUP_DIR="/backup"
MOUNT_POINT="/mnt/snapshot"

# 创建快照
lvcreate -s -n $SNAP_NAME -L $SNAP_SIZE /dev/$VG_NAME/$LV_NAME

# 挂载快照
mkdir -p $MOUNT_POINT
mount -o ro /dev/$VG_NAME/$SNAP_NAME$MOUNT_POINT

# 备份
tar -czf $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz -C $MOUNT_POINT .

# 卸载快照
umount $MOUNT_POINT

# 删除快照
lvremove -f /dev/$VG_NAME/$SNAP_NAME

echo"备份完成: $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz"

第七部分:生产环境实战案例

案例一:新服务器初始化数据盘

场景描述

新服务器有一块 500GB 的数据盘 /dev/sdb,需要将其挂载到 /data 目录。

操作步骤

  1. 查看磁盘情况
lsblk
fdisk -l /dev/sdb
  1. 分区(使用 GPT)
parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary xfs 0% 100%
  1. 创建文件系统
mkfs.xfs /dev/sdb1
  1. 获取 UUID
blkid /dev/sdb1
  1. 配置自动挂载
# 创建挂载点
mkdir -p /data

# 添加到 fstab
echo"UUID=$(blkid -s UUID -o value /dev/sdb1) /data xfs defaults,noatime 0 2" >> /etc/fstab

# 验证配置
mount -a

# 验证挂载
df -h | grep /data
  1. 设置权限
chown root:root /data
chmod 755 /data

完整脚本

#!/bin/bash
# init_data_disk.sh - 初始化数据盘

DISK="/dev/sdb"
PART="${DISK}1"
MOUNT_POINT="/data"
FS_TYPE="xfs"

# 检查磁盘是否存在
if [ ! -b "$DISK" ]; then
echo"错误: 磁盘 $DISK 不存在"
exit 1
fi

# 检查是否已挂载
if mountpoint -q "$MOUNT_POINT"then
echo"警告: $MOUNT_POINT 已经挂载"
exit 1
fi

# 检查是否已有分区
if [ -b "$PART" ]; then
echo"警告: 分区 $PART 已存在"
read -p "是否继续? (yes/no): " CONFIRM
if [ "$CONFIRM" != "yes" ]; then
exit 0
fi
fi

echo">>> 步骤1: 创建 GPT 分区表"
parted -s $DISK mklabel gpt

echo">>> 步骤2: 创建分区"
parted -s $DISK mkpart primary $FS_TYPE 0% 100%

# 等待分区表刷新
sleep 1

echo">>> 步骤3: 创建文件系统"
mkfs.$FS_TYPE -f $PART

echo">>> 步骤4: 获取 UUID"
UUID=$(blkid -s UUID -o value $PART)
echo"分区 UUID: $UUID"

echo">>> 步骤5: 创建挂载点并配置自动挂载"
mkdir -p $MOUNT_POINT

# 备份原 fstab
cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d)

# 添加 fstab 条目
echo"UUID=$UUID$MOUNT_POINT$FS_TYPE defaults,noatime 0 2" >> /etc/fstab

echo">>> 步骤6: 验证 fstab 配置"
mount -a
if mountpoint -q "$MOUNT_POINT"then
echo"挂载成功"
else
echo"挂载失败,恢复 fstab"
    cp /etc/fstab.bak.$(date +%Y%m%d) /etc/fstab
exit 1
fi

echo">>> 步骤7: 设置权限"
chown root:root $MOUNT_POINT
chmod 755 $MOUNT_POINT

echo"=== 初始化完成 ==="
df -h $MOUNT_POINT

案例二:扩展根分区

场景描述

服务器根分区空间不足,需要扩展。假设使用了 LVM。

诊断步骤

# 查看磁盘使用情况
df -h /

# 查看 LVM 情况
vgs
lvs

# 查看 VG 剩余空间
vgdisplay vg_centos | grep "Free"

扩展步骤

如果 VG 有剩余空间:

# 扩展 LV
lvextend -L +50G /dev/mapper/centos-root

# 扩展文件系统
resize2fs /dev/mapper/centos-root   # ext4
# 或
xfs_growfs /                         # xfs

如果 VG 没有剩余空间,需要先扩展 PV:

# 查看可用磁盘
lsblk

# 添加新磁盘 /dev/sdc 并创建分区
fdisk /dev/sdc
# 创建 Linux LVM 分区 (8e)

# 创建 PV
pvcreate /dev/sdc1

# 扩展 VG
vgextend centos /dev/sdc1

# 扩展 LV
lvextend -L +100G /dev/mapper/centos-root

# 扩展文件系统
resize2fs /dev/mapper/centos-root

非 LVM 扩展(需要使用 gparted 或重启)

如果是非 LVM 的 ext4 分区,扩展需要:

  1. 删除并重建分区(保留起始扇区不变)
  2. 使用 resize2fs 扩展

警告:修改分区表有风险,建议提前备份数据。

案例三:修复挂载故障

场景描述

服务器启动后挂载失败,进入紧急模式。

排查步骤

  1. 查看挂载失败的分区
journalctl -xb | grep -i mount
cat /proc/mounts
  1. 检查 /etc/fstab 配置
cat /etc/fstab
blkid
  1. 常见错误
  • UUID 不正确
  • 挂载点不存在
  • 文件系统损坏

修复步骤

错误1:UUID 不正确

# 查看正确的 UUID
blkid

# 编辑 fstab
vi /etc/fstab

# 修改 UUID 为正确值

错误2:挂载点不存在

# 创建挂载点
mkdir -p /data

错误3:文件系统损坏

# 在根分区挂载成功后
umount /data

# 修复文件系统
fsck.ext4 -f /dev/sdb1
# 或
xfs_repair /dev/sdb1

# 重新挂载
mount /data

临时绕过(跳过挂载启动)

如果 /etc/fstab 配置错误导致无法启动,可以在启动时:

  1. 在 GRUB 菜单按 e 编辑启动参数
  2. 在 linux 行末尾添加 rd.break 或 init=/bin/bash
  3. 启动后重新挂载根分区为读写
mount -o remount,rw /

然后修复 /etc/fstab。

案例四:迁移数据到新磁盘

场景描述

需要将 /data 目录的数据从旧磁盘迁移到新磁盘。

操作步骤

  1. 挂载新磁盘
# 分区和格式化新磁盘
fdisk /dev/sdc
mkfs.xfs /dev/sdc1

# 挂载到临时目录
mkdir -p /mnt/newdata
mount /dev/sdc1 /mnt/newdata
  1. 迁移数据
# 使用 rsync 同步数据
rsync -avz /data/ /mnt/newdata/

# 验证数据完整性
diff -r /data /mnt/newdata
  1. 更新 fstab
# 获取新磁盘 UUID
blkid /dev/sdc1

# 备份原 fstab
cp /etc/fstab /etc/fstab.bak

# 编辑 fstab,修改 UUID
vi /etc/fstab
  1. 重启验证
# 重启前先卸载
umount /data
umount /mnt/newdata

# 验证 fstab
mount -a

# 重启
reboot

完整脚本

#!/bin/bash
# migrate_data_disk.sh

OLD_DISK="/dev/sdb1"
NEW_DISK="/dev/sdc1"
MOUNT_POINT="/data"
FS_TYPE="xfs"

echo"=== 数据迁移开始 ==="

# 检查新磁盘是否存在
if [ ! -b "$NEW_DISK" ]; then
echo"错误: 新磁盘 $NEW_DISK 不存在"
exit 1
fi

# 挂载新磁盘到临时目录
mkdir -p /mnt/newdata
echo">>> 格式化新磁盘..."
mkfs.$FS_TYPE -f $NEW_DISK

echo">>> 挂载新磁盘..."
mount $NEW_DISK /mnt/newdata

# 同步数据
echo">>> 同步数据..."
rsync -avz --delete $MOUNT_POINT/ /mnt/newdata/

# 验证
echo">>> 验证数据..."
diff -r $MOUNT_POINT /mnt/newdata && echo"数据一致" || echo"数据不一致!"

# 获取新磁盘 UUID
NEW_UUID=$(blkid -s UUID -o value $NEW_DISK)
echo"新磁盘 UUID: $NEW_UUID"

# 更新 fstab
echo">>> 更新 /etc/fstab..."
cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d)

# 替换旧 UUID 为新 UUID
OLD_UUID=$(blkid -s UUID -o value $OLD_DISK)
sed -i "s|$OLD_UUID|$NEW_UUID|g" /etc/fstab

echo">>> 原 fstab 备份: /etc/fstab.bak.$(date +%Y%m%d)"

# 重启前验证
echo">>> 重启前验证 fstab..."
umount $MOUNT_POINT
umount /mnt/newdata

mount -a
if mountpoint -q $MOUNT_POINTthen
echo"挂载验证成功"
else
echo"挂载验证失败,恢复 fstab"
    cp /etc/fstab.bak.$(date +%Y%m%d) /etc/fstab
    mount -a
fi

echo"=== 迁移完成 ==="
echo"请重启服务器以完成迁移"
echo"重启后可以删除旧磁盘分区"

总结

分区工具速查

# fdisk - MBR 分区
fdisk -l /dev/sda           # 查看分区
fdisk /dev/sdb              # 交互分区

# parted - GPT/MBR 通用
parted /dev/sdb print# 查看分区
parted /dev/sdb mklabel gpt # 创建 GPT
parted /dev/sdb mkpart primary xfs 0% 100%  # 创建分区

# gdisk - GPT 分区
gdisk -l /dev/sdb           # 查看分区
gdisk /dev/sdb              # 交互分区

文件系统速查

# ext4
mkfs.ext4 /dev/sdb1
fsck.ext4 /dev/sdb1
resize2fs /dev/sdb1

# xfs
mkfs.xfs /dev/sdb1
xfs_check /dev/sdb1
xfs_growfs /mountpoint
xfs_repair /dev/sdb1

# swap
mkswap /dev/sdb1
swapon /dev/sdb1
swapoff /dev/sdb1

挂载速查

# 手动挂载
mount /dev/sdb1 /mnt/data
mount -t ext4 /dev/sdb1 /mnt/data
mount -o ro,noexec /dev/sdb1 /mnt/data

# 卸载
umount /mnt/data
umount -f /mnt/data
umount -l /mnt/data

# 查看
mount
df -h
lsblk
blkid

fstab 速查

# 格式
# UUID=xxx /mountpoint type defaults 0 2

# 常用选项
defaults        # 默认选项
noatime         # 不更新访问时间
nodiratime      # 不更新目录访问时间
ro              # 只读
noexec          # 不允许执行
nosuid          # 不允许 SUID

LVM 速查

# PV
pvcreate /dev/sdb1
pvs
pvdisplay

# VG
vgcreate vg_name /dev/sdb1
vgextend vg_name /dev/sdc1
vgs
vgdisplay

# LV
lvcreate -n lv_name -L 10G vg_name
lvextend -L +10G /dev/vg_name/lv_name
lvs
lvdisplay

# 扩展文件系统
resize2fs /dev/vg_name/lv_name      # ext4
xfs_growfs /mountpoint               # xfs

常见问题处理

问题
解决方法
挂载失败
检查 UUID、挂载点、文件系统
磁盘空间不足
清理文件、扩展分区(LVM)或扩容
文件系统损坏
使用 fsck/xfs_repair 修复
启动失败
进入紧急模式修复 fstab
分区表损坏
使用 testdisk 恢复

最佳实践

  1. 使用 GPT:新分区优先使用 GPT 分区表
  2. 使用 UUID:fstab 中使用 UUID 而不是设备名(设备名可能变化)
  3. 先备份再操作:修改分区、fstab 前先备份
  4. 测试 fstab:修改后用 mount -a 测试
  5. 使用 LVM:数据盘建议使用 LVM,方便后续扩展
  6. 合理分区:生产环境建议单独分区 /var/log、/data 等
  7. 设置正确权限:挂载后检查目录权限
  8. 定期检查:使用 df、lsblk 定期检查磁盘使用情况

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 04:00:32 HTTP/2.0 GET : https://f.mffb.com.cn/a/496357.html
  2. 运行时间 : 0.253738s [ 吞吐率:3.94req/s ] 内存消耗:4,739.73kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=02cccaaf8b93aa0df77c7d86012a358f
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000908s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001331s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.008766s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.013196s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000743s ]
  6. SELECT * FROM `set` [ RunTime:0.001075s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000601s ]
  8. SELECT * FROM `article` WHERE `id` = 496357 LIMIT 1 [ RunTime:0.000610s ]
  9. UPDATE `article` SET `lasttime` = 1783022432 WHERE `id` = 496357 [ RunTime:0.019923s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000314s ]
  11. SELECT * FROM `article` WHERE `id` < 496357 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.011060s ]
  12. SELECT * FROM `article` WHERE `id` > 496357 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000609s ]
  13. SELECT * FROM `article` WHERE `id` < 496357 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007068s ]
  14. SELECT * FROM `article` WHERE `id` < 496357 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002100s ]
  15. SELECT * FROM `article` WHERE `id` < 496357 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.052860s ]
0.255320s