Appearance
文件系统管理
- 磁盘分区
- 在使用文件系统之前,通常需要对磁盘进行分区。分区是将物理磁盘划分为多个独立的存储单元,每个分区可以格式化为不同的文件系统。例如,可以将一个硬盘分区为一个用于安装操作系统的分区(格式化为 ext4 文件系统),一个用于存储用户数据的分区(也可以格式化为 ext4 或其他文件系统),以及一个交换分区(用于虚拟内存)。
- 格式化
- 格式化是将选定的文件系统格式应用到分区的过程。例如,使用 mkfs.ext4 命令可以将一个分区格式化为 ext4 文件系统。格式化过程会创建文件系统的基本结构,如 inode 表、超级块等,为后续的文件存储和读取做好准备。
- 挂载和卸载
- 挂载是将一个文件系统的分区连接到目录树中的某个挂载点,使其可以被访问。例如,使用 mount /dev/sdb1/mnt/mydrive 命令可以将 /dev/sdb1 分区挂载到/mnt/mydrive 目录,之后就可以通过这个目录访问该分区中的文件了。卸载(umount)则是断开这种连接,当不再需要访问某个分区时,应该先卸载它,以确保数据的一致性。
文件系统分类
Windows 常用文件系统
文件系统 | 最大卷/文件大小 | 特点 |
---|---|---|
FAT32 | 卷: 2TB 文件: 4GB | - 兼容性极强(U盘、游戏机、车载设备等) - 不支持大文件(如高清视频) |
exFAT | 卷: 128PB 文件: 16EB | - 专为闪存设计(U盘、SD卡) - 支持大文件,无日志功能,跨平台兼容 |
NTFS | 卷: 256TB 文件: 16EB | - Windows 默认文件系统 - 支持日志、加密、压缩、权限控制 - macOS/Linux 需额外驱动写入 |
Linux 常用文件系统
文件系统 | 特点 |
---|---|
ext4 | - Linux 默认文件系统 - 支持日志、大文件(16TB)、快照 - 稳定性高 |
XFS | - 高性能(适合大文件/服务器) - 动态扩展,但收缩困难 |
Btrfs | - 支持写时复制(COW)、快照、RAID - 适合数据完整性要求高的场景 |
ZFS | - 高级文件系统(整合卷管理) - 支持数据去重、压缩、快照(需高资源) |
macOS 常用文件系统
文件系统 | 特点 |
---|---|
APFS | - macOS 默认文件系统(SSD优化) - 支持加密、快照、空间共享 |
HFS+ | - 旧版 macOS 文件系统 - 兼容性较好但逐渐被淘汰 |
通用/网络文件系统
文件系统 | 用途 |
---|---|
ISO 9660 | 光盘标准格式(兼容所有系统) |
UDF | 可擦写光盘/蓝光文件系统 |
NFS | 网络文件系统(Linux/Unix 间共享) |
SMB/CIFS | Windows 网络共享协议(跨平台文件访问) |
对比总结
选择依据 | 推荐文件系统 |
---|---|
Windows 系统盘 | NTFS |
Linux 系统盘 | ext4(通用)、XFS(大文件) |
macOS 系统盘 | APFS |
U盘/SD卡 | exFAT(跨平台)、FAT32(老旧设备) |
网络共享 | NFS(Linux)、SMB(Windows/macOS) |
高性能存储 | XFS(Linux)、NTFS(Windows)、APFS(macOS) |
注意事项
- 跨平台兼容性:exFAT 是 Windows/macOS/Linux 通用选择。
- 日志功能:NTFS/ext4/XFS 等支持日志,意外断电时数据更安全。
- SSD 优化:APFS(macOS)、F2FS(Linux/Android)可延长闪存寿命。
文件系统操作命令
查看文件系统信息
bash
df -h # 显示磁盘空间使用情况
lsblk # 列出块设备信息
mount # 显示已挂载的文件系统
file -s /dev/sda1 # 查看分区文件系统类型
文件系统管理
bash
mkfs.ext4 /dev/sdb1 # 创建ext4文件系统
fsck /dev/sda1 # 检查修复文件系统
tune2fs -l /dev/sda1 # 显示ext文件系统信息
resize2fs /dev/sda1 # 调整ext文件系统大小
挂载与卸载
bash
mount /dev/sdb1 /mnt/data # 挂载文件系统
umount /mnt/data # 卸载文件系统
mount -a # 挂载/etc/fstab中所有文件系统
开机自动挂载
/etc/fstab
在 Linux 系统中,/etc/fstab
文件用于定义文件系统的静态挂载配置,使得系统在启动时能够自动挂载指定的文件系统。
字段解析
bash
<file system> <mount point> <type> <options> <dump> <pass>
<file system>
:文件系统标识符,可以是设备名称(如/dev/sda1
)、UUID 或标签。
<mount point>
:文件系统的挂载点。
<type>
:文件系统的类型(如ext4
、xfs
、swap
等)。
<options>
:挂载选项(如defaults
、rw
、ro
等)。
defaults
:使用默认挂载选项(rw
、suid
、dev
、exec
、auto
、nouser
、async
)。noauto
:不自动挂载,需要手动挂载。user
:允许普通用户挂载。ro
:只读挂载。rw
:读写挂载。
<dump>
:用于dump
命令的备份选项,通常设置为0
(不备份)。
- 0:代表不要做dump备份
- 1:代表要每天进行dump的操作
- 2:代表不定日期的进行dump操作
<pass>
:文件系统检查顺序,通常设置为0
或1
(/
根文件系统设置为1
,其他文件
- 0:不要检验
- 1:最早检验(一般根目录会选择)
- 2:1级别检验完成之后进行检验
/etc/rc.d/rc.local
/etc/rc.d/rc.local
是 Linux 系统中的一个脚本文件,它在系统启动过程中会被自动执行,用于运行用户自定义的初始化命令或脚本。
位置和名称
- 在基于 System V init 的系统中,
rc.local
文件通常位于/etc/rc.d/
目录下。 - 在一些现代 Linux 发行版中,如使用 systemd 作为初始化系统的,
rc.local
文件的位置可能有所不同,但功能类似。
作用
- 自定义启动任务 :允许用户在系统启动后自动执行特定的任务或命令,例如启动自定义的服务、挂载网络文件系统、设置网络配置等。
- 方便系统管理 :为系统管理员提供了一种简单的方法来添加启动时需要执行的命令,而无需修改复杂的系统启动脚本。
bash
#!/bin/bash
# 启动自定义服务
/path/to/custom/service1 start
# 挂载网络文件系统
mount -t nfs nfs_server:/path/to/share /mnt/nfs
# 设置环境变量
export MY_ENV_VAR="my_value"
设置文件权限
默认 rc.local
文件不具备执行权限,修改后确认具有可执行权限。可以使用以下命令来设置权限:
bash
chmod +x /etc/rc.d/rc.local
注意事项
- 兼容性 :在不同的 Linux 发行版中,
rc.local
的位置和配置方式可能会有所不同。例如,在 Ubuntu 系统中,rc.local
文件可能位于/etc/
目录下,并且需要在 systemd 中启用它。 - 执行顺序 :
rc.local
脚本通常在系统启动的最后阶段执行,因此如果需要在某些服务启动之前执行命令,可能需要调整服务的启动顺序。 - 错误处理 :如果
rc.local
中的命令出现错误,可能会导致系统启动过程出现问题。因此,在添加命令时要确保其正确性,并进行充分的测试。