《linux就该这么学》第八节课:第六章存储结构与磁盘划分
笔记
(借鉴请修改)


6.3、文件系统与数据资料
目前linux最常见的文件系统:
ext3:日志文件系统。宕机时可自动恢复数据资料,容量越大恢复时间越长,且不能保证百分百不丢失。
ext4:ext3改进版,RHEL6默认文件系统,存储容量高达1EB,且无限多子目录,能够批量分配block块。
xfs:RHEL 7默认文件系统。宕机快速恢复被破坏的文件,最大支持18EB容量,几乎满足所有需求。
硬盘的存储就像一本书一样分为目录和内容两部分,目录存储着内容的索引和属性(权限大小时间等),真正的东西却在书的内部。
硬盘也一样,inode中存储着数据的属性,block快中存储着真实数据,通过inode可以找到相应的block块来查看数据。

(删除数据只是删除inode表,真实数据还在硬盘中,等待其他内容覆盖才会真正删除,这也是为什么有的数据可以扫描找回的原因)
linux中提供VFS(虚拟文件系统),来屏蔽底层差异,让用方便操作,不用关心底层文件系统发生了什么:

6.4、挂载硬件设备
linux中,一块新硬盘需要先分区,然后格式化,最后挂载并使用。
挂载:将设备文件与某个目录相关联的动作。然后可以通过该目录(挂载点)访问/使用该设备文件的内容。
mount 挂载文件系统。 mount 【文件系统】【挂载目录】
-t //指定文件系统的类型 -a //挂载所有在/etc/fstab中定义的文件系统
挂载之前的文件夹叫目录,挂载之后叫挂载点
mount重启之后就失效,为了避免,需要写入到/etc/fstab文件中
/etc/fstab中信息写入格式:
设备文件 挂载目录 格式类型 权限选项 自检 优先级
设备文件 //一般为设备的路径+设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录 //指定要挂载到的目录,需在挂载前创建好
格式类型 //指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项 //若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份 //若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检 //若为1则开机后自动进行磁盘自检,为0则不自检
例: /dev/cdrom /media/cdrom iso9660 defaults 0 0 //把光盘挂在到/media/cdrom

umount 撤销已挂载的设备文件 umount 【挂载点/设备文件】
例:umount /media/cdrom
6.5、添加硬盘设备 //虚拟机添加
fdisk 管理磁盘分区,提供添加,删除,转换分区等功能。参数是交互式的。 fdisk 【磁盘名称】
m //查看全部可用参数 n //添加新的分区
d //删除某个分区信息 l //列出所有可用的分区类型
t //改变某个分区类型 p //查看分区信息
w //保存并退出 q //不保存直接退出
file 查看文件的属性 。 例:file /dev/sdb1
如果分区完成却不显示,需要手动强行同步内核信息:
partprobe //手动将分区信息同步到内核,推荐连续执行两次。
mkfs 用于格式化操作。mkfs.类型名称 【设备】
例:mkfs.xfs /dev/sdb5 下图为各种文格式类型:

df 用来查看挂载状态和硬盘使用量信息
-a //显示出所有的文件系统 --total //展示出总体使用量
-h //易读格式

du 查看文件数据占用了多少空间 du 【选项】【文件】
-a //评估每个文件(非目录)整体占用量 -c //评估每个文件,并计算总和
-h //易读格式 -s //仅显示占有量之和
6.6添加交换分区
分区正常分区即可,格式化和挂载的命令有区别于常规分区
交换分区:将一部分物理内存的不常用的数据临时存放在硬盘的空间里(swap交换分区),目的主要是降低物理内存的负载压力。
mkswap swap分区专用格式化命令 mkswap 【分区】
swapon swap分区专用挂载命令 swapon 【分区】
swapon -a 是把/etc/fstab中的swap分区部分挂载上
free 查看交换分区的使用量
-m /以M单位显示 -g //以G单位显示
-k //以kb单位显示 -b //以比特单位显示
-h //以易读格式显示

6.7、磁盘配额
磁盘配额用于给用户分配空间,防止某个用户恶意使用磁盘空间。
RHEL5或6用的是usrquota,RHEL7用的是uquota,在/etc/fstab的/boot权限处写入,并重启,使用 mount | grep boot 查看是否支持

xfs_quota 针对xfs文件系统来管理磁盘配额的命令 xfs_quota 【参数】【配额】【文件系统】
-c //以参数的形式设置要执行的命令 -x //专家模式
isoft //文件数量软限制 ihard //文件数量硬限制
bsoft //硬盘使用量软限制 bhard //硬盘使用量硬限制
edquota 用于编辑用户的quota配额限制 edquota 【参数】【用户】
-u //针对的用户 -g //针对的用户组
软限制是到达后只警告但还可以使用,硬限制是达到后不能写入(立即禁止),也可以不写软限制,直接硬限制。
例:xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 linuxprobe' /tmp
//限制linuxprobe用户对/tmp目录的写入,容量软限制3M,硬限制6M,个数软限制3个,硬限制6个。
6.8、软硬链接
硬链接:指向原始文件的inode指针,等同于硬链接和原始文件是一个文件,只是名字不同,且占用相同的空间。
软链接:也叫符号链接,仅仅包含文件的路径名,相当于windows的快捷方式。
ln 创建链接文件 ln 【选项】【目标】
-s //创建符号链接(软连接),不加此参数默认创建硬链接 -f //强制创建文件或目录的链接
-i //覆盖前先询问 -v //显示创建链接的过程
软连接:

