linux文件系统

操作系统8:文件系统

帅比萌擦擦* 提交于 2020-02-09 23:09:05
文件系统 基本概念 文件是具有符号名的数据项的集合 行文件:以行为单位 文件的属性: 文件的标识是内部使用的编号,在文件系统内部并不使用文件名 文件操作通过系统调用的方式进行 打开和关闭都涉及到了内存和磁盘的交互 顺序访问: 目录 目录也是在磁盘中的,它是一种特殊的文件 目录的结构 整个目录系统中不允许重名 不好分组 这里的路径名表示的是用户的分组 树型就可以分组了 对树型目录进行更改,就可以实现目录的共享 这都好理解 悬空指针也不一定要操作系统解决,现在的操作系统也就没管 实际使用的时候尽量会避免环的产生 第一个方式太激进了,会限制功能 文件系统的安装和使用 也可以把几块硬盘通过RAID技术构成一个分区,多用于服务器 安装时可以安装在特定的安装点下: 新的硬盘要先建立文件系统 每个分区中要有引导信息 根分区:存放操作系统内核和其他系统文件 将分区加载到操作系统上时,会在内存中保留一份加载表来说明该分区的情况 文件的共享和保护 文件系统结构 文件由数据块和文件控制块两部分组成 文件系统在磁盘上而不是内存中 逻辑文件系统处理元数据 目录结构一开始放在磁盘上,但是要打开文件时,会将相关的一部分或者全部加载到内存中以便于查找文件在磁盘上的位置 除了每个进程有自己的文件打开表以记录该进程打开了哪些文件之外,系统也有一个总表来记录哪些文件被打开了

Linux磁盘分区工具的使用

别等时光非礼了梦想. 提交于 2020-02-09 15:32:14
----------fdisk分区工具---------- 一、.下面来介绍fdisk分区工具的命令格式: fdisk是传统的Linux硬盘分区工具,也是Linux系统中最常用的一种硬盘分区工具之一,它的命令格式如下: 其中常用命令选项的说明如下: -b sectorsize: 定义磁盘扇区的大小,有效值包括512、1024和2048,这个选项只对老版本的Linux操作系统有效。 -C cyls: 定义磁盘的柱面数,一般情况不需要对它进行定义,使用默认的就好。 -H heads: 定义分区表所使用的磁盘的碰头数,一般为255或16。 -S sects: 定义每条磁道的扇区数,一般为63。 -l :这是最常用到的一个命令选项,它是显示指定磁盘设备的分区表信息,例如查看/dev/sdb1这个磁盘设备的分区表信息就是:fdisk -l /dev/sdb1 -u :在显示分区表时,以扇区代替柱面作为显示的单位 -s partition: 在标准输出中以block为单位显示分区的大小。 -v :显示fdisk的版本信息。 device:就是磁盘的设备名称,IDE类型的磁盘设备名为[dev/hd[a-h]];而SCSI或SATA类型的磁盘设备名为[dev/sd[a-p]]。 假如我要查看我电脑上的第一块磁盘的分区表信息(呵呵,我就一块硬盘)可以使用如下命令:fdisk -l /dev/sda

Linux文件系统(inode、block……)

让人想犯罪 __ 提交于 2020-02-09 11:10:50
内容源于《鸟哥的Linux私房菜》    认识 EXT2 文件系统    文件系统的特殊观察与操作 文件系统 superblock,inode,block superblock,inode,block数据简略说明: superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等; inode:记录文件的权限与属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码; block:实际记录文件的内容,若文件太大时,会占用多个 block . 每个 inode 与 block 都有编号,而每个文件都会占用一个 inode ,inode 内则有文件数据放置的 block 号码.所以如果能够找到文件的 inode 的话,那么自然就会知道这个文件所放置数据的 block 号码, 当然也就能够读出该文件的实际数据了. data block (数据区块) block 基本限制: 原则上,block 的大小与数量在格式化完就不能够再改变了(除非重新格式化) 每个 block 内最多只能够放置一个文件的数据 若文件大于 block 的大小,则一个文件会占用多个 block 数量 若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费) 在 Ext2

Linux的磁盘与文件管理系统(1)

