Linux学习之四——磁盘与文件系统管理

一、一些基本定义

1. superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
2. inode:记录档案的属性,一个档案占用一个inode,同时记录此档案的数据所在的block 号码;
3. block:实际记录档案的内容,若档案太大时,会占用多个 block 。

 

二、Linux支持的文件系统

1. 查看Linux 支持的文件系统有哪些:

ls -l /lib/modules/$(uname -r)/kernel/fs

 

2. 查看系统目前已加载到内存中支持的文件系统:

cat /proc/filesystems

 

Linux VFS (Virtual Filesystem Switch)来帮我们管理怎么去访问不同的文件系统

 

三、Ext2文件系统介绍

1. block的特点

1) block 的大小与数量在格式化完就不能够再改动了(除非重新格式化),一般为1K,2K或4K,其大小决定了最大单一档案的大小和最大文件系统总容量;

Block 大小           1KB     2KB  4KB

最大单一档案限制 16GB 256GB  2TB

最大文件系统总容量 2TB    8TB 16TB
2) 每个 block 内最多只能够放置一个档案的数据;
3) 如果档案大于 block 的大小,则一个档案会占用多个 block 数量;
4) 若档案小于block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)。

 

2. inode的特点

1) 每个 inode 大小均固定为 128 bytes;
2) 每个档案都仅会占用一个 inode 而已;
3) 文件系统能够建立的档案数量与 inode 的数量有关;
4) 系统读档案时需要先找到 inode,并分析 inode 所记录的权限与用户是否符合,若符合才能够开始实际读 block 的内容。

5) inode 记录 block 号码的区域定义为12个直接,一个间接, 一个双间接与一个三间接记录区。

 

四、文件系统的相关操作

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

df [-ahikHTm] [目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的/proc 等文件系统;

-k :以 KBytes 的容量显示各文件系统;

-m :以 MBytes 的容量显示各文件系统;

-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-H :以 M=1000K 取代 M=1024K 的进位方式;

-T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;

-i :不用硬盘容量,而以 inode 的数量来显示

 

2. du:评估文件系统的磁盘使用量

du [-ahskm] 档案或目录名称

选项与参数:

-a :列出所有的档案与目录容量,因为默认仅统计目录底下的档案量而已。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :列出总量而已,而不列出每个各别的目录占用容量;

-S :不包括子目录下的总计。du 默认会将所有档案的大小均列出,因此假设你在 /etc 底下使用 du 时, 所有的档案大小,包括 /etc 底下的次目录容量也会被计算一次。然后最终的容量 (/etc) 也会加总一次, 所以,如果想要列出某目录下的全部数据, 也可以加上 -S 的选顷,减少次目录的加总喔!

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

 

3. ln建立档案链接

ln [-sf] 来源文件 目标文件

选项与参数:

-s :如果不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link

-f :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!

新建目录时link数量一般为2,而上层目录的 link 数则会增加 1,比如/tmp/test有/tmp/test与/tmp/test/.两个link,而对上层目录来说,增加了link/tmp/test/..

 

4. fdisk 磁盘分区(分区2TB以上用parted)

fdisk -l查看当前磁盘分区信息

fdisk 磁盘: 进入磁盘分区管理系统

 

5. mkfs 磁盘格式化

mkfs [-t 文件系统格式] 装置文件名

选项与参数:

-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)

 

6. mke2fs 更细化的磁盘格式化

选项与参数:

-b :可以设定每个 block 的大小,目前支持 1024, 2048, 4096 bytes 三种;

-i : inode的大小

-c :检查磁盘错误,仅下达一次 -c 时,会进行快速读写测试; 如果下达两次 -c -c 的话,会测试读写(read-write),会很慢~

-L :后面可以接标头名称 (Label)

-j :本来 mke2fs 是 EXT2 ,加上 -j 后,会加入 journal 而成为 EXT3。

 

7. fsck 来检验文件系统是否出错

 

8. badblocks 检查硬盘或软盘扇区有没有坏轨

 

9. mount,unmount磁盘挂载与卸除

注意:

