Linux学习笔记:Linux磁盘与文件系统管理

一、磁盘组成

磁盘分区表主要有两种格式:MBR和GPT

    MBR分区表中第一个扇区最重要,里面有主要开机区(MBR)及分区表(partition table),MBR占446KB,partition table占64b

    GPT分区表除了分区数量扩充较多之外,支持的磁盘容量也可以超过2T

实体磁盘/dev/sd[a-p] 分区槽+[1-128]

虚拟机磁盘/dev/vd[a-p] 分区槽同上

此外还有LVM等 ?(未进行了解)

新的大容量磁盘大多得使用GPT分区表才能使用全部的容量

一个可被挂载的数据为一个文件系统而不是一个分区槽:

    传统的磁盘与文件系统应用中,一个分区槽只能被格式为一个文件系统,如今的raid等技术可以将一个分区槽划为多个文件系统(如LVM)

inode(存放权限与属性,一个文件占用一个)

date block(实际数据,当文件较大时可以占用多个date block)

superblock(记录此filesystem的整体信息,如iNode/block 的总量、使用量、剩余量,以及文件系统的格式和相关信息)

以上信息都有编号,如果能找到inode就会知道所有block的编号

索引式文件系统:inode中存放所有block的编号以及读取顺序,一般不需要碎片整理

FAT文件系统的读取方式类似于链表,需要经常进行随便整理

EXT2文件系统

格式化的时候基本是区分为多个区块组群,每个区块组群有独立的inode/block/superblock

文件系统最前面有一个启动扇区(boot sector)可以安装开机管理程序,从而制作多重引导环境

dateblock

支持的block大小有1k\2k\4k从而有不同的最大单一文件支持、最大文件系统总容量

注意:一个block只能存放一个文件的数据 大文件用多个小文件用不完,所以要根据存储数据类型来选择block大小

inode table

每个inode大小均固定为128b(ext4和xfs可设定为256b)

每个文件占用一个inode 读取文件时也是先读取inode

inode存储block地址可以只是用直接、间接、双间接、三间接的方式

superblock

记录整个filesystem的相关信息

大小问1024b

filesystem description、block bitmap、inode bitmap

 

查询superblock指令(EXT):dumpe2fs

查看当前操作系统有被格式化的装置:blkid

文件名是记录在目录的block中的-》新增、删除、更名文件名与目录的W权限有关

文件数据离散问题:block号码不连续

解决:将数据全部复制出来,将filesystem格式化后再复制进去

日志文件系统(未解决不一致问题-》突然情况导致中介数据与实际数据实际数据存放区不相同)

在filesystem中规划出一个区块,专门记录写入或修订文件时的步骤

journal区块

为提高效率磁盘读写使用异步处理,内存-》硬盘

**sync强制写入

 

查看操作系统支持的filesystem:ls -l /lib/modules/$(uname -r)/kernel/fs

Linux学习笔记:Linux磁盘与文件系统管理_第1张图片

查看已加载到内存中支持的文件系统:cat /proc/filesystems

Linux学习笔记:Linux磁盘与文件系统管理_第2张图片

VFS(Virtual Filesystem Switch)

系统使用该功能来管理所有的filesystem

XFS文件系统

EXT:支持度最广、格式化超慢

XFS被开发用于高容量磁盘以及高性能文件系统

分为:date section、log section、realtime section

date

类似于EXT的block group,包括block、inode、superblock等数据

大小都可调整

log

用来记录文件系统的变化,像是日志区

活动频繁、可以使用SSD来加快处理速度

realtime

 

查看XFS文件系统的详细描述:xfs_info

Linux学习笔记:Linux磁盘与文件系统管理_第3张图片

二、文件系统的主要操作

磁盘的目录与容量

df:列出文件系统的整体磁盘用量

uf:评估文件系统的磁盘使用量(常用在推估目录容量)

df

a:所有  k:1k为单位  m:1M为单位   h:便于阅读的方式  i:以inode数量来显示

T:列出连同filesystem Type

针对的是一整个文件系统,读取的主要是superblock中的信息,速度快

du

直接到文件系统中搜寻所有的文件数据,执行时间略长

 

实体链接与符号链接:ln

Hard link(实体链接)

在某个目录下新增一笔档名链接到某inode号码的关联记录

Linux学习笔记:Linux磁盘与文件系统管理_第4张图片

将任何一个档名删除也可以通过另外一个来访问数据

写在某目录block下,一般磁盘空间和inode的数目都不会改变

hard link不能跨文件系统

不能link目录

Symbolic Link(符号链接,快捷方式)

Linux学习笔记:Linux磁盘与文件系统管理_第5张图片

大小12的由来:/etc/crontab为12个字符

删掉源文件符号链接也不能访问

目录的link数量

新目录link数为2 新建一个文件或者文件夹link数+1

三、磁盘的分区、格式化、检验和挂载

新增磁盘的步骤:

1、对磁盘进行分区,已建立可用的partition

2、对partition进行格式化(format),以建立系统可用的filesystem

3、对刚刚建立好的filesystem进行检验

4、建立挂载点,进行挂载

列出系统上的所有磁盘列表:lsblk

d:仅列出磁盘本身  f:同时列出磁盘内文件系统的名字 m:同时列出/dev下面的权限数据  p:完整文件名  t:详细信息

输出信息:MAJ:MIN主要次要配置代码

RM是否为可拆卸设备

TYPE:disk、partition、rom

列出装置的UUID等参数:blkid

UUID(universally unique identifier)全局单一标识符

列出磁盘的分区类型和分区信息:parted

    parted 设备名 print

磁盘分区:gdisk/fdisk

MBR分区表使用fdisk  GPT分区表使用gdisk

*msdos就是MBR

gdisk和fdisk都是针对整个磁盘而不是partition

更新Linux核心的分区表信息:partprobe -s

磁盘格式化(配置文件系统):mkfs

    mkfs.xfs或者mkfs.ext4

ext4的默认配置信息在/proc/make2fs.conf

当文件系统发生错乱时的救援指令:

xfs:xfs_repair

ext4:fsck.ext4

挂载:mount  重新挂载:remount  取消挂载:umount

配置代码

8为major 0为minor

你可能感兴趣的:(Linux学习,Linux学习)