centos磁盘与文件系统管理

centos磁盘与文件系统管理,第1张

Linux的标准文件系统为Ext2。是一种索引式文件系统。

文件系统一开始就将inode与block规划好了,除非重新格式化(或者利用resize2fs 等指令变更文件系统大小),否则 inode 与 block 固定后就不再变动。

Ext2 文件系统在格式化的时候分为多个区块群组 (block group) 的,每个区块群组都有独立的inode/block/superblock系统。每一个区块群组(block group)的六个主要内容:

inode table 与 data block称为 数据存放区域 ,至于其他例如 superblock、 block bitmap 与 inode bitmap 等区段就被称为 metadata (中介资料)

新建文件的过程:

数据的不一致 (Inconsistent) 状态 :在修改过的块写回之前,系统崩溃,甚至导致metadata 的内容与实际数据存放区产生不一致。 解决办法

为了避免CPU等待磁盘I/O,Linux使用 异步处理 (asynchronously)的方式。所谓的异步处理是这样的:磁盘数据在内存中如果没有修改过则设置为干净(clean)的。否则设定为脏的(Dirty)。但不立即写入到磁盘中! 系统会不定时的将内存中设定为Dirty的数据写回磁盘,以保持磁盘与内存数据的一致性。 也可以利sync 指令来手动强迫写入磁盘。

挂载点一定是目录,该目录为进入该文件系统的入口。 文件系统必须要挂载到目录树的某个目录后,才能够使用该文件系统。

想要知道你的Linux支持的文件系统有哪些,可以察看 /lib/modules/$(uname -r)/kernel/fs 这个目录;想要知道系统目前已加载到内存中支持的文件系统可以查看 /proc/filesystems 这个文件。

EXT系列文件系统的 缺点 :支持度最广,但格式化超慢, 原因 是预先规划出所有的inode/block/metadata等数据,随着磁盘容量越来越大,格式化越来越费时间。

xfs 文件系统 优点 :较适合大容量磁盘与巨型文件(如虚拟磁盘)。

xfs文件系统在资料的分布上,主要规划为三个部份,一个数据 区 (data section)、一个文件系统活动登录区 (log section)以及一个实时运作区 (realtime section)。 这三个区域的数据内容如下:

windows使用盘符来处理不同的文件系统,所谓不需要将不同的文件系统整合,而大多数UNIX *** 作系统都使用虚拟文件系统概念尝试将多种文件系统统一成一个有序的框架。

关键思想* :抽象出所有文件系统的共有部分,并且将这部分代码放在单独的一层,该层调用底层的实际文件系统来具体管理数据。

VFS有对用户进程的上层接口(POSIX接口),对实际文件系统的下层接口。只要实际文件系统提供VFS所需的功能,VFS就不需要知道或者关心数据具体存放在什么地方或者底层实际文件系统是什么的样子。

实际文件系统在使用前必须先注册,即提供一个包含VFS所需函数的地址的列表。

设计实际文件系统时只需要先获得VFS期待的功能,然后再实现这些功能即可,如果文件系统已经存在,则只需提供VFS所需功能即可。

硬链接 :多个文件名映射到同一文件的inode。hard link只是在某个目录的data block中新增一个文件名链接到某inode号码的关联记录。特点:

软链接(符号链接) :建立一个独立的文件,该文件的block记录的目标文件的路径。类似于windows的快捷方式。特点:

目录的链接计数 :新建一个子目录时,该子目录的链接计数为2,而当前目录链接计数加1,因为自目录中有.和..两个目录。

命令 :dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device

描述 :显示ext系列文件系统的超级块和区块群组信息。

命令 :xfs_info 挂载点 | 装置文件名

描述 :显示xfs文件系统的超级块和区块群组信息。

命令 :df [-ahikHTm] [ 目录或文件名]

描述 :可以查看文件系统的整体磁盘使用情况。

命令 :du [-ahskm] 文件或目录

