RHCE 学习笔记(14)- 文件系统 (1)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://beanxyz.blog.51cto.com/5570417/1599408

这一节学习了RHEL的文件管理系统,主要包括了文件系统的查看,设备的挂载,创建链接和文件定位4个方面的知识点。

首先来看看文件系统

我们可以在/proc/partitions这个文件查看当前的分区

通过df -h查看已经挂载了的设备

-hT可以显示设备的文件系统类型

有的挂载点路径比较长,自动分2行显示,可以-P强制一行显示

如同进程有pid,用户有uid,每个文件系统也有自己的id,称为uuid,可以通过 blkid(block id)来查看。注意uuid标记的是文件系统,而不是分区。uuid的好处在于可以通过uuid这个唯一值来挂载系统,这样可以避免因为删除硬盘造成的错位,sda6变成了sda5等等

在目录里面可以通过 ls -ld查看目录的属性,ls -la查看内容的属性,但是-ld显示的目录大小只有4K,这仅仅是目录本身的大小,如何查看目录和其内容的整个大小呢?

可以通过du来查看,如果只想看最终结果,使用-s(summary)就行了

接下来,看看如何创建新的硬盘分区,并加载该设备

我新添加一个10G的硬盘

在Disk工具里面可以看见该磁盘了,但是Content是Unknown,这是因为我们还没有格式化文件系统

自定义格式化,选择文件系统格式为xfs

格式化

格式化以后就可以看见Cotents变成XFS了,但是还没有加载

我们可以通过fdisk 或者 blkid来查看当前的磁盘,也可以通过df -h来查看当前的磁盘是否都已经加载了

加载的语法很简单 mount -o 选项 外部设备 挂载点目录

比如 我创建一个目录,然后mount加载,umount卸载

有的时候,我们会遇见无法卸载设备的情况,比如用户正在使用中。

例如,另外开一个进程,进入这个目录

这个时候因为正在使用中,所以我无法卸载

如果判断哪一个进程和用户正在使用这个文件系统的话,我们可以强行终止掉这个进程。

我们通过fuser来进行判断,语法如下

显示进程5751,用户beanxyz正在访问这个目录(文件系统)

kill -9 强行终止进程之后就可以卸载了

-o的选项还可以设定权限读写执行的权限

例如,挂载的时候设为只读权限

这样我是无法写入内容的

可以通过remount来更改权限,比如改为读写权限,我就可以创建新文档了

再试试看执行的权限,创建一个简单sh脚本,输出一行语句

更改权限为不可执行之后,即使是root执行脚本也会被拒绝,更改为exec之后就没问题了

前面说了uuid也可以用来挂载,直接把设备名改成UUID="XXXXX"的格式就行了

前面的这些挂载操作都是临时性的,一旦重启计算机,就会丢失。我们可以修改/etc/fstab文件来实现开机的自动挂载

格式有6列,分别代表以下几个含义

设备名/uuid  挂载点  文件系统 defaults dump 开机自检

设备名,挂载点和文件系统一目了然,defaults是指系统默认的各种权限设定, dump和开机自检都设成0(关掉)即可

可以直接用mount -a来挂载所有在fstab里面已经配置了设备

第三部分 链接的创建

RHEL里面,一个硬盘分区一般包括两大部分,inode 区和数据区,数据区是由很多的block(块)组成的,一个块默认大小是4k,一个块最多只能存放一个文件,因此1个12k的文件需要占据3个块,而一个1k的文件只会使用1个块,而且这个块里面有3k的空间都会浪费掉。因此对于大量的小文件,适合较小的块,少而大的文件适合比较大的块来分区; inode区里面有很多的inode节点,每一个inode对应一个文件的元信息,比如大小,创建时间,block的位置,连接数目等等;当我们访问一个文件或者目录的时候,系统会找到文件名匹配的inode号码,然后找到inode的相关信息,然后访问记录文件目录的block。

知道了inode的基本概念,现在了看看如何使用

在RHEL里面,可以通过ls -i来查看inode。

如果我创建了一个mm文件,然后拷贝一个副本nn,这两个文件是独立的,因此拥有不同的inode编号

我们可以通过ln来创建硬连接,一个硬链接类似于Windows的Junction Point,或者理解为别名。我创建了mm的硬链接nn,mm和nn其实都是指向同一个inode,因此他们访问的其实是同一个文件,对其中任何一个做修改,另外一个其实也被修改了;如果删除其中一个,那么inode的连接数减少1,其余的任然可以访问inode,当全部删掉以后,系统就会回收这个inode号码和对应的block。

