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

文件系统和磁盘分区

  • 对于一个存储空间来讲,文件系统是独占的,所以要进行分区(每一个分区都可以实现一个文件系统,即每一个分区都是一个独立的文件系统)
  • 每一种文件系统都是工作在内核中的,通过系统调用提供文件的管理功能。所以,同一个操作系统的不同文件系统的系统调用一般是不一致的
  • Linux操作系统支持N种文件系统,Linux提供一个统一的接口,屏蔽了这些文件系统的差异,而这个接口叫VFS(Virtual File System虚拟文件系统)
  • 文件系统是一种工作在内核中的软件,能够将某个分区中的数据以文件的方式组织并提供给我们的管理机制
  • 文件系统的数据分为两类:元数据(metadata)和数据(data)。
  • 文件系统是在格式化分区的时候创建的

小结:Linux操作系统支持多种文件系统,使用统一的接口(VFS)屏蔽各文件系统之间的差异。文件系统工作在系统内核中,每一个分区都是一个独立的文件系统。


磁盘块的存储结构

  • 大小固定的(可选)
  • 一个块只能属于一个文件,一个文件可以包含多个块
  • 一个文件所占用的磁盘块并不一定是连续的,所以需要元数据
  • 条目编号,inode(index node)
  • 每一个文件都有一个元数据(128byte),用于追踪一个文件,包含了文件类型(普通文件、目录、链接等等)、权限、链接次数、属主和属组ID、时间戳、所占据的磁盘块
  • 目录跟普通文件一样,也是一个文件,文件名存放在目录上
  • 查找文件,先找到目录帧,从目录上查找到文件名所对应的条目,然后根据条目便可以找到所在的磁盘块

  • 根是一种特殊的目录,是自引用的

小结:磁盘块(block)在分区格式化时指定一个大小,此大小指定后是不可修改的,要想修改必须重新格式化分区。


文件操作与磁盘存储对应过程

  • 计算机最快的查找机制是key-value
  • bitmap:结点位图,块位图,快速扫描,0为未使用,1为使用,则扫描为0的即可申请使用,加快了创建的过程。删除文件就是将对应的位图上的位置标记为0,数据时没有动的,所以删除的文件是可以恢复的,若存入新的文件则会覆盖使得不容易找回数据。

文件粉碎机的原理就是生成一大推的0或1覆盖掉原来的磁盘信息以达到删除的目的。

  • 剪切的过程就是在一个目录上把对应的条目删除,在另一个目录上增加对应的条目,所以剪贴比较快,但从一个分区剪切到另一个分区则不同了(此时要先复制再删除)
  • 通过两个或两个以上的路径来访问同一个文件(同样的数据块),硬链接,对于硬链接,删除任意一个路径,链接次数减1,新建则加1,只有在链接次数减为0时才可删除,
  • 硬链接不可跨分区,不能指向目录,会导致目录循环引用(?)
  • 符号链接(软链接)没有数据只有元数据,不会在磁盘上存储任何数据,本身是一个独立的文件,与引用文件无关,在元数据中指向一个路径
  • 软链接可以指向目录,可以跨分区
  • 缓冲缓存BufferCached
  • Linux能用物理内存就先用物理内存
  • 分区再分为小块独立管理,位图也是自我管理的,跨位图(并不是真正的分界),结点位图,元数据区有个超级块(SuperBlock)负责管理协调这些子区域,有多个副本,以防止挂了(挂了整个分区都没用了)

小结:位图(bitmap)的使用加快了文件的创建与删除过程。软链接没有数据只有元数据,是一个独立的文件。超级块(SuperBlock)负责协调子区域,作用不可替代,有多个副本以备不时之需。


创建链接文件

ln [option] srcdst

默认创建硬链接

-v 显示详细创建信息

-s 创建软链接

小结:创建链接文件的命令为ln (link)


Linux、Unix支持的文件系统类型

  • 传统:ext2(非日志文件系统),ext3,ext4(扩展的),reiserfs,xfs,jfs
  • 光盘:iso9660
  • 集群文件系统:GFS,OCFS2(Oracle)
  • 网络文件系统:NFS,CIFS(通用互联网文件系统)
  • Windows:VFAT(FAT,FAT32),NTFS(对前者支持比较好)

小结:Linux支持多种文件系统,文件系统分为日志型和非日志型,使用何种类型更为合理应结合具体的生产环境而决定。

