225 lines
3.8 KiB
Markdown
225 lines
3.8 KiB
Markdown
## 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` 决定系统开机自动挂载行为
|