文件系统基础及ext文件系统创建及管理详解、文件系统的使用及卸载、fstab文件格式及自动挂载系统的

创建文件系统--分区格式化

格式化:

低级格式化:

划分磁道

高级格式化:

创建文件系统,按照某种特定的标准,将整个分区划分为大小相同的若干小的逻辑编址单元,每个这样的单元称为块(block)【windows中称为簇】;

划分块的标准:

在Linux的文件系统中,主要的块的划分标准就是:每个块包括2^1或2^2或2^3个扇区;即块大小可以是1024字节或者是2048字节或者是4096字节;

注意:

1.被划分出来的块,每一个只能存放一个文件的内容,一个文件可以存储在多个块上;

2.如果在某个分区中要创建大量的小文件,就将块大小设置的小一些;反之,如果在某个分区中要创建大量的大文件,就将块大小设置的大一些;

3.如果分区的空间较大可以将块设置的大一些;

FHS--文件系统的层级标准

对于数据的管理:

平面分类管理:

遍历数据;

空间分类管理(层次化)

逻辑编址:创建文件系统实际上就是给分区进行存储空间的逻辑地址;

特点:仅需要经过有限次且有效的查找即可定位到目标文件;

在一个分区中创建了文件系统的步骤:

1.首先,文件系统会将分区划分成大小相等的若干块数据块;

元数据块:

存放文件的属性信息(大小,权限,所有权,时间戳,数据块指针【直接指针、间接指针】);

存放每个文件的元数据的固定的存储空间,称为index node,简称inode;

在Linux的文件系统中,每个inode大小一般是128字节;每个iNode都有其对应的inode编号;

位图:

inode位图

块位图

数据块:

存放文件中所包含的流式数据的内容;

日志块:断点续传,根据日志传输数据,保证数据的一致性;

特殊文件:

只占据元数据块中的inode,而不占据数据块;

设备文件:

block special

character special

此类文件是将元数据区域inode中的数据块指针换成了设备号来保存;

符号链接文件:

symbolic link

此类文件是将inode中数据块指针换成了另一个文件的访问路径;

随着磁盘空间越来越大,划分出来的块的数量越来越多,管理难度越来越大;通过划分块组来解决此问题;

块组来解决此问题:

块组:

每个快组中有独立的元数据块和数据块;

存放数据的时候,以块组内的数据优先选择,如果块组内的数据块不够,可以通过文件系统的存储策略来申请多个块组协同存储;

超级块:

主要定义了在整个分区中有多少个块组,及每个块组的边界;

为了防止超级块发生故障导致整个文件系统崩溃,文件系统会自动对超级块进行备份;

为了防止数据的不一致,在文件系统中引入日志块的概念;

日志块:对于数据的写入操作做日志记录的块;

数据不一致通常是由不洁关机、不洁断电导致;

一个完整的Linux系统:

超级块,inode,inode bitmap,block bitmap,data block,journal block

想要查找/var/log/message文件的内容,是怎样的查找过程?

目录:内容是文件名;

每个文件名是文件的特有的标识,每个文件名都对应一个inode;

Linux支持的文件系统:

位于内核空间中的文件系统驱动路径:/usr/lib/modules/KERNEL-VERSION/kernel/fs/

文件系统可以是内核的一部分,也可以是内核的模块;

位于用户空间中的文件系统管理程序:

管理命令:

Linux支持的文件系统:

1.Linux专属的文件系统:

ext系列:ext(极不稳定)->ext2(核心)、ext3(引入日志块,解决数据不一致)、ext4(从centos6开始默认使用)

ext4特性:

单个分区最大可达到50TB;

单个文件最大可达到64EB;

可以在根分区上设置文件系统;

可以在启动分区上设置文件系统;

2.xfs:(扩展的文件系统)

最大分区支持500TB;

默认在centos7中使用;

3.reiserfs:文件恢复性较强(没落ing)

4.btrfs:2016年正式发行,之前都是技术预览版;无须分区,直接存放文件,数据负载均衡;

5.ISO9660:光盘文件系统