1) 单一文件系统不应该被重复挂载在不同的挂载点(目录)中;
2) 单一目录不应该重复挂载多个文件系统;
3) 要作为挂载点的目录,理论上应该都是空目录。如果非空,则挂载后原有的文件将被隐藏起来。

 

10. mknod 修改文件系统的信息,如主要装置代码,次要装置代码等

 

11. e2label 修改文件系统标头

 

12. tune2fs 修改文件系统为ext2,ext3,ext4等

 

13. hdparm 硬盘为IDE接口时设置一些参数

 

14. 可以用mkswap来将大文件建立为swap文件,并用swapon, swapoff 开启或关闭swap file来实现虚拟内存。

小技巧,可以用dd if=/dev/zero of=/tmp/swap bs=1M count=128来建立大文件。

 

转载于:https://www.cnblogs.com/studynote/p/4796891.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用.Net 1.1的项目,TreeView控件不能正常显示

使用.Net 1.1的项目&#xff0c;TreeView控件不能正常显示&#xff0c;往往是显示一大堆的文字&#xff0c;那是因为脚本没有被执行造成的&#xff0c;需要在web.config里配置一下。<!-- Microsoft WebControls --><MicrosoftWebControls> <add key"Common…

吸气剂/设定者。 邪恶。 期。

从2003年开始&#xff0c;艾伦霍鲁布&#xff08;Allen Holub&#xff09;讨论了为什么吸气剂和塞特方法是邪恶的著名文章&#xff0c;关于吸气剂/塞特方法是否是反模式&#xff0c;应该避免使用&#xff0c;还是我们在面向对象中不可避免地需要它&#xff0c;这是一个古老的争…

你不可不知的数据库northwind

说起northwind&#xff0c;40左右的大年一定不会陌生&#xff0c;它是著名的northwind示例库&#xff0c;在SQL Server 是标配。 它有8张表&#xff0c;涉及客户、商品、订单。 如果你是有志从事企业级应用开发&#xff0c;或有志从事企业互联网开发&#xff0c;一定不要错过no…

angularjs中 $watch 和$on 2种监听的区别?

1.$watch简单使用 $watch是一个scope函数&#xff0c;用于监听模型变化&#xff0c;当你的模型部分发生变化时它会通知你。 $watch(watchExpression, listener, objectEquality); 每个参数的说明如下&#xff1a; watchExpression&#xff1a;监听的对象&#xff0c;它可以是…

【原】.Net创建Excel文件(插入数据、修改格式、生成图表)的方法

1.添加Excel引用 可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用&#xff0c;或在COM下添加Microsoft Excel 12.0 Object Library。它们都会生成Microsoft.Office.Interop.Excel.dll。 2.创建Excel。 有两种方法创建一个Excel Workbook实例。 1.需要一个模板文件&…

求助:安装程序无法创建一个DCOM用户帐号来注册.....\valec.exe

http://support.microsoft.com/kb/257413/ 这是Visual Studio的一个BUG&#xff0c;只出现在Windows 2000/XP下。如果你不使用Visual Studio Analyzer&#xff0c;可以在安装时选择Custom&#xff0c;然后在Enterprise Tools中清除掉Visual Studio Analyzer。再安…

Spring / Hibernate使用log4jdbc改进了SQL日志记录

Hibernate提供了开箱即用的SQL日志记录&#xff0c;但是这种日志记录仅显示准备好的语句&#xff0c;而不显示发送到数据库的实际SQL查询。 它还不会记录每个查询的执行时间&#xff0c;这对于性能故障排除很有用。 这篇博客文章将介绍如何设置Hibernate查询日志记录&#xff…

快递API接口

快递100 转载于:https://www.cnblogs.com/onesmail/p/10608600.html

js中split()和join()的用法

Split()方法&#xff1a;把一个字符串分割成字符串数组 如上所示&#xff1a;把字符串a按空格分隔&#xff0c;得3个字符串数组。 在如&#xff1a; var a”hao are you” a.split(“”); 得到[h,a,o,a,r,e,y,o,u]; Join方法: 把数组中的所有元素转换为一个字符串 如上图所…