别说谁变了你拦得住时间么 提交于 2020-02-09 11:10:24
Linux的磁盘与文件管理系统(1): 一:扇区为最小的物理单位每个为512字节,将扇区组成一个圆那就是柱面,柱面为分区的最小单位,第一个扇区里面有硬盘的主引导记录,那就是MBR与分区表,其中MBR有446个字节,分区表有64个字节。各种接口的磁盘在LINUX中的文件名为/dev/sd[a-p][1-15]:为SCSI,SATA,USB,FLASH等接口的磁盘文件名,/dev/hd[a-d]:为IDE接口的磁盘文件名。磁盘分区是发奋分区的起始柱面与结束柱面,分区表最多能够有四表分区的记录,为住分区与拓展分区的记录,主分区与拓展分区最多有4个(磁盘限制),拓展分区最多有一个(操作系统的限制) 二:文件系统的特性: 格式化的意义:每种操作系统所设置的文件属性/权限不相同,为了存放这些文件需要的数据,需要将分区进行格式化,成为操作系统能够利用的文件系统格式。 Linux的正规文件需要的文件系统为ext2默认情况下windows操作系统不能够识别ext2文件系统。 Linux下文件系统将文件权限与文件属性这两部分的数据放在不同的块中,权限与属性放在INODE中,他的实际数据房子data block 中,还有一个超级块,叫做superblock会记录整个文件系统的整体星系,包括inode与block的总量,使用量,剩余量根据INODE将block中的内容读出来的数据访问方式叫做索引式文件系统

linux 文件系统(inode和block)

夙愿已清 提交于 2020-02-09 11:09:56
linux文件系统(inode block superblock) 先说一下格式化:每种操作系统所设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此就需要将分区格式化,以成为操作系统能够利用的文件系统格式。linux的文件格式为Ext2/Ext3,现在好像已经到了Ext4.windows 操作系统为vfat或者NTFS。 linux文件系统: 操作系统的文件数据除了文件实际内容外,还有非常多的属性,如文件权限(rwx)与文件属性(所有者、群组、时间参数等)。 文件系统通常将这两部分数据存放在不同的块。权限属性放到 inode 中,实际数据放到 data block 中。 还有一个超级块(super block)会记录文件系统的整体信息,包括 inode 与block 的数量、使用量等。 inode:记录文件属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码; block:实际记录文件的内容,若文件太大时会占用多个 block ; super block:记录文件系统的整体信息,包括inode/block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等。 每个inode与block都有编号,而每个文件系统都会占用一个inode,inode中有文件数据放置的block号码。我们可以找到文件的inode,然后找出文件所放置数据的block号码

Linux磁盘与文件系统概念理解

此生再无相见时 提交于 2020-02-09 11:09:08
磁盘级别概念 这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如图1所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。 图2展示了由一个个盘片组成的磁盘立体结构,一个盘片上下两面都是可读写的,图中蓝色部分叫柱面(cylinder)。 简简单介绍了磁盘结构后,下面我们将对磁盘的参数进行讲解。磁盘的常见参数如下: 磁头(head) 磁道(track) 柱面(cylinder) 扇区(sector) 圆盘(platter) 图2中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道) 的磁盘,图2中每条磁道有12个扇区,所以此磁盘的容量为6*7*12*512字节。 即: 存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 下面讲一下现代磁盘,在老式磁盘中,尽管磁道周长不同,但每个磁道上的扇区数是相等的,越往圆心扇区弧段越短,但其存储密度越高。不过这种方式显然比较浪费空间,因此现代磁盘则改为等密度结构,这意味着外围磁道上的扇区数量要大于内圈的磁道,寻址方式也改为以扇区为单位的线性寻址。为了兼容老式的3D寻址方式,现代磁盘控制器中都有一个地址翻译器将 3D 寻址参数翻译为线性参数。 扇区

linux mkfs命令参数及用法详解---linux格式化文件系统命令(包括swap分区)

