Linux学习笔记之磁盘与文件系统的管理
三.Linux磁盘与文件系统的管理
MBR扇区(512B)
磁盘的分区组成
Boot sector 扇区(用来装引导程序)
Super block 记录inode与Block的信息
Inode block中存储文件时,会产生文件属性记录(user,group,文件存储在哪个block中),每个inode记录一个文件(最大128K)(记录一个block消耗4B,最多记录block数为32块)并且消耗128B空间
Block 被分为若干大小为4K的block(划分分区时可以指定其大小)
Block可以分成若干个Block group其中包含(super block,文件系统的描述(Block group的信息),块对照表/位图(记录block的使用情况),inode对照表/位图(inode的使用情况),inode表(文件属性),block)
Ext2文件系统中不存在日志步骤
Ext3文件系统存储文件的流程
首先系统在inode位图中查看inode中未使用的情况,将文件的属性中存入inode中并且生成日志,然后在block位图中查看哪些block未使用,将文件写入到block中并且生成日志,然后更新block位图与inode位图。
在对文件进行写入时由一个虚拟文件系统VFS来选择采用哪种文件系统进行存储
链接文件
软链接 相当于windows下的快捷方式
硬链接 复制与硬链接的区别: 复制的文件会生成新的inode,并且会将文件复制到新的block中,硬链接也会产生新的inode,但不会将文件复制到新的block中,而是链接到原先文件的block。硬链接就是一个文件有多个名字,ls –l 中查看的数字,
表示同一个文件有几个名字,即这个文件创建了几个硬链接;由于每一个分区中都有一个inode位图来记录相应分区的block文件属性,所以创建的硬链接不会跨分区,即只能在同一个分区中创建硬链接。
磁盘分区
一块硬盘,最多只能划分4个主分区(现在可以划分128个),即主分区+扩展分区 <= 4;一块硬盘包括512字节MBR区(446字节为引导程序,64字节为分区表(标记一个主分区消耗16字节),2字节为结束符)。如果想划分更多的分区的话,需要划分一个扩展分区,然后在扩展分区中划分若干逻辑分区。
主分区:一块硬盘主分区的分区符为sd[1-4](目前可以划分为128个主分区),划分分区时是以柱面的形式来划分的,分区的最小组成单位为柱面,一个柱面的大小为8M。
逻辑分区的编号是从5开始的,创建的第一个逻辑分区是从扩展分区的开始处开始的。
当分区操作完成后,需要更新相应硬盘的分区表,更新之后所划分出的分区是不能直接使用的,需要对其进行格式化操作和挂载操作,挂载的含义为:创建一个文件夹(目录),该文件夹指向被挂载的分区。
如果需要查看新分区的各项属性,应该在格式化该分区之后,通过tune2fs命令查看
磁盘检验
当磁盘出现问题后,可以对磁盘进行检查
磁盘挂载与卸载
要使用分区,必须要将分区挂载;当卸载时,如果出现busy则表明在当前目录有进程正在进行。
采用mount进行挂载时是临时挂载,重启后,将会卸载。如果需要开机自动挂载,则需要将挂载命令按照相应的格式写入相应的文件中(/etc/fstab)
格式:设备名 挂载点 文件系统 默认权限 是否备份(0表示不做) 是否采用fsck检查
磁盘参数查看修改
cdef称为盘符,12345称为卷标,在磁盘参数中,有一个参数为磁盘分区挂载次数,每挂载一次该次数加1,直到达到最大的挂载次数,系统在重启的时候会强制重启这个次数。
保留的block不会存放数据。
内存交换空间(swap)的构建
交换分区:计算机内存比较小,当内存不足的时候,在硬盘中划分一部分分区当作模拟内存,即为交换空,windows为虚拟内存
首先对磁盘进行分区操作(fdisk),更改其系统类型为swap,再更新磁盘分区表(partprobe), 在格式化为交换分区(mkswap),最后激活该交换分区(swapon),但是当系统重启之后,该交换分区不会生效,开机生效需要写进/etc/fstab中。
文件系统的特殊查看与操作
在存储文件的时候,如果该文件的大小小于单个block的大小,则该文件还是会占用该block的所有空间,这样对空间的利用就不是很好,容易占用空间。
Gdisk与fdisk都可以对磁盘进行分区操作,不过gdisk主要针对GPT而fdisk主要针对MBR,使用之前需要查看正确的分区表再使用相应的指令,不过可以通过parted对两种分区表进行分区操作。
命令
Filefrag -v files 可以查看files文件存储在哪几个block中
dumpe2fs 分区 查看分区的信息
ls -i 文件 查看file的inode编号
ls -id 目录 查看目录的inode编号
df 查看已挂载文件系统容量及使用情况
df -h 以人类更适合查看的单位显示
df -T 查看文件系统类型
du 文件夹 查看文件夹的大小(同时也会显示文件夹下所有文件的大小)
du -h 以人类更适合查看的单位显示
du -s 文件夹 只显示文件夹的大小
ln -s files sfile 创建sfile为文件files的快捷方式,即file为软链接指向files
ln files yfile 创建yfile为文件files的硬链接
fdisk -l 硬盘 列出磁盘分区表
fdisk 硬盘 对该硬盘进行分区操作
partprobe 硬盘 更新当前硬盘的分区表
partprobe 更新所有硬盘的分区表
mkfs -t 文件类型 硬盘分区符 格式化当前分区 = mkfs.文件系统 硬盘分区符
mkfs -t 文件类型 -b 多少字节 硬盘分区符 表示格式化操作后的block size的设定
fsck 硬盘/分区 对磁盘或者分区进行检测
fsck -f 硬盘/分区 对磁盘或分区进行强制检查
fsck -C 硬盘/分区 可以显示检查的过程
badblocks 硬盘/分区 检查硬盘或分区的坏道
badblocks -sv 硬盘/分区 检测硬盘或分区的坏道,并且显示出来检测结果
mount -o 选项 -t [文件系统] 外部设备 目录 将设备挂载到目录
umount 外部设备 将分区卸载
umount 挂载点 将分区卸载
mount 查看当前的挂载
mount -o remount.ro 目录 重新挂载挂载在目录的分区(ro: 以只读的方式;rw:可读可写;noexec:没有执行权限)
fuser -mv 目录 查看当前目录正在进行的进程
tune2fs -I 磁盘分区 查看磁盘参数
tune2fs -L 卷标 磁盘分区 将磁盘分区的卷标改为[卷标]
e2label 磁盘分区 查看磁盘分区的卷标
e2label 磁盘分区 卷标 更改磁盘分区的卷标为[卷标]
mount -o loop xxx.iso 目录 将镜像挂载到目录下
partprobe 磁盘 更新磁盘分区表
mkswap 磁盘分区 将文件系统类型为swap的分区格式化交换空间分区
swapon 磁盘交换空间分区 激活该交换空间分区
swapoff 磁盘交换空间分区 关闭改交换空间分区
mount LEABLE=yy 目录 将卷标为yy的分区挂载到目录下
光盘的文件系统为iso9660,挂载iso镜像时需要加上loop(以上操作为开机挂载/etc/fstab)
ll -sh 查看目录文件消耗的实际block数量*block大小的值
lsblk 查看当前系统的磁盘分区情况
blkid 磁盘 显示磁盘的分区表类型(GPT或MBR(msdos))
blkid 磁盘分区 显示磁盘分区的UUID以及文件系统类型
Linux学习笔记之磁盘与文件系统的管理的更多相关文章
- Linux学习笔记12—磁盘管理
一.查看磁盘或目录的容量 1. df命令 作用:查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的 参数: -I : 查看inodes使用状况 -h: 使用合适的 ...
- linux学习笔记(3)-文件系统
三大类文件类型 普通文件:包括文本文件.数据文件.可执行的二进制程序文件 目录文件:linux系统把目录看成一种特殊的文件,利用它构成了文件系统的树形结构 设备文件:把设备也看成是一个文件,例如你的鼠 ...
- Linux学习笔记02—磁盘分区
下面介绍四种最常见的分区方式: (1) 最简单的分区方案. SWAP分区:即交换分区,建议大小是物理内存的1-2倍. /分区:建议大小在6GB以上. 使用以上的分区方案,所有的数据都在/分区上, ...
- Linux学习笔记之文件与文件系统的压缩与打包
四.文件与文件系统的压缩与打包 用途: 传输时减少带宽 Linux系统常见的压缩命令 Compass(旧版压缩,并且在centOS中默认为不安装) gzip, zcat bzip2, bzcat zi ...
- Linux学习笔记:磁盘分区
本文更新于2019-12-30.操作系统为Debian 8.9 (jessie). 以下假设新磁盘为/dev/sdb,要创建一个分区/dev/sdb1,文件系统类型为xfs.请根据实际情况,自行选择. ...
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- LINUX 学习笔记 账号与群组的管理
LINUX 账号与群组的管理 UID:UserID 保存文件:/etc/passwd GID:GroupID 保存文件:/etc/group /etc/passwd 文件结构 一行代表一个账号,里面还 ...
- Linux学习笔记(4)磁盘分区(fdisk)、挂载与文件系统命令
Linux学习笔记(4)磁盘分区(fdisk).挂载与文件系统命令 1.磁盘分区是怎么表示的? 1.1 对于IDE接口,第一主盘为hda,第1从盘为hdb,第1从盘的第1个分区为hdb1 1.2 对于 ...
- Linux学习笔记之 Btrfs文件系统简介及使用
Btrfs 也有一个重要的缺点,当 BTree 中某个节点出现错误时,文件系统将失去该节点之下的所有的文件信息.而 ext2/3 却避免了这种被称为”错误扩散”的问题. Btrfs相关介绍: Btrf ...
随机推荐
- Python---基础----数据类型的内置函数(主要介绍字符串、列表、元组、字典、集合的内置函数)(二)
2019-05-24 -------------------------------- 一. # splitlines() 以换行切割字符串s = '''日照香炉生紫烟\n疑是银河落九天\n飞流 ...
- [LeetCode] 53. Maximum Subarray 最大子数组 --动态规划+分治
Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...
- Flask学习笔记01之环境搭建
使用pycharm搭建Flask运行环境 1. 打开pycharm ,创建一个新的工程 2. 选择创建Flask项目 3. Flask项目创建成功,结构如下 4. 运行项目 5. 发送请求 over!
- Dubbo学习-5-监控中心simpleMonitor搭建
之前已经下载好的dubbo-admin-master源码中,有dubbo-monitor-simple工程,同理,使用maven命令打包成一个可执行的jar包: 1.进入dubbo-monitor-s ...
- linux运维、架构之路-keepalived高可用
一.Keepalived介绍 Keepalived起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能,Ke ...
- 学习日记14、EF 时间段查询
m_Rep.GetList(a => System.Data.Entity.DbFunctions.DiffDays(DateTime.Now, a.EndDate) < date); 命 ...
- 【easyui-combobox】下拉菜单自动补全功能,Ajax获取远程数据源
这个是针对easyUI的下拉菜单使用的,Ajax获取远程数据源 HTML 页面 <input id="uname" name="uname" class= ...
- Linux下jdk1.6安装指引
Linux安装JDK步骤1. 先从网上下载jdk(jdk-6u4-linux-x64-rpm.bin) ,推荐SUN的官方网站www.sun.com,下载后放在/home目录中,当然其它地方也行. 进 ...
- git如何撤销工作区的修改
对工作区中文件的修改分为三种情况: (1)还没有git add (2)已经git add (3)已经git add,并再次进行修改 对于第一种情况,直接使用git checkout -- 文件,即可撤 ...
- rsync+sersync实现文件同步
一.目的 A服务器:11.11.11.11 源服务器 B服务器:22.22.22.22 目标服务器,既同步备份的目标 将A服务器的文件同步到B服务器上 二.rsync环境部署 1.关闭selinux, ...