free –m 查看内存使用状况(以M为单位显示)

硬盘基础知识

  • 硬盘出厂时也进行格式化,称为低级格式化,将磁盘划分成扇区(sector),默认512byte,是物理的(block是逻辑的)最小存储单位,不能再划分使用了
  • 编号最小的扇区又叫引导扇区(boot sector),放了一段程序,负责启动硬盘上某个分区安装的操作系统,不能划分给分区,程序占据446byte,被称为引导加载器(boot loader),64byte磁盘分区表(磁盘有多少个分区,每16byte标识一个分区,所以一个硬盘最多只能有4个主分区,但最新的技术可能会突破这点限制,可以分区的数量由boot sector决定的),2byte引导扇区的分区结束代码
  • 扩展分区:本身是不可以直接使用的分区,将剩下的磁盘空间标记为自我管理磁盘分区表的分区,逻辑概念,要想使用必须再次分区,称为逻辑分区
  • 一块磁盘:4个主分区,3主分区1扩展分区(N个逻辑分区),一主一扩展(N逻辑分区,Windows常采用,C盘为主分区)
  • 磁道track,每个磁盘由N个同心圆组成,称为磁道,磁道再次被划分成扇区
  • 磁盘分区是按磁道分的,相同角速度旋转,则越靠外转过的距离的越大,性能也越好,一般来讲,磁盘符号越靠前,磁道也越靠前
  • 多片磁片双面
  • 同一个磁盘不同盘面相同编号的磁道叫柱面(cylinder)

小结:低级格式化时划分扇区(默认512byte)。前512byte作为引导扇区(boot sector),负责启动操作系统,不划分给任何分区,其中前446byte被称为boot loader,后64byte用于存放磁盘分区表,最后2byte结束代码。一个磁盘至多只能有一个扩展分区,本身不能直接使用,必须继续划分为逻辑分区后再使用。


创建分区

  • 硬件:/dev
  • IDE:/dev/hda,/dev/hdb,/dev/hdc,…,一般个人台式机有两个IDE接口,每一个接口两个盘一主一从,第一个口主hda从hdb,第二个口主hdc
  • SATA:/dev/sda,/dev/sdb,/dev/sdc,…主分区:1-4,扩展分区1-4中的一个,逻辑分区:5+
  • USB:/dev/sda,/dev/sdb,/dev/sdc,…
  • SCSI:/dev/sda,/dev/sdb,/dev/sdc,…
  • SAS:/dev/sda,/dev/sdb,/dev/sdc,…
  • 查看分区fdisk,使用该命令需有管理员权限,使用需小心

fdisk /dev/sda 进入交互模式

w保存并退出

q直接退出

  • Linux虚拟内存使用独立分区(即独立的文件系统),而Windows则放在C盘上,一般来讲,虚拟内存是物理内存(少于2G时)的2倍,大于2G时1.5倍,物理内存足够大时也需要虚拟内存以备特殊情况发生
  • cat /proc/partitions proc里放得是内核信息
  • 分区创建完以后还不能使用,没有文件系统
  • 低级格式化,高级格式化:在分区中创建文件系统
  • U盘默认FAT文件系统
  • mkfs (make file system)

mkfs –t FS_TYPE /dev/device =mkfs.FS_TYPE /dev/device

小结:分区创建完成后要创建文件系统方能使用,/proc目录下存放的是系统内核信息。


分区与挂载

  • 对于分区所取的名字用来引用,称为卷标(label)
  • 块大小是不能重新调整的,要改变必须重新格式化
  • 根所在的分区就叫根文件系统(root filesystem)
  • 可以把一个目录作为在当前根上去引用其他文件系统的入口,若该目录本身有文件,当开放文件系统入口时这些文件就被隐藏了,ls看到的是另一文件系统中的文件
  • mount:将根下的某个目录作为分区的访问入口,文件系统只有挂载到根下的某个路径下才能被访问,如果挂载到根上,江山易主了,此时根下其他文件访问不了

mount /dev/sda5 /mnt

-t 文件系统类型

mount 显示当前系统上所有已挂载的设备、挂载点、文件系统类型及挂载选项

mount –o remount,ro /dev/sda5 重新挂载为只读

loop选项挂载主机中的镜像

  • mkdir /media/cdrom 以后光盘都安装在该目录下

mount –o ro /dev/cdrom/media/cdrom 挂载mount -r /dev/cdrom/media/cdrom

