Linux 磁盘管理
关键要点
- Linux 磁盘管理涉及分区、格式化、挂载和维护,影响系统性能。
- 磁盘设备通过
/dev
下的设备文件管理,支持多种接口如 IDE、SATA。 - 常用命令包括
df
(查看空间)、du
(检查使用)、fdisk
(分区)、mount
(挂载)。 - 文件系统类型如 ext4、xfs 有不同容量和性能特点。
磁盘管理基础
Linux 磁盘管理是确保系统高效运行的重要部分。磁盘设备以文件形式存在,通常在 /dev
目录下,如 /dev/sda
表示第一块 SATA 磁盘。管理包括分区(如 MBR、GPT)、格式化(创建文件系统)和挂载(关联到目录)。
磁盘类型与命名
- 接口:IDE(
/dev/hd
)、SCSI/SATA/USB(/dev/sd
)、虚拟设备(/dev/vd
)。 - 分区:MBR 支持 4 主分区(或 3 主+1 扩展),最大 2TB;GPT 支持 128 分区,最大 18EB。
- 硬盘类型:HDD(机械,容量大,价格低)和 SSD(固态,速度快,抗震性好)。
常用命令
以下是核心命令及其用途:
命令 | 用途 | 示例 |
---|---|---|
df | 查看文件系统空间使用情况 | df -h (人类可读格式) |
du | 检查目录或文件占用空间 | du -sm /* (查看总大小) |
fdisk | 管理 MBR 分区 | fdisk /dev/sdc |
gdisk | 管理 GPT 分区(>2TB) | gdisk /dev/sdb |
mount | 挂载分区 | mount /dev/hda1 /mnt |
umount | 卸载分区 | umount /dev/hdc6 |
mkfs | 格式化分区,创建文件系统 | mkfs -t xfs /dev/sdb1 |
fsck | 检查并修复文件系统 | fsck -C -f -t ext3 /dev/hdc6 |
文件系统
- 类型:ext2(小分区)、ext3(日志,32TB 文件系统)、ext4(1EB 文件系统,16TB 文件)、xfs(8EB,日志恢复快)。
- 挂载:通过
mount
命令关联到目录,需编辑/etc/fstab
实现永久挂载。
详细报告
Linux 磁盘管理是系统性能优化的关键环节,涉及磁盘设备的识别、分区、格式化、挂载和维护。以下是全面的讲解,涵盖基本概念、命令和高级主题。
1. 概述
Linux 将一切视为文件,硬件设备通过设备文件与内核驱动关联。磁盘设备通常位于 /dev
目录下,如 /dev/sda
表示第一块 SCSI/SATA/USB 磁盘,/dev/hda
表示 IDE 磁盘。
2. 磁盘结构与命名
- 设备号:主要设备号(major number)标识设备类型,次要设备号(minor number)标识同一类型的不同设备。
- 设备类型:
- 块设备:以块为单位访问数据,如磁盘。
- 字符设备:以字符为单位访问数据,如键盘。
- 网络设备:用于主机间数据交换。
- 命名规则:
- 物理设备:
- IDE:
/dev/hd[a-d]
,如/dev/hda
。 - SCSI/SATA/USB:
/dev/sd[a-p]
,如/dev/sda
。 - 软盘:
/dev/fd[0-1]
。 - CD-ROM:
/dev/cdrom
或/dev/sr0
。
- IDE:
- 虚拟设备:
/dev/vd
、/dev/xvd
,常见于虚拟机。 - 分区:主分区或扩展分区编号为 1-4,逻辑分区从 5 开始,如
/dev/sda5
。
3. 硬盘类型
- 接口类型:
- IDE:并行接口,最高速度 133MB/s,较老旧。
- SCSI:并行接口,最高速度 640MB/s,服务器常用。
- SATA:独立数据和电源线,最高速度 6Gbps,桌面和服务器广泛使用。
- SAS:集成数据和电源线,最高速度 6Gbps,高端服务器。
- USB:最高速度 480MB/s,适合移动设备。
- M.2:用于固态硬盘,速度快,常见于笔记本。
- 尺寸:
- LFF(3.5 寸):台式机常用,容量大。
- SFF(2.5 寸):服务器常用,利于密度和散热。
- HDD vs SSD:
- HDD:传统机械硬盘,使用磁盘和磁头,价格低廉,容量大,适合冷数据存储。
- SSD:固态硬盘,基于闪存,速度快,抗震性好,重量轻,但价格较高,容量相对较小,适合高性能场景。
4. 分区
- MBR(主引导记录):
- 最多支持 4 个主分区,或 3 个主分区 + 1 个扩展分区(扩展分区内可创建逻辑分区)。
- 逻辑分区编号从 5 开始,如
/dev/sda5
。 - 最大支持 2TB 磁盘,适合老旧系统。
- GPT(GUID 分区表):
- 支持 128 个分区(默认,可配置更多)。
- 最大支持 18EB 磁盘(1EB = 1024PB,1PB = 1024TB),适合现代大容量存储。
- 分区命令:
fdisk
:用于 MBR 分区管理,支持交互式操作,如fdisk /dev/sdc
。gdisk
:用于 GPT 分区管理,安装方式yum -y install gdisk
,操作如删除(d)、新建(n)、写入(w)。parted
:高级分区工具,支持大于 2TB 磁盘或小型分区,非交互式示例:parted /dev/sdb mklabel gpt yes
。
5. 文件系统管理
文件系统是磁盘存储数据的组织方式,Linux 支持多种类型。
- 文件系统类型:
- ext2:适合小分区,如
/boot
,无日志,性能稳定。 - ext3:ext2 的日志版本,最大 32TB 文件系统,2TB 文件(实际文件 16GB,子目录 32000)。
- ext4:ext3 的后继,最大 1EB 文件系统,16TB 文件,支持无限子目录,性能优于 ext3。
- xfs:最大 8EB 文件系统和文件,日志恢复快,常用服务器场景。
- 其他:swap(交换空间)、iso9660(CD)、btrfs、reiserfs、Windows 文件系统(FAT32、NTFS、exFAT)、Unix 文件系统(FFS、UFS、JFS2)。
- 创建文件系统:
mkfs
命令用于格式化分区,示例:mkfs -t xfs /dev/sdb1
。- 支持类型包括 ext2、ext3、ext4、xfs 等,可通过
-L 'LABEL'
设置标签。 - 挂载与卸载:
mount
:将分区挂载到指定目录,示例:mount /dev/hda1 /mnt
,选项如-t
(文件系统类型)、-o
(挂载选项,如 ro、rw、async)。umount
:卸载分区,示例:umount -lf /home
,-f
(强制)、-l
(懒卸载)。- 永久挂载需编辑
/etc/fstab
文件,格式为设备 文件系统 挂载点 类型 选项 转储 频率
。 - 交换空间管理:
mkswap
:设置交换分区,示例:mkswap /dev/sdb1
,-c
检查坏块。swapon
:启用交换空间,示例:swapon -a
(从/etc/fstab
启用所有)。swapoff
:禁用交换空间,示例:swapoff -a
。
6. 磁盘使用与检查
- df:查看文件系统的整体磁盘使用量,示例:
df -h
显示人类可读格式,如/dev/sda2 50G 1.2G 49G 3% /
。 - 选项:
-h
(人类可读)、-T
(显示类型)、-i
(inode 信息)、-a
(包括虚拟文件系统)。 - du:检查目录或文件占用空间,示例:
du -sm /*
查看每个目录的总大小。 - 选项:
-a
(所有文件)、-h
(人类可读)、-s
(总大小)、-S
(包括子目录)。 - fsck:检查并修复文件系统,示例:
fsck -C -f -t ext3 /dev/hdc6
,-C
显示进度、-f
强制检查、-a
自动修复、-y
自动回答“是”。 - 支持文件系统:cramfs、ext2、ext3、msdos、vfat。
7. 其他相关命令
- lsblk:列出块设备,示例:
lsblk -f
显示文件系统信息。 - partx:同步磁盘分区信息,示例:
partx -a /dev/sda
添加到内核。 - partprobe:重新加载分区表,示例:
partprobe /dev/sdx
通知内核更新。 - blkid:查看块设备信息,示例:
blkid -o list
显示 UUID 和挂载点。
8. 高级主题
- 配额:管理用户和组的磁盘使用量,限制存储空间。
- RAID:冗余数组,提高数据冗余和性能,如 RAID 0(条带化)、RAID 1(镜像)。
- LVM:逻辑卷管理,灵活扩展磁盘空间,通过逻辑卷(LV)动态调整大小。
9. 注意事项
- 分区前备份重要数据,避免操作失误。
- GPT 适合现代大容量磁盘,MBR 适合老旧系统。
- 挂载点建议使用空目录,避免覆盖现有数据。
- 定期检查文件系统(如
fsck
)以确保数据完整性。
以上内容基于可靠资源整理,适合初学者和有经验的用户参考。