6.FAT(Linux中支持windows文件系统FAT):Linux中写法多:vfat

7.NTFS:默认不支持,可以通过调整内核参数以获得支持;

8.网络文件系统:NFS、CIFS

9.集群文件系统:gfs2、ocfs2

10.分布式文件系统:

内核级:ceph

用户空间(应用级):mogilefs、moosefs、glusterfs

11.Unix的文件系统:ufs、FFS、JFS、zfs(终极文件系统)

12.伪文件系统:proc、sys、tmpfs、hugepagefs;

并非管理磁盘数据的文件系统,而是管理内存数据的文件系统;

对于不同的发行版本的Linux,都有其默认使用的文件系统;

RHEL或centos系列:

5:ext3

6:ext4

7:xfs

管理文件系统:

创建文件系统:

使用文件系统(挂载文件系统):

停止使用文件系统(卸载文件系统):

文件系统的检测和修复;

创建文件系统的用户空间工具:

mkfs - 创建一个 Linux 文件系统

mkfs [ -V ] [ -t 文件系统类型 ] [ fs-选项 ] 文件系统 [ 块 ]

RHEL或centos系列发行版本中,可以使用mkfs.ext4,mkfs.btrfs,...等工具来代替mkfs来创建文件系统

示例:

mkfs -t ext4 /dev/sdb1

mkfs.ext4 /dev/sdb2

注意:

1.不要使用磁盘设备名称或扩展分区设备名称作为mkfs命令的参数;如果使用磁盘设备或扩展分区设备名称作为mkfs命令的参数,则所有分区都将被删除;

2.只有主分区和逻辑分区才能使用mkfs命令创建文件系统;

3.如果要创建的目标文件系统是ext系列文件系统,那么可以使用mke2fs命令;

mke2fs命令:

mke2fs - create an ext2/ext3/ext4 filesystem

常用选项:

-b block-size:在创建文件系统时,指定每一个块的大小;默认值是4096字节,单位是字节;调整时,只能写1024,2048及4096;

-i bytes-per-inode:在创建文件系统时,指定inode与字节的比率;即多少个字节创建一个inode,默认值是16384;

-j:创建有日志功能的文件系统,即:ext3;

-m reserved-blocks-percentage:在创建文件系统时,指定为管理员保留的磁盘空间的百分比;默认值是5;

-n:并非真正创建文件系统,而好似显示在创建文件系统时所做的操作;

-N number-of-inodes:在创建文件系统时,直接指明在此文件系统中创建的inode的数量;

-O [^]feature[,...]:在创建文件系统时,关闭或开启文件系统特性;

-t fs-type:在创建文件系统时,指定文件系统类型;

修改ext系列文件系统的卷标:

e2label命令

e2label - Change the label on an ext2/ext3/ext4 filesystem

e2label device [ new-label ]

注意:如果不加new-label参数,则是查看指定设备的卷标;如果添加了new-label参数,则直接将设备的卷标设置为new-label,而不考虑原来是否有卷标或者原卷标是什么;

修改ext系列文件系统的属性,可以使用tune2fs命令:

tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems

在ext2/ext3/ext4文件系统上调整那些

常用选项:

-l:显示超级块的内容;

-j:将ext2文件系统修改调整为ext3文件系统(该过程是单向的);

-m reserved-blocks-percentage::调整文件系统中文件预留空间的百分比;

-r reserved-blocks-count:调整文件系统中预留的磁盘空间的块数;

-L volume-name:修改卷标;

-O [^]feature[,...]:修改文件系统特性是否打开;

文件系统的检测和修复工具:

fsck - 检查并修复Linux文件系统

fsck [ -ar ] [ -t fstype ] [filesystem ... ]

常用选项:

-t fstype:指定要检测的文件系统的文件系统类型;

-a:无须交互,自动修复检测到的所有问题;

-r:交互式修复检测到的问题;

ext系列文件系统专用的检测工具:

e2fsck

e2fsck - check a Linux ext2/ext3/ext4 file system

格式:e2fsck [-y] [-f] device

常用选项:

-y:在交互式过程中所有的问题都以“yes”来回答;