IT行业经典面试题,121套面试题

IT行业经典面试题&#xff0c;121套面试题 资源大小&#xff1a; 580.80KB资源类型&#xff1a;发布人&#xff1a; eyelife 发布日期&#xff1a; 2天前Tag&#xff1a; 名企,计算机 资源分&#xff1a; 10下载人数&#xff1a; 857 4.33/347人评分 12 3 4 5 评论 分享…

词云第一次实践,参考学校老师讲的一些知识点还有网上大佬的代码实现

from wordcloud import WordCloudimport cv2import jiebawith open(1906月考.txt, r, encodingutf-8) as f: # 以读的方式打开词云参考的文档 text f.read() # 阅读cut_text .join(jieba.cut(text)) # 通过jieba库的cut精确模式进行分词# 得到词云形状color_mask cv2…

Spring Integration 4.0:完整的无XML示例

1.简介 Spring Integration 4.0终于发布了 &#xff0c;并且此版本具有非常好的功能。 本文介绍的一种可能性是完全不使用XML即可配置集成流程。 那些不喜欢XML的人仅使用JavaConfig就可以开发集成应用程序。 本文分为以下几节&#xff1a; 介绍。 流程概述。 弹簧配置。 …

http协议组成(请求状态码)

http请求由&#xff1a;请求行&#xff1b;消息报头&#xff1b;请求正文组成 //请求行 Request URL: http://172.32.4.33:8080/operation/v2/autoServer/queryAutoServer.htm //请求地址 Request Method: POST …

CSS伪类的三种写法

今天逛蓝色时&#xff0c;无意发现了有人讨论伪类的正确写法&#xff0c;让我对伪类的认识也更清晰了&#xff0c;转贴于此&#xff0c;以备日后查询(原贴当时没记下地址&#xff0c;已经记不得了) Code<style>a.tb{text-decoration:none;}a.tb:link{color:#FF9900;}a.tb…

sql自动生成golang结构体struct实体类

废话不多说直接上地址 使用地址http://www.linkinstars.com:8090/auto-code 项目github https://github.com/LinkinStars/Auto-Coding 是上次内容的一个更新&#xff0c;方便自己用&#xff0c;希望你也喜欢https://www.cnblogs.com/linkstar/p/10037629.html &#xff08;半个…

如何通过示例在Java中使用CopyOnWriteArraySet

CopyOnWriteArraySet是CopyOnWriteArrayList类的弟弟。 这些是专用集合类&#xff0c;这些类是在JDK 1.5上添加的&#xff0c;以及它们最流行的表亲ConcurrentHashMap 。 它们是并发收集框架的一部分&#xff0c;位于java.util.concurrent包中。 CopyOnWriteArraySet最适合作为…

生成器

一、什么是生成器 通过列表生成式&#xff0c;我们可以直接创建一个列表。但是&#xff0c;受到内存限制&#xff0c;列表容量是有限的。而且&#xff0c;创建一个包含100万个元素的列表&#xff0c;不仅占用很大的存储空间&#xff0c;如果我们仅仅需要访问前面几个元素&#…

VS2008快捷键大全

CtrlmCrtro折叠所有大纲CtrlMCrtrP: 停止大纲显示CtrlKCrtrC: 注释选定内容CtrlKCrtrU: 取消选定注释内容CtrlJ : 列出成员 智能感知ShiftAltEnter: 切换全屏编辑CtrlB,T / CtrlK,K: 切换书签开关CtrlB,N / CtrlK,N: 移动到下一书签 CtrlB,P: 移动到上一书签 CtrlB,C: 清除全部…

jQuery 入口函数主要有4种写法

jqery 入口函数主要有4种写法&#xff0c;其中以第3种方法最为方便。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…

面向对象的三大特征 封装继承多态

面向对象设计 和开发程序的好处 交流更加流畅 、提高设计和开发效率 封装将类的某些信息隐藏在类内部&#xff0c;不允许外部程序直接访问&#xff0c;而是通过该类提供的方法来实现对隐藏信息的操作和访问私有化属性 提供公有化的访问方法 保证数据的安全性封装的步骤 …