Linux 硬盘与硬件管理
硬件以文件系统(Filesystem)角度来看
文件系统:一个可被挂载的数据称为文件系统,每个操作系统可以使用的文件系统并不一样,windows98是FAT或者FAT16文件系统,而windows2000以后有了NTFS文件系统,linux是ext2、ext3,现在出现了ext4。
文件系统通常将档案的属性和权限放置在inode中,至于实际数据则放置到data block中,另外还有一个超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量、 使用情况,剩余量等。
主引导扇区(master boot recorder,MBR)MBR:分区的一种方式,支持4个主分区或者1-3个主分区+一个扩展分区,其中扩展分区内可以分出多个逻辑分区。文件系统:操作系统用于明确磁盘分区内的文件的方法和数据结构。负责对文件的存储进行划分磁盘磁盘空间和标注位置。那些你看着是一个单独的文件,可能在你的磁盘里存储并不是连续的。举个例子,一个4G的电影,可能前一部分存储在多少到多少扇区,后一部分存储在多少到多少扇区。这些扇区位置以及他们的标注由文件系统来操作。不明白的话给一个最切实际的比方:一个年级可以分4个班,这个是MBR。在一个班里,老师的座次表记录张三在哪个位置,李四在哪个位置。这个座次表就是文件系统,负责记录学生的位置,并给他们划分座位。
inode:记录档案的属性,同时记录此档案所在的block号码,每个档案都只会占用一个inode,因此文件系统内可以放置的档案数量和inode的数量是对应的,系统读取档案时先要读取inode,查看档案的权限与用户是否符合才能继续根据inode对应的档案block编号去寻找文档的内容。
block:记录档案的实际内容,一个block只能存放一个档案,如果档案容量比block大,则占用多个block,如果小,则剩下的空间会浪费掉,block的大小为1K,2K,4K,在文件系统格式化的时候这个大小就会被确定下来,而且每个block会有各自的编号,以方便inode记录寻找。
superblock:记录整个文件系统的整体信息。
文件系统一开始就会规划好inode和block,除非重新格式化(或者指令resize2fs来进行更改)外不然不会更改,由于有些文件系统非常庞大,所以把inode和block放在一起不容易管理,所以文件系统将inode和block分为block group区块群组进行管理。
block group区块构成:
block group都有单独的inode、block以及superblock。
以ext2文件系统为例,ext2文件系统格式化后会变为:boot sector(启动扇区)和多个block group,boot sector可以存放开机管理程序,这样可以将不同的开机管理程序安装在文件系统最前端,而不用覆盖硬盘唯一的MBR,而block group分为六个部分,下面详述:
block group分为以下六个部分:
1:superblock :大小为1024bytes,记录filesytstem相关信息的地方,记录inode和block的数量,未使用和已使用的inode和block数量,记录inode和block的大小,例如inode是128bytes,而block是1k或者2k或者4k,记录filesystem的挂载时间,最近一次写入数据的时间,最近一次检验磁盘(fsck)的时间等文件系统相关信息。最后还要记录一个valid bit数值,文件系统已被挂载为0,反之为1。
这部分信息可以用dumpe2fs呼叫出来进行查看。
2:档案系统描述 (filesystem description):这个区块可以描述么个block group的开始与结束的block号码,以及说明每个区段分别介于哪一个block号码中,这部分也能够用dumpe2fs来观察。
3:区块对应表(block bitmap):block bitmap记录哪些block是空的,以便新建文档可以快速调出空的block进行储存,同时当删除文档时,block bitmap也会将对应释放的block号码改为未使用。
4:Inode对应表(inode bitmap):这个功能和block bitmap类似,只是block bitmap记录的是使用与未使用的block号码,而inode bitmap记录的是使用与未使用的inode号码。
5:inode table:也就是上面讲过的inode,这里记录档案的属性以及档案内容放在哪些编号的block里。同时inode的大小均固定为128bytes,inode记录一个block需要花费4bytes,由于有些档案非常巨大,需要占用大量的block,但是记录一个block需要花费4bytes,而inode只有128bytes,因此系统将inode记录block号码的区域分为12个直接,一个间接,一个双间接,一个三间接记录区。
具体记录的数据为:
1)档案存取模式(rwx)
2)档案拥有者(owner、group)
3)档案的容量
4)档案建立或状态改变(例如权限)的时间(ctime)
5)档案最近一次的读取时间(atime)
6)最近修改的时间(mtime)
7)定义档案特性的旗杆(flag)
8)该档案内容真正的指向(pointer)
6:data block:data block是放置档案数据的地方,就是上面说的block,是一个东西。
------------------以上转自 贝伦酱 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/belen_xue/article/details/51586178?utm_source=copy
1.查看硬盘或目录的容量
df查看硬盘总容量,已用容量,与inode等信息