-f:强制检测并修复;即使文件系统处于clean状态也修复;

blkid

blkid - locate/print block device attributes

格式:

blkid -L label | -U uuid

blkid [-dghlv] [-c file] [-o format] [-s tag]

[-t NAME=value] [device ...]

blkid -p [-O offset] [-o format] [-S size] [-s tag]

[-n list] [-u list] device ...

blkid -i [-o format] [-s tag] device ...

常用选项:

-L label:根据指定的卷标进行块设备查找定位;

-U UUID:根据指定的UUID进行块设备查找定位;

findfs:

findfs - find a filesystem by label or UUID

LABEL=<label>

Specifies filesystem label.

UUID=<uuid>

Specifies filesystem UUID.

swap文件系统:

前提:分区的类型必须是swap类型,即:分区的系统id必须是82;

修改方法:在fdisk交互模式中,使用t命令将指定的分区类型修改为82即可;

创建swap文件系统:

mkswap

mkswap - 建立一个linux交换区

格式:mkswap [-c] [-vN] [-f] device

常用选项:

-f,--force:强制执行;

-L LABEL:设置交换分区的卷标;

-U UUID:指定交换分区的UUID,建议不使用此选项而是让系统自动生成;

示例:mkswap /dev/sdb3

利用一个大文件创建交换分区:

示例:

~]# dd if=/dev/zero of=/tmp/swapfile bs=1024 count=1024000

~]# mkswap /tmp/swapfile

使用文件系统--挂载:

挂载:对于Linux系统来说,文件系统只能有唯一的一个原初访问入口,此访问入口被称为“根文件系统”;其他所有的文件系统都必须通过某种特定的方式关联至根文件系统或者根文件系统的子目录中,而此关联过程被称为“挂载”;用于关联根文件系统和其他文件系统的目录,就被称为“挂载点”;

挂载点:mount point,通常是一个目录,该目录在成为挂载点后,就是其他文件系统的访问入口;如:/boot

要求:

1.作为挂载点的目录必须事先存在(不存在则挂载必定失败);

2.作为挂载点的目录应该是没有被使用或不能被其他进程占用的目录,换言之,必须是空闲目录;

3.作为挂载点目录,一旦挂载其他文件系统,则失去原系统中的特性;简单说,如果一个目录中有文件名,一旦挂载了其他文件系统,则原来的文件名不可见,这样的目录中新的内容是新文件系统中的文件名;这个过程会一直持续到新文件系统被卸载;

完成挂载操作,使用mount命令;

mount - mount a filesystem

格式:mount [-lhV]

mount -a [-fFnrsvw] [-t vfstype] [-O optlist]

mount [-fnrsvw] [-o option[,option]...]  device|dir

mount [-fnrsvw] [-t vfstype] [-o options] device dir

常用选项:

-r,--read only:以只读方式挂载目标文件系统;通常用于光盘挂载;

-w, --rw, --read-write:以可读可写的方式挂载目标文件系统,默认挂载方式;

-n, --no-mtab:默认情况下,所有挂载块设备的操作都会被自动记录在/etc/mtab文件中,如果使用了-n,--no-mtab选项,即表示即便挂载成功,也不会将挂载信息记录在/etc/mtab文件中;

-t, --types vfstype:在挂载文件系统时,指明目标文件系统的类型;如果省略该选项,mount命令会通过blkid来判断要挂载的目标文件系统的类型;

-L, --label label:通过指定的文件系统的卷标来挂载目标文件系统;

-U, --uuid uuid:通过指定的文件系统的UUID来挂载目标文件系统;

-a, --all:根据/etc/fstab文件中所指定的文件系统进行自动挂载;

-o, --options opts:在挂载目标文件系统时,可以调整挂载参数选项;

FILESYSTEM INDEPENDENT MOUNT OPTIONS:

sync/async:同步/异步挂载选项;

atime/noatime:文件或目录被访问时,是否更新访问时间戳;

diratime/nodiratime:目标被访问时,是否更新访问时间戳;