umount /dev/cdrom 卸载(Linux必须挂载光盘才能使用,卸载光盘才能将光盘取出)

  • umount:取消关联
  • fuser –v /mnt 查询谁在访问该目录

fuser –km file 杀掉正在占用的进程

  • /mnt和/media是预留的两个用于挂载的目录,也可以自己新建目录作为挂载点
  • 异步性能较好,同步数据更安全

小结:根所在的分区叫根文件系统(root filesystem),mount命令用于将文件系统挂载到根下某个路径,只有这样,文件系统才能够被访问。


磁盘管理

  • 创建虚拟内存文件系统swap,独立的文件系统,分区来实现虚拟内存
  • mkswap /dev/device:创建swap文件系统
  • swapon /dev/device 启用swap文件系统

-a 启用所有swap文件系统

swapoff 关闭swap文件系统

  • 当前系统无任何空余磁盘空间可用于创建分区,Linux支持在某一个文件系统上创建一个模拟的本地回环设备(软件实现)来模拟一个磁盘使用,在某个文件系统上还有很多的空闲空间
  • dd(在二进制级别复制01代码,底层)

dd if=/etc/issue of=/tap/issue 将etc下的issue复制为tap下的issue

(if:来源,of:去向,bs:blocksize,count:多少个)

dd if=/etc/sda of=/root/mbr.backupbs=512 count=1 备份

dd if=/root/mbr.backup of=/etc/sdabs=512 count=1 还原

dd if=/dev/zero of=/dev/sda bs=446count=1 用一串0把sda中的前446byte覆盖了,boot loader

没了,系统不能启动了,若bs=512,则连分区表一起丢失,找不着文件删除一个磁盘上的所有分区

可以采用这种方法

dd if=/dev/zero of=/root/swap.virbs=1M count=128,复制128M的0填充了一个文件

  • 0扇区不属于任何一个分区,引导扇区
  • dd if=/dev/zero of=/root/swap.vir bs=1Mcount=128,复制128M的0填充了一个文件

mkswap /root/swap.vir 创建swap文件系统

swapon /root/swap.vir 启用swap文件系统

  • dd也可以用于制作镜像文件

dd if=/dev/cdrom of=/root/a.iso

  • cat也可以用于制作镜像文件

cat /dev/cdrom > /root/a.iso

  • 配置文件/etc/fstab 文件系统表,自动挂载

设备,挂载点,文件系统类型,挂载选项(逗号分隔),完全备份频率(0,1,2),文件系统检测的次序     (0-9)

编辑修改该文件即可实现开机自动挂载文件系统

自动挂载交换分区,挂载点和文件系统类型是swap

  • mount –a 将/etc/fstab支持自动挂载的文件系统挂载到指定挂载点
  • df 用于显示文件系统磁盘空间使用情况

df –P 不换行显示

  • awk使用方法
  • du 估算文件空间使用情况

du /etc 显示etc下的每个文件及其大小

du –s /etc 显示整个目录包括目录中的文件大小摘要(summary)

-h 实现单位换算

