Linux文件系统
文件系统
计算机的文件系统是一种存储和组织计算机数据的方法,借助于文件系统,用户或程序对文件的访问和查找变得容易。 Linux支持的文件系统格式有:Ext2, Ext3, Ext4, ReiserFS, Xfs, Btrfs, FAT, FAT32, NTFS等。本文中,我并不打算展开对这些文件系统的详细解释,只是简单说出以下这些结论:
Ext2, Ext3, Ext4是Linux系统上最常用的文件系统,发展到Ext4时已经十分稳定,没有特别要求时,一般都可以使用;
ReiserFS是用B+树作为数据结构的文件系统,在处理小文件时有较好的性能,在实践中,ReiserFS在处理文件小于1k小文件时,甚至效率可以比ext3快约10倍;
XFS使用64位管理空间,在多文件、大文件系统、空间利用率等方面相比Ext4更有优势。从CentOS 7开始,默认的文件系统就由此前的Ext4改为XFS了,由于文件规模的不断增大,日后Ext4可能会被XFS所取代。
Btrfs官方宣称其为“下一代文件系统”,虽然从理念上看Btrfs确实可能存在不错的效果,但截至目前,它的性能表现还是太差了,不建议使用。
【Ext4、XFS、Btrfs的详细对比,感兴趣的读者可以看看这篇Benchmark:EXT3 vs EXT4 vs XFS vs BTRFS linux filesystems benchmark】
Linux虽然支持FAT、FAT32、NTFS,但仅仅是为了兼容性,这三个文件系统很容易产生磁盘碎片(尽管NTFS上已有不小改善),Linux系统下一般是不会轻易使用的。
挂载点
挂载点是linux中的磁盘文件系统的入口目录。
挂载点与其功能描述如下:
/ | 根目录,存放系统命令和用户数据等(如果下面挂载点没有单独的分区,它们都将在根目录的分区中) |
---|---|
/boot | boot loader 的静态链接文件,存放与Linux启动相关的程序 |
/home | 用户目录,存放普通用户的数据 |
/tmp | 临时文件 |
/usr | 是Red Hat Linux系统存放软件的地方,如有可能应将最大空间分给它: /usr/local 自已安装程序安装在此 /usr/X1186 X-Windows目录,存放一些X-Windows的配置文件 /usr/include 系统头文件,存储一些C语言的头文件 /usr/src Linux内核源代码,Linux系统所安装的内核源代码都保存在此 /usr/bin 对/bin目录的一些补充 /usr/sbin 对/sbin目录的一些补充 /usr/share/doc 用户文档 |
/var | 不断变化的数据,服务器的一些服务、日志放在下面: /var/www:一般WEB存放网页的目录 /var/mail:postfix邮件的存放邮件的目录 /var/log:系统日志记录 /var/spool:存放一些邮件、新闻、打印队列等。 |
/opt | (Option可选的)附加的应用程序软件包 |
/bin | 基本命令执行文件 |
/dev | 设备文件 |
/etc | 主机特定的系统配置 |
/lib | 基本共享库以及内核模块 |
/media | 用于移动介质的挂载点 |
/mnt | 用于临时挂载文件系统或者别的硬件设备(如光驱、软驱) |
/proc | 系统信息的虚拟目录(2.4 和 2.6 内核),这些信息是在内存中,由系统自己产生的。 |
/root | root 用户的目录 |
/sbin | 基本系统命令执行文件 |
/sys | 系统信息的虚拟目录(2.6 内核) |
/srv | 系统提供的用于 service 的数据 |
/lost+found | 这个目录在大多数情况下都是空的。但是如果你正在工作突然停电,或是没有用正常方式关机,在你重新启动机器的时候,有些文件就会找不到应该存放的地方,对于这些文件,系统将他们放在这个目录下。 |
当然上面这么多挂载点,实际上是没有比较每个目录都单独进行挂载,我们只需要根据自己的实际使用需要对个别目录进行挂载,这样系统结构看起来也会精简很多。最少的时候,我们只需要挂载/就可以了(当然这样并不好)。
分区
根据挂载点的不同,对磁盘进行分区,选择最合适的文件系统,可以使计算机的性能、管理达到最优。
分区有很多的优点,例如:
1)保护数据;假如误操作,有分区的情况下就可能保护一部分数据免受误操作的影响;重装操作系统时,如果原先的系统中/home与/两个挂载点是对应着两个不同分区时,/home目录就不会受到影响;
2)针对不同挂载点的特性选择文件系统,开启不同的挂载选项(如是否需要即时同步,是否开启日志,是否启用压缩)以更好地发挥性能,比如对/var使用Reiserfs(这里面的文件通常小而繁杂),对/home使用XFS(超大容量支持可能是用户文件比较需求的),对/使用Ext4(更加稳定)。
3)分区可以缩小硬盘搜索范围,提高效率。
我举一例比较典型的分区方案:
挂载点 | 分区 | 文件系统 | 分配详情 |
---|---|---|---|
/boot | 启动分区 | Ext4 | 只需要几百m即可,可以容纳下两三个内核足矣。 |
/swap | 交换分区 | Swap | 物理内存的1.5-2倍,物理内存够大也可不分配 |
/ | 根分区 | Ext4 | 桌面系统给个100G~200G足矣。 |
/home | 家分区 | XFS | 剩下的可以全部分配给家分区 |
参考文献
https://linux.cn/article-7083-1.html