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)都有自己的检测 ...
随机推荐
- js实现文字分割动画
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...
- Java:Java实例化(new)过程
实例化过程(new) 1.首先去JVM 的方法区中区寻找类的class对象,如果能找到,则按照定义生成对象,找不到 >>如下2.所示 2.加载类定义:类加载器(classLoader)寻找 ...
- Mybatis学习(2)以接口的方式编程
前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询.请注意,这种方式是用SqlSession实例来直接执行已映射的SQL语句: session.selec ...
- 6 shell内置命令
知识点1:什么是shell内建命令? Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 内建命令与普通命令的性质是不一样的,内建命令并不是某个外部文件,只要在 ...
- mysql 的基础操作
1.建表 create table 表名( 字段一 数据类型 [列属性] , 字段二 数据类型 [列属性], ......... )[表类型][表字符集][注释]; 注意:MySQL命令终止符为分号 ...
- 让5G技术“智慧”生活
1.通讯技术的发展历程 2.5G技术的指标和具体概述 3. 5G的三个关键技术及概述 4.5G的应用场景及业务及安全挑战 如果你认为5G带来的只是下载视频 ...
- Anaconda3中的python安装新模块
1.确认安装位置:D:\Anaconda3 2.进入: D:\Anaconda3\Scripts 3.pip install -i https://pypi.tuna.tsinghua.edu.cn/ ...
- 高校表白App-团队冲刺第四天
今天要做什么 就如昨天所说,今天继续进行引导页制作的学习.并开始通过ViewPager做简单的布局与Activity. 遇到的问题 本来以为只是使用一个ViewPager控件就可以搞定,原来还是需要配 ...
- Day1 Markdown学习!
Markdown学习 标题 一级标题:# (空格)+内容 二级标题:##(空格)+内容 同理可支持到六级标题 字体 Hello,World! 两边两个** 加粗 Hello,World! 两边一个* ...
- 网络损伤仪WANsim中关于丢包的介绍
网络损伤仪WANsim中的4种丢包模型 丢包是指在网络上传输的数据包无法到达指定目的地.丢包在广域网中是一个很常见的问题.想要模拟出真实的广域网环境,对丢包的精确模拟是必不可少的. 在网络损伤仪WAN ...