硬链接:

(借鉴请修改)
复习:分区,格式化,挂载
预习:第七章
《linux就该这么学》第八节课:第六章存储结构与磁盘划分的更多相关文章
- 《Linux就该这么学》培训笔记_ch06_存储结构与磁盘划分
<Linux就该这么学>培训笔记_ch06_存储结构与磁盘划分 文章最后会post上书本的笔记照片. 文章主要内容: Linux系统的文件存储结构(FHS标准) 物理设备命名规则(udev ...
- Linux 就该这么学 CH06 存储结构与磁盘划分
1.一切从"/"开始 linux系统中一切都是文件,而且一切文件的路径都是从根目录(/)开始的.系统中的根目录和文件名称都是严格区分大小写的,并且文件名中不能包含/符号. 绝对路径 ...
- 《linux就该这么学》课堂笔记09 存储结构、磁盘划分
Linux一切都是文件 "/"为根目录(万物起始) **挂载后要想永久生效,需要修改开机启动项 vim /etc/fstab
- OpenCV 第二课 认识图像的存储结构
OpenCV 第二课 认识图像的存储结构 Mat Mat 类包含两部分,矩阵头和矩阵体.矩阵头包含矩阵的大小,存储方式和矩阵体存储空间的指针.因此,Mat中矩阵头的大小是固定的,矩阵体大小是不定的. ...
- [从源码学设计]蚂蚁金服SOFARegistry之存储结构
[从源码学设计]蚂蚁金服SOFARegistry之存储结构 目录 [从源码学设计]蚂蚁金服SOFARegistry之存储结构 0x00 摘要 0x01 业务范畴 1.1 缓存 1.2 DataServ ...
- Linux性能优化 第六章 性能工具:磁盘I/O
6.1 磁盘I/O介绍 一般来说,Linux磁盘的每个分区要么包含一个文件系统,要么包含一个交换分区.这些分区被挂载到Linux根文件系统,该系统由/etc/fstab指定.这些被挂载的文件系统包含了 ...
- Linux内核设计与实现 总结笔记(第六章)内核数据结构
内核数据结构 Linux内核实现了这些通用数据结构,而且提倡大家在开发时重用. 内核开发者应该尽可能地使用这些数据结构,而不要自作主张的山寨方法. 通用的数据结构有以下几种:链表.队列.映射和二叉树 ...
- 【小白学PyTorch】9 tensor数据结构与存储结构
文章来自微信公众号[机器学习炼丹术]. 上一节课,讲解了MNIST图像分类的一个小实战,现在我们继续深入学习一下pytorch的一些有的没的的小知识来作为只是储备. 参考目录: @ 目录 1 pyto ...
- linux学习第十九天 (Linux就该这么学) 结课了
今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux +nginx+mysql+php) 安装文件挺别多, ...
随机推荐
- docker被屏蔽后下载方法
docker镜像默认的官网上传平台:https://hub.docker.com/,k8s运行时需要从google下载镜像(k8s.gcr.io),但该网被屏蔽了,怎样下载到所需镜像呢? 1. 可在知 ...
- mybatis 映射器(mappers) 配置说明 加载映射文件方式
映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了.但是首先我们需要告诉 MyBatis 到哪里去找到这些语句. Java 在自动查找这 ...
- 框架源码系列四:手写Spring-配置(为什么要提供配置的方法、选择什么样的配置方式、配置方式的工作过程是怎样的、分步骤一个一个的去分析和设计)
一.为什么要提供配置的方法 经过前面的手写Spring IOC.手写Spring DI.手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创 ...
- ubuntu 下无损扩展分区
命令扩展: http://www.cnblogs.com/greatfish/p/7347945.html http://www.cnblogs.com/wangxingggg/articles/68 ...
- MySQL命令学习
上面两篇博客讲了MySQL的安装.登录,密码重置,为接下来的MySQL命令学习做好了准备,现在开启MySQL命令学习之旅吧. 首先打开CMD,输入命令:mysql -u root -p 登录MySQ ...
- JavaScript 运行机制详解:Event Loop
参考地址:http://www.ruanyifeng.com/blog/2014/10/event-loop.html 一.为什么JavaScript是单线程? JavaScript语言的一大特点就是 ...
- Sublime Text 3 3143 注册码和遇到的PyV8无法下载问题
packagecontrol官网:https://packagecontrol.io/installation sublime安装之后,安装Package Control管理插件. sublime3 ...
- poj3087 Shuffle'm Up(模拟)
Shuffle'm Up Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10766 Accepted: 4976 Des ...
- 关于 python中的转义字符
"abc\n" 前面加 r,表示原生输出,不转义.实际上是用 \代替 \\,其实是已经转义过了,并不是不转义. 看这个例子: print(r"abc \n") ...
- swust oj 956
约瑟夫问题的实现 2000(ms) 65535(kb) 3266 / 10775 n个人围成一个圈,每个人分别标注为1.2.....n,要求从1号从1开始报数 ,报到k的人出圈,接着下一个人又从1开始 ...