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来建立大文件。
Linux学习之四——磁盘与文件系统管理的更多相关文章
- linux下的磁盘和文件系统管理
一.硬盘分区知识 1.分区类型 硬盘分区一共有3种:主分区.扩展分区和逻辑分区.扩展分区只不过是逻辑分区的“容器”,实际上只有主分区和逻辑分区进行数据存储.在一块硬盘上最多只能有4个主分区,可以另外建 ...
- linux命令之磁盘与文件系统管理命令(上)
1.fdisk:磁盘分区工具 该命令是linux下常用的磁盘分区工具,但是只能给小于2TB的磁盘划分分区. 常用参数为-l,显示所有磁盘分区的信息. 示例: 1)显示磁盘分区列表 [root@boxi ...
- Linux学习笔记—Linux磁盘与文件系统管理(转载)
认识EXT2文件系统 文件的系统特性 Linux的正规文件系统为Ext2 文件数据除了文件实际内容外,还包括其他属性(文件权限.文件属性). 文件系统将这两部分数据分别存放在不同的块,权限和属性放在i ...
- Linux学习笔记之Linux磁盘及文件系统管理笔记
Linux磁盘及文件系统管理 CPU,memory(RAM),I/O i/o: disks,ehtercard disks:持久存储数据 接口类型: IDE(ata): 并口,133MB/s;并行总线 ...
- linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包
一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...
- Linux之磁盘与文件系统管理
磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...
- Linux磁盘与文件系统管理笔记
### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式 ...
- Linux磁盘与文件系统管理概要
Linux磁盘与文件系统管理 硬盘组成与分区 硬盘组成 圆形的盘片(主要记录数据) 机械手臂与磁头(可读取盘片上的数据) 主轴马达,转动盘片,让机械手臂的磁头在盘片上读取数据 扇区(Sector)为最 ...
- 磁盘及文件系统管理(以及btrfs)
Linux系统管理 磁盘分区及文件系统管理 raid lvm 网络属性管理 程序包管理 sed及awk 进程查看和管理 内核管理(内核的编译和安装) 系统启动流程 定制,编译内核,busybox 系统 ...
随机推荐
- SystemMenu类的用法
先声明对象以及相应常数: //SystemMenu对象 private SystemMenu m_systemMenu = null; // ID 常数定义 (可变,只要不与系统冲突即可) priva ...
- 转 PHP在JVM上的实现JPHP
前两天还在想,像Quercus只封装了PHP在Java上的Web接口,有没有实现了完整的JVM语言特性的东东,这不,来了. JPHP是一个面向Java虚拟机的PHP实现,支持PHP(5.3+)的很多特 ...
- UVA 10090 - Marbles 拓展欧几里得
I have some (say, n) marbles (small glass balls) and I am going to buy some boxes to store them. The ...
- [python学习笔记]Day2
摘要: 对象 对于python来说,一切事物都是对象,对象基于类创建: 注:查看对象相关成员 var,type,dir 基本数据类型和序列 int内部功能 class int(object): def ...
- Android性能优化之一:ViewStub
ViewStub是Android布局优化中一个很不错的标签/控件,直接继承自View.虽然Android开发人员基本上都听说过,但是真正用的可能不多. ViewStub可以理解成一个非常轻量级的Vie ...
- IT外包行业与职业发展
在IT行业,总是有一些IT外包公司的存在,凡是存在的都是合理的.当你做为IT从业人员应该尽量避免去外包公司工作 .特别是你从事软件开发工作. 先来说说缘由,一些外包公司本来是从事软 ...
- 小白初学Ioc、DI、Castle Windsor依赖注入,大神勿入(不适)
过了几天,我又来了.上一篇中有博友提到要分享下属于我们abp初学者的历程,今天抽出点时间写写吧.起初,我是直接去看阳光铭睿的博客,看了一遍下来,感觉好多东西没接触过,接着我又去下了github 里面下 ...
- rabbitmq队列中消息过期配置
最近公司某个行情推送的rabbitmq服务器由于客户端异常导致rabbitmq队列中消息快速堆积,还曾导致过内存积压导致rabbitmq客户端被block的情况.考虑到行情信息从业务上来说可以丢失部分 ...
- 【GOF23设计模式】解释器模式 & 访问者模式
来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_解释器模式.访问者模式.数学表达式动态解析库式 1.解释器模式Interpreter 2.访问者模式Visitor
- NavigationController的使用整理
1.设置NavigationBar的背景色: self.navigationController.navigationBar.barTintColor = [UIColor redColor]; 2. ...