我和linux的第十二天

这两天学习的操作性东西比较多,慢慢整理吧。

linux硬盘与文件系统管理(一)

整块磁盘的组成主要有:

圆形的盘片(主要记录数据的部分);

机械手臂与机械手臂上的磁头(可读写磁盘上的数据);

主轴马达,可以转动盘片,让机械手臂上的磁头在盘片上读写数据。

磁盘上盘片的物理组成:

扇区(Sector)为最小的物理存储单位,每个扇区为512bytes;

将扇区组成一个园,那就是柱面(Cylinder),柱面是分区(partition)的最小单位;

第一个扇区最重要,里面有硬盘主引导记录(Masterbootrecord,MBR)及分区表(partition table),其中MBR占有446bytes,而partition table则占有64bytes。

linux分区的定义:

主分区与扩展分区最多可以有4个(硬盘的限制);

扩展分区最多只能有一个(操作系统限制);

逻辑分区由扩展分区持续分出来的分区;

能够被格式化后作为数据访问的分区为主要分区与逻辑分区,扩展分区无法格式化;

逻辑分区的数量依操作系统而不同,linux系统中,IDE硬盘最多有59个逻辑分区(5~63号),SATA硬盘则有11个逻辑分区(5~15号)。

Super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等;

inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码;

block:实际记录文件的内容,若文件太大时,会占用多个block。

磁盘碎片整理:文件写入的block太过于离散了,此时文件读取的性能将会变得很差,通过碎片整理将同一个文件所属的block汇合在一起,这样数据的读取会比较容易。

一个块组(block group)有6部分:

1.date block:在Ext2文件系统中所支持的block大小有1kb,2kb和4kb三种。原则上,block的大小与数量在格式化完就不能够再改变了(除非重新格式化);每个block内最多只能够放置一个文件的数据,如果文件大于block大小,则一个文件会占用多个block数量,如果一个文件小于block大小,则该block的剩余空间不能再被使用(磁盘空间会浪费)。

2.inode table:记录的文件数据:

该文件的访问模式(read/write/excute);

该文件的所有者与组(owner/group);

该文件的大小;

该文件创建或状态改变的时间(ctime);

最近一次读取的时间(atime);

最近修改的时间(mtime);

定义文件特性的标志(flag),如SetUID等;

该文件真正内容的指向(pointer)。

inode基本特征:

每个inode大小均固定为128bytes;

每个文件仅占用一个inode,因此文件系统能够创建的文件数量与inode的数量有关;

系统读取文件时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。

3.super block(超级块):记录的信息主要有:

block与inode的总量;

未使用与已使用的inode/block数量;

block与inode的大小(block为1k、2k、4k,inode为128bytes);

文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘(fsck)的时间等文件系统的相关信息;

一个valid bit数值,若此文件系统已被挂载,则valid bit为0,若未被挂载,则valid bit为1。

super block信息可以用dumpe2fs命令来查看。

4.file system description(文件系统描述说明)

这个区段可以描述每个block group的开始与结束的block号码,以及说明每个区段(super block、bitmap、inodemap、date block)分别介于哪一个block号码之间。这部分能够用dumpe2fs来查看。

5.block bitmap(块对照表)

记录使用与未使用的block号码。

6.inode bitmap(inode对照表)

记录使用与未使用的inode号码。

日志文件系统(Journaling file system)

预备:当系统要写入一个文件时,会先在日志纪录块中记录某个文件准备要写入的信息;

实际写入:开始写入文件的权限与数据;开始更新meta data的数据。

结束:完成数据与meta data的更新后,在日志记录块当中完成该文件的记录。

linux文件系统的异步处理:

系统加载一个文件到内存后,如果该文件没有被改动过,则在内存区段的文件数据会被设置为(clean)。但如果内存中的数据被更改过(例如使用vim编辑过文件),此时该内存中的数据会被设置为dirty。此时所有的操作都还在内存中执行,并没有写入到磁盘中。系统会不定时地将内存中设置为dirty的数据写回磁盘,以保持磁盘与内存数据的一致性。

linux系统上的文件系统与内存的关系:

系统会将常用的文件数据放置到主存储器的缓冲区,以加速文件系统的读/写,因此linux的物理内存最后都会被使用光,这是正常现象,可加速系统性能;

可以手动使用sync来强迫内存中设置为Dity的文件回写到磁盘中;

正常关机,关机命令会主动调用sync来将内存的数据回写到磁盘中;

不正常关机(断电、死机等),由于数据尚未回写到磁盘内,因此重新启动后可能会花很多时间进行磁盘检验,甚至可能导致文件系统的损坏(非磁盘损坏)。

挂载:每个文件系统都有独立的inode、block、super block等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统与目录树结合的操作成为挂载。

文件系统的简单操作:

