Linux基础入门:⑦ Linux磁盘管理及维护

服务器磁盘与文件系统知识体系结构

磁盘的物理组成:圆形的磁盘盘,机械手臂,与在机械手臂上的磁盘读取头,主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据
在这里插入图片描述
磁盘主要存储数据的是磁盘盘,磁盘盘组成:
磁盘的文件名
磁盘的物理组成:
圆形的磁盘盘
机械手臂,与在机械手臂上的磁盘读取头
主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据
如下图所示:
1、扇区(sector)是最小的物理存储单位,有512bytes和4K两种格式
2、将扇区组成一个圆是磁柱
3、最小分区单位通常为扇区
4、磁盘分区表主要有两种格式,一种是限制较多的MBR分区,一种是GPT格式
5、MBR分区中,第一个扇区最重要,主要存放开机区的MBR和分区表
6、GPT分区表除了分区数量扩充较多之外,支持的磁盘容量超过2TB

文件系统

权限和属性数据存放在inode中,实际数据存放在data block中,文件系统的整体信息放在
superblock中。
在这里插入图片描述

上面的浅蓝色部分为inode,下面的蓝色部分为block部分,假设某一个文件的属性信息存在inode,而这个inode中记录了数据的实际存放地址block中,此时操作系统就能够根据这个来排列磁盘的阅读顺序,读取数据。

机械磁盘外部组成及内部组成原理

磁盘主要由盘体,控制电路和接口部件组成,盘体就是一个密封,封装了多个盘片的腔体;控制电路包含硬盘
BIOS,主控芯片和硬盘缓存等单元;接口部件包含电源、数据接口主从跳线等。
在这里插入图片描述
盘面platter
硬盘一般会有一个或多个盘片,每个盘片可以有两个面(Side),即第1个盘片的正面称为0面,反面称为1面;第2
个盘片的正面称为2面,反面称为3面…依次类推。每个盘面对应一个磁头(head)用于读写数据。第一个盘面的正面的磁头称为0磁头,背面称为1磁头;第二个盘片正面的磁头称为2磁头,背面称为3磁头,以此类推。盘面数和磁头数是相等的。
磁道track
每个盘片的每个盘面被划分成多个狭窄的同心圆环,数据就是存储在这样的同心圆环上,我们将这样的圆环称为
磁道(Track),每个盘面可以划分多个磁道。关机时磁头停留在硬盘的着陆区(Landing Zone),这个着陆区以前是位于离盘心最近的区域,不存放任何数据。
扇区sector
根据硬盘规格的不同,磁道数可以从几百到成千上万不等。每个磁道上可以存储数KB的数据,但计算机并不需
要一次读写这么多数据。在这一这基础上,又把每个磁道划分成若干弧段,每段称为一个扇区(Sector)。扇区是硬盘上存储的物理单位,每个扇区可存储128×2N次方(N=0,1,2,3)字节的数据。
柱面Cylinder
柱面其实是我们抽象出来的一个逻辑概念,前面说过,离盘心最远的磁道为0磁道,依此往里为1磁道,2磁道,
3磁道…,不同面上相同磁道编号则组成了一个圆柱面,即所称的柱面(Cylinder)。这里要注意,硬盘数据的读写是按柱面进行,即磁头读写数据时首先在同一柱面内从0磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面,因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。

磁盘分区核心命令介绍

命令名作用
fdisk-atoggle a bootable flag #设置启动分区
fdisk-bedit bsd disklabel #编辑分区标签
fdisk-ctoggle the dos compatibility flag
fdisk-ddelete a partition #删除一个分区
fdisk-llist known partition types #列出分区类型
fdisk-mprint this menu #输出帮助信息
fdisk-nadd a new partition #建立一个新的分区
fdisk-ocreate a new empty DOS partition table #创建一个新的空白DOS分区表
fdisk-pprint the partition table #打印分区表
fdisk-qquit without saving changes #退出不保存设置
fdisk-tchange a partition’s system id #改变分区的ID
fdisk-uchange display/entry units #改变显示的单位
fdisk-vverify the partition table #检查验证分区表
fdisk-wwrite table to disk and exit #保存分区表

文件系统管理工具命令