ro/rw:是以只读/可读可写方式来挂载文件系统;相当于-r/-w选项的功能;

dev/nodev:在此文件系统中是否允许创建设备文件;

exec/noexec:在此文件系统中,是否允许执行程序文件,包括各种二进制文件和各种脚本;

auto/noauto:在挂载此文件系统时,是否可以使用-a选项进行挂载;

user/nouser:是否允许普通用户挂载此文件系统;

uid/nouid:在此文件系统中,是否允许程序文件上的suid和sgid特殊权限生效;

relatime/norelatime:在此文件系统中,是否参考inode访问时间来修改其修改时间戳和改变时间戳;

remount:对于目标文件系统不需要卸载就可以应用新的挂载选项;

acl:只在ext系列文件系统或xfs文件系统中使用,可以使用文件系统的发出来、功能;

defaults:默认选项,其中包括:rw,suid,dev,exec,auto,nouser,and async.

loop:使用环回设备,将镜像文件当做文件系统挂载至指定的挂载点;

-B,--BIND:将某个已经挂载的文件系统绑定至另一个挂载点;

示例:# mount -B|--bind mount_point1 mount_point2

示例:# mount /dev/sdb1 /mnt/db1

# mount -o remount,ro /mnt/db1

卸载已经挂载的文件系统:

umount命令:

umount - 卸载文件系统

umount -a :卸载当前已经挂载的文件系统中的所有可卸载的文件系统;

umount {dir|device}...:通过指定的挂载点或设备文件名称,卸载指定设备;

挂载光盘:

在虚拟机中,需要保证光盘镜像文件被放入虚拟机的光驱,并且保证虚拟机的光驱处于“已连接”的状态;需要实现创建挂载点(/mnt/cdrom)

# mount -r /dev/sr0 /mnt/cdrom

挂载交换分区:

swapon:

卸载交换分区:

swapoff:

swapon.swapoff - enable/disable devices and file for paging and swapping

-a,--all:自动挂载/etc/fstab文件中被正确定义的所有的交换分区;

/etc/fstab文件的格式:

共6个字段,默认使用空白字符(制表符)作为字段分隔符;留个字段的含义分别为:

1.要挂载的设备或文件系统名称,也可以是卷标或UUID;

如果要使用卷标必须使用:LABEL="label"

如果要使用UUID必须使用:UUID="uuid"

2.挂载点:

swap设备或文件无需挂载点,在此字段写swap即可;

3.文件系统类型:

4.默认的文件系统挂载选项:想要指定多个选项时,使用逗号分隔的列表;

5.转储频率:

使用dump命令自动备份分区数据的频率:

0:表示不备份;

1:每天备份一次:

2:每两天备份一次,即:每隔一天备份一次;

...

6.自检次序:

0:不自检

1:优先自检,通常仅设置在根文件系统上;

2:次级自检;

...

9:最低优先级自检;

/etc/fstab文件的作用:

在系统启动过程中,会自动挂载该文件中所有被正确列出的文件系统;

时间: 2024-10-23 05:33:27

文件系统基础及ext文件系统创建及管理详解、文件系统的使用及卸载、fstab文件格式及自动挂载系统的的相关文章

磁盘管理详解(02)

一.文件系统概念 1.文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构:即在存储设备上组织文件的方法.操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统. 2.从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统.具体地说,它负责为用户建立文件,存入.读出.修改.转储文件,控制文件的存取,安全控制,日志,压缩, 加密等. 二.文件系统类型 1.常用的Linux文件系统:ext2, ext3, ext4,

linux磁盘管理之LVM逻辑卷认识与管理详解(实验详细,可跟做)

Linux磁盘管理之LVM逻辑卷认识与管理详解 前言 本文接着上篇文章作如下延伸:链接:Linux磁盘管理之磁盘管理与文件系统 什么是LVM?为什么需要LVM? 如何具体进行LVM逻辑卷管理? 什么是磁盘配额?为什么需要磁盘配额? 在Linux中进行磁盘配额的条件是什么呢? 如何具体进行磁盘配额? 下面对以上问题逐一讲解,深入实例进行操作,带你深入理解linux磁盘管理之LVM逻辑卷管理. 一.LVM概述 1.什么是LVM?为什么需要LVM? ? 许多 Linux 使用者安装操作系统时都会遇到这

