# 文件系统管理

# 回顾分区和文件系统

# 分区类型

  • 主分区:总共最多只能分四个
  • 扩展分区:只能由一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用。
  • 逻辑分区:逻辑分区是再扩展分区中划分的,如果是 IDE 硬盘,Linux 最多支持 59 个逻辑分区,如果是 SCSI 硬盘 Linux 最多支持 11 个逻辑分区

# 文件系统

  • ext2:是 ext 文件系统的升级版本,Red Hat Linux7.2 版本以前的系统默认都是 ext2 文件系统。1993 年发布,最大支持 16TB 的分区和最大 2TB 的文件
  • ext3:ext3 文件系统是 ext2 文件系统的升级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性。最大支持 16TB 的分区和最大 2TB 的文件
  • ext4:它是 ext3 文件系统的升级版。ext4 在性能、伸缩性和可靠性方面进行了大量改进。ext4 的改变可以说是翻天覆地的,比如向下兼容 ext3、最大 1EB 文件系统和 16TB 文件、无限数量子目录、Extents 连续数据块概念、多块分配、延迟分配、持久预分配、快速 FSCK、日志校验、无日志模式、在线碎片整理、inode 增强、默认启用 barrier 等。是 CentOS 6.3 的默认文件系统(1EB=1024PB=1024*1024TB)
  • xfs:…

# 文件系统的常用命令

# df 命令、du 命令、fsck 命令和 dump2fs 命令

文件系统查看命令 df

语法: di [选项] [挂载点]

选项:

-a 显式所有的文件系统信息,包括特殊文件系统,如 /proc、/sysfs

-h 使用习惯单位显示容量,如 KB,MB 或 GB 等

-T 显示文件类型系统

-m 以 MB 为单位显示容量

-k 以 KB 为单位显示容量。默认就是以 KB 为单位

统计目录或者文件大小

语法: du [选项] [目录或文件名]

选项:

-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量

-h 使用习惯单位显示磁盘占用量,如 KB,MB 或 GB 等

-s 统计总占用量,而不列出子目录和子文件的占用量

du 命令和 df 命令的区别

  • df 命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)
  • du 命令是面向文件的,只会计算文件或目录占用的空间

文件系统修复命令 fsck

语法: fsck [选项] 分区设备文件名

选项:

-a:不用显示用户提示,自动修复文件系统

-y:自动修复。和 - a 作用一致,不过有些文件系统只支持 - y

显示磁盘状态命令 dumpe2fs

语法: dumpe2fs 分区设备文件名

# 挂载命令

查询与自动挂载

语法: mount [-l]

#查询系统只已经挂载的设备,-l 会显示卷标名称

语法: mount -a

#依据配置文件 /etc/fstab 的内容,自动挂载

挂载命令格式

语法: mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点

选项:

-t 文件系统:加入文件系统类型来指定挂载的类型,可以 ext3、ext4、iso9660 等文件系统

-L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载

-o 特殊选项:可以指定挂载的额外选项

Untitled

# 挂载光盘与 U 盘

挂载光盘

[root@localhost ~]# mkdir /mnt/cdrom/
#建立挂载点
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/

卸载命令

[root@localhost ~]# umount 设备文件名或挂载点
[root@localhost ~]# umount /mnt/cdrom

挂载 U 盘

[root@localhost ~]# fdisk -l
# 查看U盘设备文件名
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/

注意:Linux 默认是不支持 NTFS 文件系统的

# 支持 NTFS 文件系统

# fdisk 分区

# fdisk 命令分区过程

查看新硬盘

语法: fdisk -l

使用 fdisk 命令分区

语法: fdisk /dev/sdb

Untitled

重新读取分区表信息

语法: partprobe

格式化分区

语法: mkfs -t ext4 /dev/sdb1

# 分区自动挂载

/etc/fstab 文件

  • 第一字段:分区设备文件名或 UUID(硬盘通用唯一识别码)
  • 第二字段:挂载点
  • 第三字段:文件系统名称
  • 第四字段:挂载参数
  • 第五字段:指定分区是否被 dump 备份,0 代表不备份,1 代表每天备份,2 代表不定期备份
  • 第六字段:指定分区是否被 fsck 检测,0 代表不检测,其他数字代表检测的优先级,那么当然 1 的优先级比 2 高

# /etc/fstab 文件修复

语法: mount -o remount,rw /

# 分配 swap 分区

free 命令

语法: free

#查看内存与 swap 分区使用情况

  • cached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程
  • buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入磁盘,减少了磁盘碎片和磁盘的反复寻道,加速了数据的写入过程

新建 swap 分区

语法: fdisk /dev/sdb

别忘记把分区 ID 改为 82

格式化

语法: mkswap /dev/sdb6

加入 swap 分区

[root@localhost ~]# swapon /dev/sdb6
#加入swap分区
[root@localhost ~]# swapoff /dev/sdb6
#取消swap分区

swap 分区开机自动挂载

[root@localhost ~]# vim /etc/fstab