命令作用
mke2fs-t{ext2ext3ext4}:指明要创建的文件系统类型
mke2fs-b{102420484096}:指明文件系统的块大小;
mke2fs-LLABEL:指明卷标;
mke2fs-j创建有日志功能的文件系统ext3
mke2fs-ibytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;
mke2fs-N直接指明要给此文件系统创建的inode的数量;
mke2fs-m指定预留的空间,百分比;
命令作用
tune2fs查看或修改ext系列文件系统的某些属性
tune2fs-l查看超级块的内容;修改指定文件系统的属性:
tune2fs-jext2 --> ext3;
tune2fs-LLABEL:修改卷标;
tune2fs-m调整预留空间百分比;
tune2fs-O[^]FEATHER:开启或关闭某种特性
命令作用
resize2fsdevice [size]调整ext2\ext3\ext4文件系统的大小
resize2fs-d打开resize2fs调试特性
resize2fs-f强制执行
resize2fs-F执行之前刷新文件系统缓冲区
命令作用
e2fsck磁盘修复 检查时先卸载
e2fsck-a:检查 partition,如发现问题会自动修复。
e2fsck-b设定 superblock 位置。 www.2cto.com
e2fsck-B size指定 size 作为区块大小。
e2fsck-c:检查 partition 是否有坏轨。
e2fsck-C file将检查结果储存到 file。
e2fsck-d输出 e2fsck debug 结果。
e2fsck-f:e2fsck 预设只会对错误的文件系统检查,加上 -f 是强制检查。
e2fsck-F在检查前将硬盘的 buffer cache 清空,避免发生错误。
e2fsck-l list记录了坏轨区块加入 list 中。
e2fsck-d打印 e2fsck 的 debug 结果。
e2fsck-f强制检查。
e2fsck-n以 (read-only) 开启档案系统
e2fsck-p关闭互动模式,如有问题自动修复,等同 -a。
e2fsck-v显示详细报告。
e2fsck-y启用使用者互动模式。
命令作用
fsck检查与修复文件系统,可以同时检查一个或者多个
fsck-t :给定文件系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
fsck-s依序一个一个地执行 fsck 的指令来检查
fsck-A对/etc/fstab 中所有列出来的 partition 做检查
fsck-C显示完整的检查进度
fsck-d列印 e2fsck 的 debug 结果
fsck-p同时有 -A 条件时,同时有多个 fsck 的检查一起执行
fsck-R同时有 -A 条件时,省略 / 不检查
fsck-V详细显示模式
fsck-a如果检查有错则自动修复
fsck-r如果检查有错则由使用者回答是否修复

磁盘挂载等相关核心工具

命令作用
mount[-o options] device dir
mount-rreadonly,只读挂载;
mount-wread and write, 读写挂载;
mount-n默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab文件中;-n用于禁止此特性;
mount-t vfstype指明要挂载的设备上的文件系统的类型,此时mount会通过blkid来判断要挂载的设备的文件系统类型;
mount-L LABEL挂载时以卷标的方式指明设备;mount -L LABEL dir
mount-U UUID挂载时以UUID的方式指明设备;mount -U UUID dir
命令作用
lsof abc.txt显示开启文件abc.txt的进程
lsof -c abc显示abc进程现在打开的文件
lsof -c -p1234 列出进程号为1234的进程所打开的文件
lsof -g gid显示归属gid的进程情况
lsof +d/usr/local/ 显示目录下被进程开启的文件
lsof +D/usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4显示使用fd为4的进程
lsof -i用以显示符合条件的进程情况
1.列出所有打开的文件:
#lsof
备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位
2. 查看谁正在使用某个文件
#lsof  /filepath/file
3.递归查看某个目录的文件信息
#lsof +D /filepath/filepath2/
备注: 使用了+D,对应目录下的所有子目录和文件都会被列出
4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法
#lsof | grep ‘/filepath/filepath2/5. 列出某个用户打开的文件信息
#lsof -u username
备注: -u 选项,u其实是user的缩写
6. 列出某个程序所打开的文件信息
#lsof -c mysql
备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成lsof | grep mysql,但是第一种方法明显比
第二种方法要少打几个字符了
7. 列出多个程序多打开的文件信息
#lsof -c mysql -c apache
8. 列出某个用户以及某个程序所打开的文件信息
#lsof -u test -c mysql
9. 列出除了某个用户外的被打开的文件信息
#lsof  -u ^root
备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示
10. 通过某个进程号显示该进行打开的文件
#lsof -p 1
11. 列出多个进程号对应的文件信息
#lsof -p 123,456,789
12. 列出除了某个进程号,其他进程号所打开的文件信息
#lsof -p ^1
13 . 列出所有的网络连接
#lsof -i
14. 列出所有tcp 网络连接信息
#lsof -i tcp
15. 列出所有udp网络连接信息
#lsof -i udp
16. 列出谁在使用某个端口
#lsof -i :3306
17. 列出谁在使用某个特定的udp端口
#lsof -i udp:55
特定的tcp端口
#lsof -i tcp:80
18. 列出某个用户的所有活跃的网络端口
#lsof -a -u test -i
19. 列出所有网络文件系统
#lsof -N
20.域名socket文件
#lsof -u
21.某个用户组所打开的文件信息
#lsof -g 5555
22. 根据文件描述列出对应的文件信息
#lsof -d description(like 2)
23. 根据文件描述范围列出文件信息
#lsof -d 2-3
命令作用
du显示每个文件和目录的磁盘使用空间文件的大小。
du-a显示目录中文件的大小 单位 KB 。
du-b显示目录中文件的大小,以字节byte为单位。
du-c显示目录中文件的大小,同时也显示总和;单位KB。
du-k、-m显示目录中文件的大小,-k 单位KB,-m 单位MB.
du-s仅显示目录的总值,单位KB。
du-h以K M G为单位显示,提高可读性~~~(最常用的一个~也可能只用这一个就满足需求了)
命令作用
df显示磁盘分区上可以使用的磁盘空间
df-a查看全部文件系统,单位默认KB
df-h使用-h选项以KB、MB、GB的单位来显示,可读性高~~~(最常用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值