描述 :评估文件系统的磁盘使用量(常用在推估目录所占容量)。

命令 :ln [-sf] 来源文件 目标文件

描述 :建立硬链接和软链接。

命令 :link 来源文件 目标文件

描述 :建立硬链接

命令 :unlink 目标文件

描述 :删除硬链接

新增磁盘的步骤:

命令 :lsblk [-dfimpt ] [device]

描述 :列出系统上的所有磁盘列表。

命令 :blkid

描述 :可以查看块设备(包括交换分区)的文件系统类型、LABEL、UUID、挂载目录等信息。

命令 :parted device_name print

描述 :列出磁盘的分区表类型与分区信息。

命令 :parted [装 置] [ 指令 [ 参数 ]]

描述 :对GPT或者MBR磁盘建立分区

命令 :gdisk 装置名

描述 :对GPT格式磁盘分区。

命令 :fdisk 装置名

描述 :对MBR格式磁盘分区。

命令 :partprobe [-s]

描述 :更新分区表信息。

命令 :mkfs [-t type] [fs-options] device [size]

描述 :根据指定的文件系统类型调用对应的格式化工具格式化磁盘。

命令 :mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] [-r parms] 装置名

描述 :将磁盘进行xfs格式化

命令 :mkfs.ext4 [-b size] [-L label] 装置名

描述 :将磁盘进行ext4格式化

命令 :xfs_repair [-fnd] 装置名

描述 :检验与修复xfs文件系统。修复时该文件系统不能被挂载!

命令 :fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [filesystem…] [–] [fs-specific-options]

描述 :根据指定的type调用相关工具来检验与修复文件系统。

命令 :fsck.ext4 [-pf] [-b superblock] 装置名

描述 :检验与修复ext4文件系统.

注意:

命令 :mount [-l|-h|-V]

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

mount [-fnrsvw] [-o options] device|dir

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

描述 :挂载文件系统。

基本上,不需要加上-t这个选项,系统会自动的分析最恰当的文件系统来尝试挂载你需要的装置!由于文件系统几乎都有 superblock , Linux 可以透过分析superblock 搭配Linux自己的驱动程序去测试挂载,如果成功的套和了,就立刻自动的使用该类型的文件系统挂载起来啊!那么系统有没有指定哪些类型的 filesystem 才需要进行上述的挂载测试呢?主要是参考底下这两个文件:

那怎么知道Linux有没有相关文件系统类型的驱动程序呢?Linux支持的文件系统之驱动程序都写在 /lib/modules/$(uname -r)/kernel/fs/ 目录找中,例如 ext4 的驱动程序就写在 /lib/modules/$(uname -r)/kernel/fs/ext4/ 这个目录下啦!

光驱一挂载之后就无法退出光盘片了!除非你将他卸除才能够退出!

命令 :umount [-fn] 装置文件名或挂载点

描述 :卸除文件系统或装置。

命令 :mknod 装置文件名 [bcp] [Major] [Minor]

描述 :设置装置的主次设备代码。

命令 :xfs_admin [-lu] [-L label] [-U uuid] 装置文件名

描述 :修改XFS文件系统的 UUID 与 Label name

命令 :tune2fs [-l] [-L Label] [-U uuid] 装置文件名

描述 :修改ext4文件系统的 UUID 与 Label name

在开机的时候就将文件系统挂载好,可以通过修改 /etc/fstab ,mount指令就是将所有的选项与参数写入到这个文件中。除此之外, /etc/fstab 还加入了 dump 这个备份用指令的支持! /etc/fstab 是开机时的配置文件,实际 filesystem 的挂载是记录到 /etc/mtab 与 /proc/mounts 。但当/etc/fstab 数据错误,导致无法开机而进入单人维护模式时,由于根目录是只读状态,无法修改/etc/fstab,也无法更新/etc/mtab ,只能使用 mount -n -o remount,rw / 来重新挂载根目录。

命令 :mkswap [options] device [size]

描述 :用于在一个文件或者设备上建立交换分区。