df:列出文件系统的整体磁盘使用量,-h以人们较易阅读的GB、MB、KB等格式自行列出,-i不用硬盘容量,而以inode的数量来显示。

du:评估文件系统的磁盘使用量(常用于评估目录所占容量)。-s列出总量,不列出每个目录占用容量,-S列出子目录的总计,与-s不同,-m以MB单位显示。

连接文件(link file):ln linkfile newfilename;ln -s linkfile newfilename;

hard link(硬连接或实际连接):在某个目录下创建一条文件名连接到某inode号码的关联记录,通过文件系统的inode连接来产生新的文件名,而不是新文件。文件名只于目录有关,但是文件内容则与inode有关。hard link限制:不能跨文件系统,不能连接目录。

symbolic link(符号连接,即windows下快捷方式):创建一个独立的文件,而这个文件会让数据的读取指向它连接的那个文件的文件名。源文件被删除后,symbolic link的文件会显示无法打开。由symbolic link所创建的文件为一个独立的新的文件,所以会占用掉inode和block。

时间: 2024-11-10 00:58:50

我和linux的第十二天的相关文章

Linux课程第二十二天学习笔记

####################空壳邮件####################[[email protected] ~]# vim /etc/named.rfc1912.zones ----------------------------------------------- 37 zone "westos.org" IN { 38         type master; 39         file "westos.org.zone"; 40    

我和linux的第二十二天

这几天学校的事情比较多,空闲时间也有,但没有利用起来.前些天听国学课,发觉自己心性还是不很成熟,以前自觉遇到君子应用君子的方法相处,遇到小人用小人的方法对待,老师一句话,疏清了自己.当我们用小人的方法对待小人时,有一天,你和小人打了一架,很多时候,我们就不能再去以君子之心来对待君子了.什么事都是一样的,自己应该主宰自己,不应因外界的改变去改变自己.继续吧,坚持下去. 命令别名alias.unalias: 新创一个新命令,可以直接执行该命令.例如:alias lm='ls -l | more'.a

linux 学习第十二天(网络会话connection、bond、ssh配置)

一.网络会话 使用 con-name 参数指定公司所使用的网络会话名称company,然后依次用ifname 参 数指定本机的网卡名称,用autoconnect no 参数设置该网络会话默认不被自动激活,以及用ip4 及gw4 参数手动指定网络的IP 地址: nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.200.5/24 gw4 192.168.2

Linux课程第十二天学习笔记

################################  2.用户权限列表    ################################ ####################1.权限列表的定义####################指定特殊用户对某个文件有特殊权限的记录表格 ####################2.权限列表的识别####################-rw-r--r--+ 1 root root   12 Nov  1 09:56 file-rw-r

<实训|第十二天>用LVM对linux分区进行动态扩容

[[email protected]~]#序言在linux中,我们安装软件的途径一般有那些,你们知道吗?在linux中,如果你的磁盘空间不够用了,你知道如何来扩展磁盘吗?动态扩容不仅在工作中还是在其他方面都是一个非常重要的技能,所以学会它,对你很有帮助.  开班第十二天: [[email protected]~]#今天的课程大纲 1.linux系统中安装软件的方式和途径 2.lvm磁盘管理机制的原理 3.如何使用lvm管理磁盘 4.动态扩容的方法 5.使用lvm的好处 详细讲解: [[email

linux基础学习第二十二天之AWK详解

内容: 1.awk输出(print.printf) 2.awk变量(内建变量和定义变量) 3.awk数组 4.awk重定向输出 5.awk操作符 6.awk常见模式类型 7.awk控制及循环语句 8.awk内置函数 awk:(其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母) awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出. awk相当于微型

第十二天-linux系统文件属性知识详解

本文总结Linux添加或者删除用户和用户组时常用的一些命令和参数.1.建用户: adduser xiaorui                             //新建xiaorui用户 passwd  xiaorui                             //给xiaorui用户设置密码 2.建工作组 groupadd   test                             //新建test工作组 3.新建用户同时增加工作组 useradd -g tes

linux基础学习第十二天(shell函数、数组以及yum使用及编译安装)

2016-08-18 授课内容: shell编程基础(select 循环与菜单.函数) yum管理.定制yum仓库 select 循环与菜单 select variable in list do 循环体命令 done 1.select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示PS3 提示符(默认是#?),可以重新定义PS3,等待用户输入 2.用户输入菜单列表中的某个数字,执行相应的命令,用户输入被保存在内置变量REPLY 中 [19:45 [email protec

linux系统学习第十二天-<<工程师技术>>

虚拟化概述 ? Virtualization 资源管理     – x个物理资源 --> y个逻辑资源     – 实现程度:完全.部分.硬件辅助(CPU) 手动新建一台虚拟机:                   虚拟机名字:example                 网络类型选择:private1 ######################################################### ? 使用 virt-manager 客户端工具 在真机上操作: ? 查看KV