科技 > 操作系统 > Linux

Linux学习笔记之磁盘与文件系统的管理

13人参与2019-08-13

三.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 PSCI框架

08-18

Linux学习笔记之磁盘与文件系统的管理

08-13

程序运行时间测试 - 使用libc 中 clock 函数

08-18

史上最简单的CentOS7破解密码方法,有图有真相

07-29

sed基本用法

10-12

linux系统破解密码。

08-18

Red Hat Enterprise Linux 8.0 安装

06-27

Linux存储管理

08-18

内核的ramdisk

02-14

小规模集群架构规划

09-19

最近更新

K8S CoreDNS部署失败,问题分析

08-18

Linux存储管理

08-18

【原创】Linux PSCI框架

08-18

日志文件写入失败(permission denied)

08-18

程序运行时间测试 - 使用libc 中 clock 函数

08-18

程序运行时间测试 - 使用libc 中 time 函数 实现秒级的运行时间检测

08-18

程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间

08-18

【原创】Linux Suspend流程分析

08-18

Manjaro美化 配置教程

08-18

linux系统破解密码。

08-18

网友评论

已有0条评论