命令 :swapon [options] [specialfile…]

描述 :用于在一个文件或者设备上建立交换分区。

命令 :swapoff [-va] [specialfile…]

描述 :用于在一个文件或者设备上建立交换分区。

命令 :free [options]

描述 :显示当前系统内存使用情况。

关注点赞不迷路[可怜]

(接上文: CentOS磁盘和分区简介 )

1,磁盘分区之后并不能直接使用,需要在分区上创建文件系统并挂载;

2,查看系统能够支持的文件系统类型: cat /etc/filesystems

3,挂载

设备或文件系统,挂载的目标位置,称为挂载点(mount point)

挂载使用mount命令,设备、挂载点 两者都需要指明

卸载使用umount命令,设备、挂载点 两者只需要指明其一

Note:挂载完成后,挂载点下原有的文件就会被隐藏,无法访问,直到卸载。因此,通常 使用空目录作为挂载点

CentOS的文件系统创建工具 mkfs. fstype

其中,mkfs是Linux下各种文件系统创建工具( mkfs. fstype)的前端入口,这些工具都以 mkfs. 开头,后面是该工具管理的文件系统类型(fstype)。

实际上,ext系列文件系统真正常用的工具是 mke2fs ,其语法及常用选项如下:

用法举例: mke2fs -t ext4 -L 'test' -b 4096 -i 4096 -m 8 /dev/sdb1

因进程意外中止或系统崩溃等 原因导致定稿 *** 作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统,检测和修复建议离线(卸载磁盘或分区)进行;

举例: e2fsck -y /dev/sdb1

举例: fsck -t ext4 -a /dev/sdb1 #自动修复/dev/sdb1

3.1 显示ext系列文件系统的属性信息: dumpe2fs

dumpe2fs [-options] device

-h:只显示设备上的超级块信息,否则还会显示块组信息

3.2 显示或修改ext系列文件系统的Label信息: e2label

查看Label:e2label device

设定Label:e2label device LABEL

举例:

3.3 查看(也能修改)ext系列文件系统数据信息: tune2fs

举例: tune2fs -l /dev/sdb1

注意:块大小创建后不可修改;

tune2fs命令及其常用选项:

如果我们希望一个存储设备(比如优盘)不需要重新创建文件系统,就 能同时在Windows或Linux系统下使用 ,那么这时在优盘上创建vfat类型的文件系统就能满足需求。

fat和vfat

fat和vfat基本一致,区别在于vfat支持长文件名,而fat不支持。

此外,Linux将fat/vfat/fat32文件系统都统一用vfat表示,

vfat文件系统是CentOS原生支持的,但是fat文件系统的管理工具mkfs.vfat,mkfs.fat却未必开始就安装,比如我最小安装的CentOS 7就没有。

因此,首先要解决两个问题,

1.1,安装哪个包可以提供需要的管理工具?

通过yum可知,当前版本提供mkfs.vfat工具的是dosfstools-3.0.20-10.el7.x86_64这个包。

1.2,安装dosfstools-3.0.20-10.el7.x86_64包

yum install dosfstools -y

mkfs.vfat 命令的用法

mkfs.vfat [-options] device

其中一个比较重要的选项是 -F FAT-size,在命令的man手册中是这样介绍的:

Specifies the type of file allocation tables used (12, 16 or 32 bit). If nothing is specified, mkfs.fat will automatically select between 12, 16 and 32 bit, whatever fits better for the filesystem size.

简单渣翻:该选项用于指定文件分配表的类型(12,16或32 bit,即fat12,fat16或fat32)。如果没有指定,mkfs.fat将根据文件系统的大小,在12、16或32 bit中自动选择更合适的。

也就是说,如果这里指定-F选项如-F 32,创建的文件系统就是fat32,如果不指定, mkfs.vfat 工具将自动选择文件类型,创建的不一定是fat32的文件系统。所以为了保险起见还是指定该选项比较好。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/8011116.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存