## 1、磁盘和文件系统管理概览 磁盘管理通常涉及以下几个层次: - 磁盘与分区 - 分区表类型 - 文件系统创建与识别 - 挂载与卸载 - 空间使用查看 理解这条主线后,再学习 RAID、LVM 会更顺。 ## 2、分区方式 ### 2.1 MBR - 较早期的分区表格式 - 使用 32 位扇区地址 - 单盘常见上限约为 2 TB - 主分区数量有限 ### 2.2 GPT - 更现代的分区表格式 - 支持更大的磁盘容量 - 支持更多分区 - 常与 UEFI 配合使用 ## 3、BIOS 与 UEFI ### 3.1 BIOS - 较传统的启动方式 - 常和 MBR 磁盘搭配 - 对大容量系统盘支持有限 ### 3.2 UEFI - 更新的启动方式 - 更适合 GPT 分区表 - 支持更大容量磁盘和更多现代特性 ## 4、查看磁盘与分区 ### 4.1 `lsblk` ```shell lsblk ``` 常见选项: - `-f`:显示文件系统信息 ### 4.2 `blkid` ```shell blkid ``` 用于查看: - UUID - 文件系统类型 - 分区 UUID ### 4.3 `partprobe` ```shell partprobe ``` 用于通知内核重新读取分区表,常见于新建或调整分区后。 ## 5、创建和管理分区 ### 5.1 常见工具 - `fdisk`:常用于管理 MBR 分区 - `gdisk`:常用于管理 GPT 分区 ### 5.2 常见交互命令 - `p`:打印分区表 - `n`:新建分区 - `d`:删除分区 - `t`:修改分区类型 - `v`:校验分区表 - `w`:保存并退出 - `q`:不保存退出 ## 6、文件系统类型 常见文件系统: - `ext4`:Linux 中非常常见,兼容性好 - `xfs`:大文件和大容量场景常见 - `ntfs`:Windows 常见文件系统 ### 6.1 创建文件系统 ```shell mkfs ``` 实际使用中通常会结合具体类型: ```shell mkfs.ext4 /dev/sdb1 mkfs.xfs /dev/sdb1 ``` ## 7、挂载与卸载 ### 7.1 挂载命令 ```shell mount ``` ### 7.2 卸载命令 ```shell umount ``` ### 7.3 `/etc/fstab` 系统开机自动挂载通常依赖 `/etc/fstab`。 示例: ```fstab /dev/sda1 / ext4 defaults,noatime 0 1 /dev/sda2 none swap defaults 0 0 /dev/sda3 /home ext4 defaults,noatime 0 2 ``` 字段含义: 1. 设备名或 UUID 2. 挂载点 3. 文件系统类型 4. 挂载参数 5. 备份标志(通常为 `0`) 6. `fsck` 检查顺序 ### 7.4 常见挂载参数 - `defaults`:默认挂载参数 - `auto`:开机或 `mount -a` 时自动挂载 - `noauto`:不自动挂载 - `ro`:只读挂载 - `rw`:读写挂载 - `exec`:允许执行二进制文件 - `noexec`:禁止执行二进制文件 - `suid`:允许 SUID/SGID 生效 - `nosuid`:禁止 SUID/SGID - `dev`:允许解析设备文件 - `nodev`:不解析设备文件 - `noatime`:不更新访问时间,常用于优化性能 - `relatime`:相对更新时间,兼顾性能和兼容性 ## 8、查看磁盘空间 ### 8.1 `df` 用于查看文件系统层面的空间使用情况。 常见选项: - `-T`:显示文件系统类型 - `-h`:以易读单位显示 - `-i`:显示 inode 使用情况 示例: ```shell df -hT ``` ### 8.2 `du` 用于查看目录或文件实际占用空间。 常见选项: - `-a`:显示所有文件和目录 - `-h`:以易读单位显示 - `-s`:汇总显示总大小 示例: ```shell du -sh /var/log ``` ## 9、常见运维流程 ### 9.1 新磁盘上线 通常步骤: - 用 `lsblk` 确认设备 - 用 `fdisk` 或 `gdisk` 分区 - 用 `mkfs` 创建文件系统 - 用 `mount` 挂载 - 写入 `/etc/fstab` 实现持久化 ### 9.2 磁盘空间排查 通常步骤: - 先看 `df -h` - 再看 `du -sh` 找大目录 - 必要时看 inode:`df -i` ## 10、小结 - 分区表常见有 MBR 和 GPT - 启动方式常见有 BIOS 和 UEFI - `lsblk`、`blkid`、`fdisk/gdisk`、`mkfs`、`mount` 是高频命令 - `df` 看文件系统空间,`du` 看目录实际占用 - `/etc/fstab` 决定系统开机自动挂载行为