一、一些基本定义

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来建立大文件。

Linux学习之四——磁盘与文件系统管理的更多相关文章

  1. linux下的磁盘和文件系统管理

    一.硬盘分区知识 1.分区类型 硬盘分区一共有3种:主分区.扩展分区和逻辑分区.扩展分区只不过是逻辑分区的“容器”,实际上只有主分区和逻辑分区进行数据存储.在一块硬盘上最多只能有4个主分区,可以另外建 ...

  2. linux命令之磁盘与文件系统管理命令(上)

    1.fdisk:磁盘分区工具 该命令是linux下常用的磁盘分区工具,但是只能给小于2TB的磁盘划分分区. 常用参数为-l,显示所有磁盘分区的信息. 示例: 1)显示磁盘分区列表 [root@boxi ...

  3. Linux学习笔记—Linux磁盘与文件系统管理(转载)

    认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...

  4. Linux学习笔记之Linux磁盘及文件系统管理笔记

    Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...

  5. linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

    一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...

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

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

  7. Linux磁盘与文件系统管理笔记

    ### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...

  8. Linux磁盘与文件系统管理概要

    Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...

  9. 磁盘及文件系统管理(以及btrfs)

    Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...

随机推荐

  1. 【循序渐进学Python】11.常用标准库

    安装完Python之后,我们也同时获得了强大的Python标准库,通过使用这些标准库可以为我们节省大量的时间.这里是一些常用标准库的简单说明.更多的标准库的说明,可以参考Python文档 sys 模块 ...

  2. C# ICSharpCode.SharpZipLib.dll文件压缩和解压功能类整理,上传文件或下载文件很常用

    工作中我们很多时候需要进行对文件进行压缩,比较通用的压缩的dll就是ICSharpCode.SharpZipLib.dll,废话不多了,网上也有很多的资料,我将其最常用的两个函数整理了一下,提供了一个 ...

  3. 【洛谷 p3386】模板-二分图匹配(图论)

    题目:给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数. 解法:匈牙利算法.(以前我总是不记得......)实质上应该有贪心的思想,每次都尽量匹配,找到能和自己匹配的也尽量让它们匹配 ...

  4. Follow me to learn what is Unit of Work pattern

    Introduction A Unit of Work is a combination of several actions that will be grouped into a transact ...

  5. mysql内存消耗分析

    最近有些生产服务器老是mysql内存不停得往上涨,开发人员和维护反馈,用了不少的临时表,问题时常线上发生,测试又一直比较难重现. 经观察mysql内存的os占用趋势,发现从8:40开始,mysql内存 ...

  6. c# Sqlite帮助类

    最近有WPF做客户端,需要离线操作存储数据,在项目中考虑使用Sqlite嵌入式数据库,在网上找了不少资料,最终整理出一个公共的帮助类. Sqlite是一个非常小巧的数据库,基本上具备关系型数据库操作的 ...

  7. 复杂表格的树形结构的添加删除行div实现

    公司倒闭,换了工作,无奈选择了做外包这个差事,大公司进不去,小公司工资太低,可能也只能如此了.但无奈之举,亦不可浪费时间,多多磨练自己吧! 众所周知,做外包项目,其实就是做一些大公司的内部系统,多以管 ...

  8. android 浏览器开发实例

    android app需要通过手机显示网页信息还是比较常用的,比如我最近业余开发的 抢商铺游戏,需要对游戏规则做说明,规则会比较多,而且要经常变动,就想到用网页来展示,更新起来方便,不像应用,一旦发布 ...

  9. android在Data目录内置可删除的APP

    一.准备工作:make_ext4fs.mkuserimg.sh.simg2img,把它们跟要修改的 .img.ext4(或.img)文件放置到同一个目录下 二.转换源文件为img格式( .img则略过 ...

  10. App开发流程之图像处理工具类

    先罗列一下工具类中提供的方法: /** * 根据原始view和毛玻璃样式,获取模糊视图,并自动作为原view的subview(如果不需要作为子视图,自行调用removeFromSuperview) * ...