Linux系统文件系统相关知识整理,系统为Ubuntu16.04LTS
文件系统
操作系统处理各种数据,这些数据在硬盘上就是二进制,文件系统将这些二进制的数据还原为人类能看懂的文件形式,文件系统的目的就是实现数据的查询和存储。
由于使用场合、使用环境的不同,Linux有多种文件系统,不同的文件系统支持不同的体系。文件系统是管理数据的,而可以存储数据的物理设备有硬盘、U盘、SD卡、NAND FLASH、NOR FLASH、网络存储设备等。不同的存储设备其物理结构不同,不同的物理结构就需要不同的文件系统去管理,比如管理NAND FLASH的话使用YAFFS文件系统,管理硬盘、SD卡的话就是ext文件系统等等。
Linux文件系统类型
Linux下的文件系统主要有ext2、ext3、ext4等文件系统。
ext2文件系统:
ext2是Linux早期的文件系统,但是随着技术的发展ext2文件系统已经不推荐使用了,ext2是一个非日志文件系统,大多数的Linux发行版都不支持ext2文件系统了。
ext3文件系统:
ext3是在ext2的基础上发展起来的文件系统,完全兼容ext2文件系统,ext3是一个日志文件系统,支持大文件,特点有如下:
高可靠性:使用ext3文件系统的话,即使系统非正常关机、发生死机等情况,恢复ext3文件系统也只需要数十秒。
数据完整性:ext3提高了文件系统的完整性,避免意外死机或者关机对文件系统的伤害。
文件系统速度:ext3的日志功能对磁盘驱动器读写头进行了优化,文件系统速度相对与ext2来说没有降低。
数据转换:从ext2转换到ext3非常容易,只需要两条指令就可以完成转换。用户不需要花时间去备份、恢复、格式化分区等,用ext3文件系统提供的工具tune2fs即可轻松的将ext2文件系统转换为ext3日志文件系统。ext3文件系统不需要经过任何修改,可以直接挂载成ext2文件系统。
ext4文件系统:
ext4文件系统是在ext3上发展起来的,ext4相比与ext3提供了更佳的性能和可靠性,并且功能更丰富,ext4向下兼容ext3和ext2,因此可以将ext2和ext3挂载为ext4。
Shell输入以下指令查询当前磁盘挂载的文件系统:
1 | |
Linux文件系统结构
Linux根目录为
1 | |
使用tree工具查看目录树结构
安装tree
1 | |
运行tree命令
1 | |
1 | |

/bin存储一些二进制可执行命令文件,/usr/bin也存放了一些基于用户的命令文件。
/boot存放Ubuntu系统内核和系统启动文件。
/dev存放设备文件,Linux驱动主要跟这个文件夹有关。
/etc保存系统管理所需的配置文件和目录。
/home普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
/sbin存储了很多系统命令,通常包含可以安装、删除和格式化各种东西的工具。/usr/sbin也存储了许多系统命令。
/lib保存系统程序运行所需的库文件,/usr/lib下存放了一些用于普通用户的库文件。
/lost+found一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
/media存放Ubuntu系统自动挂载的设备文件。
/mnt通常包括系统引导后被挂载的文件系统的挂载点。
/opt可选文件和程序的存放目录。
/proc虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
/root超级用户root的根目录文件。
/run系统进程存储临时数据。
/srv包含服务器的数据。如果你正在 Linux 机器上运行 Web 服务器,你网站的 HTML文件将放到 /srv/http(或 /srv/www)。 如果你正在运行 FTP 服务器,则你的文件将放到 /srv/ftp。
/sys系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。
/tmp存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
/var存储一些不断变化的文件,比如日志文件/usr包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
磁盘管理
Linux下挂载点对应Windows下分区
“挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”,
文件/etc/fstab详细的记录了Ubuntu中硬盘分区的情况

“/ was on /dev/sda1 during installation”,说明根目录“/”是在/dev/sda1上的,其中“/”是挂载点,“/dev/sda1”就是我们装Ubuntu系统的硬盘。由于我们的系统是安装在虚拟机中的,因此都是虚拟硬盘。
查看当前系统中的磁盘:
1 | |
上述命令就是打印出所有以/dev/sd开头的设备文件,
有四个磁盘设备文件,其中sd表示是SATA硬盘或者其它外部设备,最后面的数字表示该硬盘上的第n个分区,比如/dev/sda1就表示磁盘sda上的第一个分区。
图中都是以/dev/sda开头的,说明当前只有一个硬盘。如果再插上U盘、SD卡啥的就可能会出现/dev/sdb,/dev/sdc等等。如果你的U盘有两个分区那么可能就会出现/dev/sdb1、dev/sdb2这样的设备文件。
磁盘管理命令
磁盘分区命令fdisk
格式化命令mkfs
挂载分区命令mount
卸载命令umount