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)都有自己的检测 ...
随机推荐
- python二进制读写及特殊码同步
python对二进制文件的操作需要使用bytes类,直接写入整数是不行的,如果试图使用f.write(123)向文件中以二进制写入123,结果提示参数不是bytes类型. import os impo ...
- 第八章 - JUC
J.U.C AQS 原理 全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架 特点: 用 state 属性来表示资源的状态(分独占模式和共享模式),子类需 ...
- Java:Java中static关键字作用
static关键字最基本的用法是: 1.被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2.被static修饰的方法属于类方法,可以通过类名.方法名直接引用 ...
- [转载] 笑话:Developer and product manager
A man flying in a hot air balloon suddenly realizes he's lost. He reduces height and spots a man dow ...
- ARTS第十一周
受辞职考研和新冠肺炎疫情影响,一直没更.遗憾,数学和专业课再高点就有戏了.继续. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评至少一篇英文技术文章3. ...
- 利用PE破解系统密码
1.利用pe制作工具制作pe启动盘或者ios镜像 2.制作好后,在虚拟机设置里面加载镜像 3. 3.开启时选择打开电源进入固件 4.开启后依次选择:Boot--->CD-ROM Drive并按F ...
- Git submodule 拉取子模块
$ git clone https://code.Xcode.com.client.git Cloning into 'vipkid-pc-client'... Username for 'https ...
- gpasswd简单记录
gpasswd [option] GROUP 一切都是为了权限 gpasswd常用参数: -a, --add USER 将user用户加入到组中 -d, --delete USER 将user用户 ...
- 两人团队项目-石家庄地铁查询系统(web版)
大二上学期做过只有两号线的地铁查询系统,但是只能在控制台操作.这一次将线路加到了六条,并且要求web实现,下面简述一下设计思路和具体代码实现: 1.数据库建表 于我自己习惯而言,我写javaweb项目 ...
- [刘阳Java]_了解BeanFactory_第4讲
为什么说我们这篇文章只是说了解一下BeanFactory.因为BeanFactory内在的机制与代码实现实在是太强大了,在这一点我确实不敢滥竽充数. 1. 那么我们又如何去了解BeanFactory, ...