du –sh /* 显示根下单级目录及其大小

  • 刚装完系统后占用空间最大的是/usr

小结:Linux虚拟内存使用独立的分区,即独立的文件系统swap。Linux支持在当前文件系统上创建一个模拟的本地回环设备用于模拟磁盘使用。/etc/fstab文件系统表。dd命令用于底层复制。cat、dd命令均可实现镜像文件的制作。

时间: 2024-10-08 00:48:21

Linux文件系统与磁盘管理学习笔记的相关文章

CentOS 6.5 LVM磁盘管理学习笔记

在系统运维和服务器管理过程中,经常遇到服务器磁盘容量不足,需要在线扩容的情况.普通磁盘分区的管理方式在逻辑分区划好之后就无法改变其大小.而LVM可以实现Linux服务器下面磁盘空间的在线扩容和动态管理,相对于普通的磁盘分区有很大的灵活性. 一.LVM简介 LVM是 Logical VolumeManager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘的分区在逻辑上进行组合,做为

Linux文件系统及磁盘管理

硬盘在Linux系统中编码规范: 识别硬盘设备:/dev/sd 标记不同的硬盘设备:/dev/sd[a-z] 标记同一设备上的不同分区:/dev/sd[a-z][1-] 1-4: 主或扩展分区标识 5+:逻辑分区标识 设备文件:特殊文件 设备号: major, minor major: 设备类型 minor: 同一类型下的不同设备 "块":block,随机设备 "字符":character,线性设备 分区工具: fdisk, parted, sfdisk fdisk

linux 文件系统及磁盘管理

一个新的磁盘盘需要经过分区.格式化(创建文件系统),挂载之后才能正常使用.关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table)     MBR:      也称为主引导扇区,是计算机开机后访问硬盘时必须读取的首个扇区,也就是0柱面0磁头1扇区,MBR由bootload(446字节).分区表(64字节).MBR结束标志(2字节)共512字节组成.最大支持2TB的分区.MBR格式的分区表支持3个主分区和1个扩展分区. GPT:

Linux入门之磁盘管理(2)文件系统

Linux入门之磁盘管理(2)文件系统 linux分区构成完成之后,一般需要进行对其创建指定的文件系统,也就是我们常说的格式化,然后对其进行分区挂载,提供指定分区的访问点.不同的分区格式会在文件系统内部提供不同的对该分区的数据存储的格式分配,以及其内部模块会支持不同的分区的接口及方法调用,例如对一个文件的打开.读取.写入.关闭等功能,每个文件系统都会有各种不同的特点. 常见的系统文件系统: linux: ext2.ext3.ext4:xfs(SGI):btrfs(Oracle):reiserfs

Linux内存管理学习笔记 转

https://yq.aliyun.com/articles/11192?spm=0.0.0.0.hq1MsD 随着要维护的服务器增多,遇到的各种稀奇古怪的问题也会增多,要想彻底解决这些“小”问题往往需要更深的Linux方面的知识.越专业.分工越细的工程师,在这方面的要求也就越高.这次,对MySQL Swap的问题的探索过程,就一不小心掉进了Linux Memory Managemant(Linux MM)的研究中去了,爬了很久才出来,这里做一个系列笔记. 笔记中很多内容都是参考<Underst

Linux内存管理学习笔记——内存寻址

最近开始想稍微深入一点地学习Linux内核,主要参考内容是<深入理解Linux内核>和<深入理解Linux内核架构>以及源码,经验有限,只能分析出有限的内容,看完这遍以后再更深入学习吧. 1,内存地址 逻辑地址:包含在机器语言中用来指定一个操作数或一条指令的地址. 线性地址:一个32位无符号数,用于直接映射物理地址 物理地址:片上引脚寻址级别的地址 2,逻辑地址->线性地址 2.1 段选择符与段寄存器 逻辑地址:段选择符(16位)+段内偏移(32位) index:在GDT或L

124第六章——在图形化界面下对磁盘进行常规管理 学习笔记

MBR:主引导扇区,在驱动器最前端的一段引导扇区,大小为512B(字节),由三部分组成,第一部分为主引导程序(boot loader),大小为446B,第二部分为分区表(partition table区),大小为64B,第三部分为magic number,大小为2B,固定为55AA.因为在分区表上记录一个主分区需要使用16B,所以整个硬盘的主分区和扩展分区最多只能是4个,不过在扩展分区上可以创建逻辑分区.Windows的系统文件必选安装在主分区上. 应用程序→系统工具→磁盘实用工具 124第六章

Linux系统管理之磁盘管理与文件系统

Linux系统管理之磁盘管理与文件系统 一.前言 管理磁盘是管理员的重要工作内容,本文主要介绍以下几个方面 磁盘结构及分区表示 管理磁盘及分区 管理文件系统 二.磁盘(无尘环境制造)结构及分区 1.物理结构 盘片:硬盘有多个盘片,每盘片2面 磁头:每面有一个磁头 2.数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据 磁道:同一盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面 多个扇区组成磁道,多个相同直径的磁道组成柱面 笔记本的磁盘一般是2.5英寸,7mm厚度和9.5

Linux基础之磁盘管理

 Linux基础之磁盘管理         关于Linux中磁盘管理我们应该从以下四个方面入手,去了解和学习磁盘管理的知识. 第一点 磁盘的结构--硬盘         硬盘的参数 结构:磁盘的盘片,磁头,马达(机械键盘) 类型:固态硬盘(SSB)和机械硬盘 接口:早期的IDE接口,现在的SATA,SCSI,SAS 还有容量,转速,传输速度,缓存等. 硬盘存储术语 head: 磁头 track: 磁道 cylinder: 柱面 secotr: 扇区  512bytes(字节) 第二点 磁盘的分区