这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录)

硬链接的缺点在于他不能跨分区,例如以下报错

除了硬链接 我们还可以创建软连接,这个类似Windows的快捷方式,他指向的是文件名而不是inode,因此是两个独立的文件(不同的inode),A依赖B而存在,如果删除了B,那么A会报错

本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1599408

时间: 2025-01-22 03:43:28

RHCE 学习笔记(14)- 文件系统 (1)的相关文章

RHCE 学习笔记(38 ) - Shell

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1611830 Shell脚本的参考书从基础到高级可以找几百本出来,豆子这里过为了整个学习笔记的完整性,还是厚颜把最最基本的语法回顾一遍.最基本包括变量,比较,运算符,条件语句,循环语句. 变量分为本地变量,环境变量,位置变量 首先看看本地变量, 变量名=值的方式赋值,不过只在当前的shell里面有效 比如,子shel

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1599513 这一部分主要学习了如何搜索文件. 常用的文件搜索命令有locate,which,whereis和find, 下面依次看看 locate是通过一个数据库来利用名字搜索.他的速度很快,不过数据库更新比较慢,一周才更新一次,因此最新的信息可能找不到,需要手动更新updatedb之后才能查到 例如 which

RHCE 学习笔记(23) - 磁盘格式化和分区

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1603113 这一节学习RHEL7里面如何对磁盘进行分区和格式化,下一节会进一步学习如何配置LVM. 图形工具很简单,Disk工具打开就可以配置了,主要来看看命令行下如何配置MBR和GPT分区格式的硬盘. 传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序,这个会在后

RHCE 学习笔记(24) - LVM 逻辑卷

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1603883 这一节学习了如何创建LVM,LVM的快照以及RAID的相关配置. 对于普通的分区,扩展度不高,一旦分区格式化完成,很难灵活的再增加或者减少分区大小.为了解决这个问题,可以使用LVM(逻辑卷).基本过程是把物理磁盘或者分区初始化称为物理卷(PV),然后把PV加入VG(卷组),最后在VG上划分逻辑的分区(L

RHCE 学习笔记(27) grub 和开机排错

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1604763 这一节学习了grub的概念,开机调用顺序,如何自定义grub文件,以及对一些常见的系统启动错误如何排错等等. 之前学习了MBR分区的前446个字节存放的是系统引导程序grub,中间64字节是分区表,最后2个字节表示结束.那么什么是grub是怎么工作的呢? 简单的说,开机会经历以下几步: BIOS自检,检

RHCE 学习笔记(9) 网络管理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1597852 n这一节本来按照教学大纲应该是学习SSH,不过SSH有很多网络相关的知识,因此老师把网络内容提前了一些.网络的基本知识例如IP,DNS,DHCP,路由协议等常识就不在此解释了. RHEL查看网卡的相关信息很容易,ifconfig就可以查看.注意 RHEL7里面的网卡名目方式从eth0,1,2的方式变成了

RHCE 学习笔记(10) 远程访问

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1598056 这一节学习了如何在Linux和windows下对RHEL进行远程访问.主要包括了SSH的密码,密钥访问,XShell以及VNC的使用 首先来看看Linux下如何远程访问另外一台服务器. 现在我有两条服务器 rhce7-00 和 rhce7-01,IP地址如下所示 rhce7-01 rhce7-00 从0

RHCE 学习笔记(18) 计划任务 at和 crontab

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1601420 正则表达式以后本来应该学习VIM,不过VIM的 相关知识以及在RH124学习过了,因此直接进入计划任务的学习. 计划任务主要有两个命令,at和crontab. at是一次性的,crontab是周期性的. 先来 看看at,at语法很简单 at + 时间 ,然后输入执行的内容,Ctrl+D保存退出即可 写个

RHCE 学习笔记(12) 归档压缩和文件传递

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://beanxyz.blog.51cto.com/5570417/1598287 这一节学习了压缩,归档以及如何利用scp和rsync的传送文件. 归档(archive)和压缩(compress)是两个不同的概念,尽管我们经常放在一起使用.归档类似打包的概念,把一堆内容放入一个文件:而压缩则是把归档好的文件进行压缩以便节约空间. 先看看归档,tar命令,最常用的是 tar -cvf,