-i, --inodes
用信息索引点代替块表示使用状况
-k, --kilobytes
指定块大小等于1024字节来显示使用状况
-l, --local
只显示本地文件系统使用状况
-m, --megabytes
以指定块大小等于1048576字节(1M)来显示使用状况
du 报告磁盘空间使用情况
du 报告指定的文件已使用的磁盘空间的总量,包括在层次结构中以这些以指定文件为根的目录在内。这里的“已使用的磁盘空间”意思为指定的文件下的整个文件层次结构所使用的空间。
在没给定参数的情况下,du 报告当前目录所使用的磁盘空间。
GNU 选项
-a, --all
显示对所有文件的统计,而不只是包含子目录。
-b, --bytes
输出以字节为单位的大小,替代缺省时1024字节的计数单位。
-c, --total
在处理完所有参数后给出所有这些参数的总计。这个选项被
用给出指定的一组文件或目录使用的空间的总和。
-k, --kilobytes
输出以1024字节为计数单位的大小。多少K
-m, --megabytes
输出以兆字节的块为计数单位的大小(就是 1,048,576 字节)。多少M
-s, --summarize
对每个参数只显示总和。
-S, --separate-dirs
单独报告每一个目录的大小,不包括子目录的大小。
2.磁盘分割与格式化
fdisk
是一个臭虫(直接从man fdisk 复制下来的)
在 Linux 中有很多版本的 *fdisk 类程序。 每一个都有自己的强项和缺点。分别试着使用 cfdisk,fdisk, sfdisk. (fdisk是一个有很多臭虫的分区工具软件,它所做的操作是模糊不清的,通常在碰巧的情况下它才会正常的运行。 它唯一值得使用的地方是它对BSD 的磁盘标签和非 DOS 的分区表有所支持, 尽量少用这个程序。
(sfdisk是一个专为黑客提供的程序,它的用户界面很不友善, 但它更精确,也比 fdisk 和 cfdisk 更有效。另外,它只能以非交互的方式运行。
cfdisk 是一个漂亮的程序,它只接受最严谨的分区表,而且它能生成高质量的分区表。 如果可能,你最好使用这个程序。)
fdisk最主要的工作就是修改分区表,咱们就先按书上的步骤走一遍:
先是删除的步骤:




按q退出(系统认定以上步骤作废,即无事发生,按 w是真的保存设定了噢)
再来增加分区的操作:步骤同上,不过删除是d,新增就是n啦,n-》p(主分区)-》选编号1-4(未使用过的)-》q,不保存,哈哈哈
e2label - Change the label on an ext2/ext3/ext4 filesystem 修改设备名

这是什么东西。
使用e2label对磁盘操作时,如果报“e2label: Bad magic number in super-block while trying to open /dev/sdb1 ,Couldn’t find valid filesystem superblock.”这样的报错。是因为e2label对xfs文件系统做操作出现的,一般是centos7以上系统,在7以上系统应该使用xfs_admin来操作即可!
如:
[root@localhost ~]# xfs_admin -l /dev/sdb1 #查看xfs文件系统卷标
label = ""
[root@localhost ~]# xfs_admin -L test /dev/sdb1 #设置xfs文件系统的卷标为test
writing all SBs
new label = "test"
[root@localhost ~]# xfs_admin -l /dev/sdb1
label = "test"
xfs_admin - change parameters of an XFS filesystem
然鹅

。。。唉,在这先插个眼xfs的基本使用http://www.rundba.com/?post=59。我先往下学Linux的基本指令。
mke2fs Linux下重要的格式化工具
-b设定每个数据块的大小
-i设定inode值
-c检查磁盘错误
-L设定这个扇区的label(表头名称)
-j建立ext3这个具备日志管理功能的文件格式
哈哈哈哈,这个可以改名,但我没有改

mknod - 建立块专用或字符专用文件
mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。
文件系统中的一个专用文件存贮着三种信息(布朗型、整型、整型)。
布朗型在字符文件与块文件之间作出选择,两个整型是主、次设备号。
通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、虚拟控制台)或者操作系统提供的服务(如:/dev/null, /dev/random)。
块文件通常类似于磁盘设备(在数据可以被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。所有其他设备都是字符文件。(以前,两种文件类型间是有差别的。比如:字符文件I/O没有缓存,而块 文件则有。)
mknod命令就是用来产生这种类型文件的。
以下参数指定了所产生文件的类型:
p FIFO型
b 块文件
c 字符文件


最下面一行 3, 3嗯就是这了
3.检查硬盘坏轨与数据同步写入
fsck检查硬盘坏轨,有的话把数据扔到lost+found文件夹里,fsck - 检查并修复Linux文件系统。
系统启动时就会执行的指令 fsck -A根据/etc/fstab,扫描所有设备
-a自动修复检查到的问题扇区,不用一直按y
-r修复检查到的问题扇区,会让你一直按y
使用这个指令的情况是在系统出现极大问题时,(扫描硬盘时会导致部分文件系统损坏)所以在Linux启动时必须进入单人单机模式下(runlevel1)进入维护的情况下再使用吧,用的时候就是fsck -a /dev/xxx,确认成功后reboot。
Linux为了系统效率,默认会将一些数据写在内存里,而不是直接写入硬盘,但是系统莫名其妙的关机,我们就需要特定的方法让这些数据回到硬盘即sync。
指令就是sync(一般是两次以上)就这样打上去sync;sync;sync;reboot
4.关于启动盘
制作一张可引导的启动软盘
mkbootdisk 制作启动软盘(我装的版本就没有这个。难受)

fdformat 用来低级格式化软盘,这个可以
6.硬盘的装载
要建装载目录,如果不为空,装进去后,原来的东西会被清空哦
mount这个指令可以装载 linux的,windows的光驱 软驱 硬盘,不错哦(但是现在我用不到,我就不看了)
umount 卸载
6.硬盘效能测试与启用
hdparm可以开启32位存取模式。

过
Linux 硬盘与硬件管理的更多相关文章
- 【原】Linux设备网络硬件管理
遇到网络问题时候,一般情况下,我们第一反应是查找软件方面问题,但排查之后,软件没有问题的时候,我们就需要排查硬件方面工作是否正常. 我们可能需要查询网卡设备本身的状态,查询网卡是否有数据包发送接收: ...
- 【Linux】Linux下设备网卡以及硬件管理等
这是Linux下网络硬件管理的基础知识,虽然平时用到的可能比软件的少一点,但是作为基础命令,还是需要记住,以免用时又得查询. 本文参考官方文档:https://wiki.ubuntu.com.cn/% ...
- linux硬盘分区格式化及挂载
1.硬盘的接口类型 硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为 ...
- LINUX逻辑卷(LVM)管理与逻辑卷分区
LINUX之逻辑卷管理与逻辑卷扩展 LVM是逻辑卷管理(Logical Volume Manager)的简称,他是建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相 ...
- Arch Linux 硬盘引导-联网安装
Arch Linux 硬盘引导-联网安装 ============https://www.archlinux.org/https://wiki.archlinux.org/https://wiki.a ...
- linux硬盘的分区、格式化、挂载以及LVM
linux硬盘的分区.格式化.挂载以及LVM 多块硬盘的组合: 硬盘分两种:ide和scsi. ide硬盘: /dev/hda 第一块IDE硬盘 /dev/hdb 第二块IDE硬盘 ... /de ...
- Linux硬盘的检测(原创)
http://czmmiao.iteye.com/blog/1058215 概述 随着硬盘容量.速度的快速发展,硬盘的可靠性问题越来越重要,今天的单块硬盘存储容量可轻松达到1TB,硬盘损坏带来的影响非 ...
- linux:查看磁盘硬件信息hdparm,smartctl
smartctl 命令 这个一个用于控制和监控支持smart技术的硬盘的命令.通常配合 -a 选项我们可以查看到比较详尽的硬盘信息(比如序列号.硬盘容量.已运行时间.硬盘健康状况等).用法如下: sm ...
- Linux硬盘的检测--smartctl详细介绍
概述 随着硬盘容量.速度的快速发展,硬盘的可靠性问题越来越重要,今天的单块硬盘存储容量可轻松达到1TB,硬盘损坏带来的影响非常巨大.不同的文件系统(xfs,reiserfs,ext3)都有自己的检测 ...
随机推荐
- Docker构建mysql主从
一.为什么要搭建主从架构呢 1.数据安全,可以进行数据的备份. 2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器.从而缓解数据库访问的压力 3.故障 ...
- java.lang.Excetion,java.lang.RuntimeException,java.lang.Error有什么区别?
Error类对象由Java虚拟机生成并抛出,Exception类对象由应用程序处理或抛出 Error表示恢复不是不可能但很困难的情况下的一种严重问题.比如说内存溢出.不可能指望程序能处理这样的情况. ...
- 关于scrollview的无限滚动效果实现
起因及需求:做过阅读器的朋友应该知道,一般的阅读器都会有仿真.平移等特效.最近赶上真空期,项目不忙,有点时间,于是想抓起来,总结点干货. 仿真翻页及平滑翻页的基本实现: 仿真翻页,使用系统自带的UIP ...
- GO系列-ini文件处理
gopkg.in/ini.v1 配置加载 创建一个空的配置 cfg := ini.Empty() 直接加载存在的配置文件,如果文件不存在就会报错 cfg, err := ini.Load(" ...
- python使用笔记18--写日志
1 import nnlog 2 import traceback 3 #level:输出日志级别,debug:把所有的日志都打印出来,info:打印info以上的日志, 4 # warning:打印 ...
- python 并行
网址:http://www.parallelpython.com/ 下载模块[根据使用环境选择相应的下载版本]下载pp-1.6.4.4 .zip,注意不要下载md5 解压缩上面下载的文件:pp-1.6 ...
- C语言:键盘输入
C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据. getchar().getche().getch():这三个 ...
- Centos7 安装Oracle11g Express Edition
Centos7 安装Oracle11g Express Edition 下载地址:https://download.oracle.com/otn/linux/oracle11g/xe/ 一.安装相关依 ...
- groff编写man页
groff 是大多数 Unix 系统上所提供的流行的文本格式化工具 nroff/troff 的 GNU 版本.它一般用于编写手册页,即命令.编程接口等的在线文档.在本文中,我们将给你展示如何使用 gr ...
- java反序列化提取payload之xray 高级版的shiro回显poc的提取过程
本文中xray高级版shiro payload来源于雷石安全实验室公众号发布的shiroExploit.jar 感谢雷石安全实验室,雷石安全实验室牛逼 本文主要描述如何从shiro的payload中提 ...