ASP.NET状态管理详解,让你明明白白

开发WinFrom的程序员可能不会在意维护应用程序的状态,因为WinFrom本身就在客户端运行,可以直接在内存中维护其应用程序状态.但ASP.NET应用程序在服务器端运行,客户端使用无状态的http协议对ASP.NET应用程序发出请求,ASP.NET应用程序响应用户请求,向客户端发送请求的HTML代码,服务器并不会维护任何客户端状态.考虑一个有成千上万并发用户的服务器,如果为每一个用户都维护状态的话会耗费非常多的资源. 由于使用无状态的http协议作为web应用程序的通信协议,当客户端每次请求页

Ext.TabPanel中的items详解

Ext.TabPanel中的items: (来自项目源码中的items条目代码) items:{ id:"opt1", title:"默认页面", tabTip:"这是默认页面,不可以关闭", html:"这是默认页面哦!" },,,, items里面的这一组配置究竟是创建什么组件的配置项,在哪里有说明呢?英文原版api给出了说明. If an xtype is not explicitly specified, the de

【Android基础】内容提供者ContentProvider的使用详解

1.什么是ContentProvider 首先,ContentProvider(内容提供者)是android中的四大组件之一,但是在一般的开发中,可能使用的比较少. ContentProvider为不同的软件之间数据共享,提供统一的接口.也就是说,如果我们想让其他的应用使用我们自己程序内的数据,就可以使用ContentProvider定义一个对外开放的接口,从而使得其他的应用可以使用咱们应用的文件.数据库内存储的信息.当然,自己开发的应用需要给其他应用共享信息的需求可能比较少见,但是在Andro

Yum软件包管理详解

目录 1. Yum 1.1 检查和更新包 1.1.1 查询更新 1.1.2 更新包 1.1.3 使用 ISO 和 Yum 离线升级系统 1.2 使用包 1.2.1 搜索包 1.2.2 列出包 1.2.3 显示包信息 1.2.4 安装包 删除包 1.3 查看事务记录 1.3.1 事务记录 1.3.2 检查事务 1.3.3 恢复和重复事务 1.4 配置yum和yum存储库 1.4.1 配置 /etc/yum.conf 文件 1.4.2 /etc/yum.conf 的[main]选项 1.4.3 /e

进程管理之工作管理详解(job control)

进程管理之工作管理详解(job control) 1 什么是工作管理(job control) 我们知道linux是多任务多终端工作的操作系统.我们可以在多个终端进行工作,也可以在一个终端进行多个任务工作.那在一个终端同时进行多个工作任务,就称为工作管理.比如这种情况,在一个终端,你想要复制文件,同时你还想压缩打包文件,甚至你还想编辑文件,这个时候就要用到工作管理.工作管理的情况,大概是这样的.直接上图. 首先,你要明白前台,后台的概念.前台就是当前我们登陆shell操作的终端,我们与之交互,看

创建物化视图详解(图解)

创建物化视图详解 一,什么是物化视图 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 二,作用. 在类似统计功能中,查询操作是无可避免,而这些查询操作如果很频繁,对整体数据库性能是很致命的.而物化视图实现远程数据源与本地数据的实时同步,也就是定时刷新,通过在本地创建物化视图可以大大提高查询效率. 三,流程图: 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库

Linux01-Linux进程管理详解44

一.进程    1.进程属性: a)进程状态 b)父子关系 c)优先级关系 0-139用户优先级,数字越小优先级越高: 0-99:内核调整的 100-139:用户可控制 nice值: -20-19 100-139 普通用户仅能够调大自己的进程的Nice值: 2.进程优先级 a)衡量面对不同的算法时,程序的性能如何,O标准(坐标轴表示): O(1) O(n) O(logn) O(n^2) O(2^n) b)每个进程的PID都是唯一的: init: 进程号为1 3.进程的分类: 跟终端相关的进程 跟