Linux文件系统管理

Posted 大拨鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件系统管理相关的知识,希望对你有一定的参考价值。

往期内容:

Linux常用指令合集
Linux文本编辑器
Linux软件包管理
Linux用户管理

文章目录

回顾分区和文件系统

分区类型

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

分区表示方法

分区的设备文件名

主分区1/dev/sda1
主分区2/dev/sda2
主分区3/dev/sda3
扩展分区/dev/sda4
逻辑分区1/dev/sda5
逻辑分区2/dev/sda6
逻辑分区3/dev/sda7

分区的设备文件名

主分区1/dev/sda1
扩展分区/dev/sda2
逻辑分区1/dev/sda5
逻辑分区2/dev/sda6
逻辑分区3/dev/sda7

逻辑分区文件名都是从5开始。

文件系统常见命令

文件系统查看命令

df [选项]
选项:
	-a 显示所有文件系统信息,包括特殊文件系统,如/proc、/sysfs
	-h 使用习惯单位显示容量,如KB,MB或GB等
	-T 显示文件系统类型
	-m 以MB为单位显示容量
	-k 以KB为单位显示容量。默认是以KB为单位

我们输入df就可查看文件系统,默认是以K字节显示容量,加选项**-h**就能用我们熟悉的单位表示,这个选项是最常用的。

统计目录或文件大小

du [选项][目录或文件名]
选项:
	-a 显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
	-h 使用习惯
	-s 统计总占用量,而不列出子目录和子文件的占用量

du命令和df命令的区别:

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

文件修复命令fsck

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

知道命令作用就行,一般不需要我们用。

挂载命令

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

mount -l

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

mount -a

挂载命令格式

mount -t 文件系统 -L 卷标名 -o 设备文件名 挂载点
选项:
	-t 文件系统:加入文件系统类型来制定挂载的类型,可以ext3、ext4...xfs等文件系统
	-L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
	-o 特殊选项:可以指定挂载的额外选项

挂载光盘

  1. 创建空目录挂载光盘
mkdir /mnt/cdrom/
  1. 挂载光盘
mount -t iso9660 /dev/cdrom /mnt/cdrom   
#iso9660是默认的光盘文件系统,既然是默认的,可以写成下面这种设备文件名+挂载点的形式
mount /dev/sr0 /mnt/cdrom #sr0实际cdrom的软连接,也就是相当于cdrom

卸载光盘

注意: 卸载时不能在挂载光盘的目录下执行。

umount 设备文件名或挂载点

例如:

umount /mnt/cdrom
umount /dev/sr0

挂载U盘

  1. 插入U盘,选择在虚拟机中打开,注意这一步要用虚拟机,不能用远程连接工具。

  1. 查看U盘设备文件名,找到设备分区号,例如这里是sdb1。
fdisk -l

  1. 找到设备分区号,就可以挂载U盘了。
mkdir /mnt/usb
mount -t vfat /dev/sdb1 /mnt/usb/ #vfat是文件系统
  1. 进入挂载点,就可以看到U盘的内容了。

fdisk分区

fdisk命令分区过程

  1. 添加新硬盘

将虚拟机关机,点击虚拟机,选择设置

点击添加,选择硬盘,然后点下一步。

其他全部默认即可。

创建完毕后,我们可以看到多了一个新硬盘。

然后开机,进行下面操作。

  1. 查看新的硬盘,用的命令与前面查看U盘相同。
fdisk -l

可以看到我们的新硬盘已经被识别出来了。

现在sdb已经被识别出来了,但是没有分区,下面我们来进行分区。

使用下列命令进行分区操作。

fdisk /dev/sdb

然后可以输入相关的命令查看分区数学,如果不熟悉的可以按m查看帮助:

翻译:

按n新建分区:

可以看到,最多可以建立四个主分区(扩展分区+主分区),p是建立主分区,e是建立扩展分区,我们先按p创建主分区。

选择分区号,我这里选1,分区号最好按顺序创建。

接着是分配内存

这时候分区已经创建完成,我们输入命令p就可以看到该分区。

然后我们用同样的方法将剩余的内存创建成扩展分区:

这时候如果我们再按n新建分区就发现多了一个新建逻辑分区的选项,因为逻辑分区是在扩展分区进行划分的,当有了扩展分区,自然就可以。

创建逻辑分区的步骤和前面相似,这里就不赘述了。

最后按w保存退出,有时候会提示你重启,这时可输入命令partprobe

格式化分区

注意:只有主分区和逻辑分区可以格式化,扩展分区不可以

这里挂载我刚刚创建的一个主分区和逻辑分区。

mkfs.xfs /dev/sdb1 #ext4是文件系统
mkfs -t ext4 /dev/sdb5

挂载分区

创建挂载点,分别用于挂载我刚刚创建的两个分区

mkdir /disk1
mkdir /disk5

挂载分区

mount /dev/sdb1 /disk1/
mount /dev/sdb5 /disk5/

分区自动挂载与fstab文件修复

fstab文件

为了使我们上面的两个挂载分区重启后会自动挂载,我们需要修改一下fstab文件。

第一字段: 分区设备文件名或UUID(硬盘通用唯一识别码,用于识别是哪一个硬盘)

第二字段: 挂载点

第三字段: 文件系统名称

第四字段: 挂载参数

第五字段: 指定分区是否被dump备份,0表示不备份,1表示每天备份,2表示不定期备份

第六字段: 指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,1的优先级比2高。

自动挂载

我们按照fstab文件格式,添加一些内容,来使sdb1自动挂载。

注意: fstab是一个重要的系统启动资源文件,不能出现错误,否则会导致系统崩溃。

为了保险起见,我们不要急着重启,先用下列命令进行检测,如果没有报错才重启。

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

分配swap分区

free命令

功能:查看内存与swap分区使用情况。

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

新建swap分区

fdisk /dev/sdb

操作和上面创建主分区一样,这里我分1G内存给swap分区。

但现在新建的分区Id号还是Linux的标准分区83:

输入命令l可以看到,swap的标准分区号是82:

所以还需要调整分区id号来修改为swap分区。

输入命令t进行id修改:

格式化

mkswap /dev/sdb6

加入swap分区

swapon /dev/sdb6

取消swap分区

swapoff /dev/sdb6

swap分区开机自动挂载

还是修改fstab文件即可

vim /etc/fstab

用下列命令检测一下,没有报错就可以重启了。

mount -a

参考资料:
[1]https://www.bilibili.com/video/BV1mW411i7Qf

以上是关于Linux文件系统管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 磁盘管理

Linux 磁盘管理

Linux 的磁盘格式化挂载磁盘检验等管理功能

linux之磁盘管理

Linux 磁盘管理

Linux 磁盘管理