主宰稳场 提交于 2020-02-09 11:01:45
mkfs 命令 linux格式化磁盘命令    linux mkfs 指令:mkfs   使用权限 : 超级使用者   使用方式 : mkfs [-V] [-t fstype] [fs-options] file sys [blocks] [-L Lable]   说明 : 建立 linux 档案系统在特定的 partition 上   参数 :   device : 预备检查的硬盘 partition,例如:/dev/sda1   -V : 详细显示模式   -t : 给定档案系统的型式,Linux 的预设值为 ex t2   -c : 在制做档案系统前,检查该partition 是否有坏轨   -l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面   block : 给定 block 的大小   -L:建立lable 补充说明: mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。例如,若在"-t" 参数中指定ext2,则 mkfs会调用 mke2fs 来建立文件系统.使用时如省略指定【块数】参数,mkfs会自动设置 适当的块数.   例子 :   在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来 :   mkfs -V -t msdos -c /dev

文件与文件系统

孤者浪人 提交于 2020-02-08 05:15:46
文件与文件系统 一、文件 1.1 文本文件txt 1.2 音频文件wav 1.3 图像文件bmp 二、文件系统 2.1 目录文件 2.2 平面文件系统 2.3 分层文件系统 三、参考资料 一、文件 同一类型数据的集合组成一个文件,比如文本文件、音频文件、图片文件,对于文件需要一定的排列格式,方便不同的用户按照统一的格式可以正确读写文件,这种格式叫“文件格式”。当然文件格式可以用户自定义,但是为了方便文件的可读取性,最好用现成标准,比如txt、MP3、JPEG等。 1.1 文本文件txt 文本文件的字符内容,实际存储在计算机中以0和1进行存储的,那么字符时如何转化成0和1的呢? 首先,目前针对不同的字符有不同的编码标准,例如ASCII、GB2312标准、Unicode 字符集和编码, 计算机中存储的字符实际上就是字符在编码标准中的字符编码 。 计算机如何在屏幕上进行显示? 字模 :每个字符的图形文件,实质上就是一个个像素点数据。 字库 :多个字模数据组成的文件称为字库。 计算机显示字符时,根据字符编码与字模数据的映射关系找到对应的字模数据,液晶屏根据字模数据显示该字符 。 1.2 音频文件wav 对于音频文件,后缀.wav,主要有两部分组成: 元数据和音频数据 。 元数据存在文件的开头,在实际数据前面,因此也叫文件头(Header)。元数据中包含码率(bit rate)

linux ext2文件系统

本小妞迷上赌 提交于 2020-02-08 01:36:59
  如果把一个磁盘看做一个军队,这支军队总司令就是Boot sector ,总司令不能一个一个兵直接指挥吧,这时候我们就需要把所有其他士兵分成各个军(Block group),每一个军队内部我们把它分成干部(inode)与工兵(Block),军队要搞清各自的兵源情况吧,这就需要文件系统描述(File system description)用来告诉我们属于这个军的兵是从编号多少到多少,以及这个军队内部各个部分人员的分布情况,inode table就是这个军队内所有干部的集合,与之对应的Data block 就是所有工兵的集合,每一个inode都要知道自己管着多少工兵。 文件就是我们这个军队的敌人,每一个文件上来就会消灭我们一个干部(inode)以及无数的工兵(Data block),这时候我们就要知道当前的士兵减员情况,这就引出了inode bitmap(干部存活情况)Block bitmap (工兵存活情况),方便我们快速定位活着的士兵,准备下一次打仗,好了打仗打完了我们要对外公布自己的减员情况这就需要super block来告诉总司令我们这个军的减员情况。 通过上面这个例子希望大家能更好的理解下面文件系统的各个成分。 Ext2文件系统使用以inode为基础的文件系统。   文件系统一开始将inode与block规划好了,除非重新格式化,否则inode与block固定后就不再变动

Linux磁盘分区格式化挂载

自古美人都是妖i 提交于 2020-02-08 00:17:40
1,Linux分区 原理 1)Linux无论有几个分区,分给哪一目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。 2)Linux中采用了一种叫 “载入” 的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。 3)原理图 简而言之,Linux 没有像Windows那样的C,D,E盘的概念,在Linux中都是文件目录 硬盘说明 1)Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上都是SCSI硬盘 2)对于IDE硬盘,驱动标识为“hdx~”,其中“hd”分区所在的设备类型,这里指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助盘,d为辅助从属盘),“~”代表分区,前4个分区用数字1~4表示,他们是主分区或扩展分区,从5开始就是逻辑分区。如:hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区 3)对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。 4)对于virtio 硬盘则标识为“vdx~”,virtio 硬盘是用“vd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。 --------------------- 2