Linux 硬盘与硬件管理

 

硬件以文件系统(Filesystem)角度来看前端

文件系统:一个可被挂载的数据称为文件系统,每一个操做系统可使用的文件系统并不同,windows98是FAT或者FAT16文件系统,而windows2000之后有了NTFS文件系统,linux是ext二、ext3,如今出现了ext4。node

 

文件系统一般将档案的属性和权限放置在inode中,至于实际数据则放置到data block中,另外还有一个超级区块(superblock)会记录整个文件系统的总体信息,包括inode与block的总量、 使用状况,剩余量等。linux

 

主引导扇区(master boot recorder,MBR)MBR:分区的一种方式,支持4个主分区或者1-3个主分区+一个扩展分区,其中扩展分区内能够分出多个逻辑分区。文件系统:操做系统用于明确磁盘分区内的文件的方法和数据结构。负责对文件的存储进行划分磁盘磁盘空间和标注位置。那些你看着是一个单独的文件,可能在你的磁盘里存储并非连续的。举个例子,一个4G的电影,可能前一部分存储在多少到多少扇区,后一部分存储在多少到多少扇区。这些扇区位置以及他们的标注由文件系统来操做。不明白的话给一个最切实际的比方:一个年级能够分4个班,这个是MBR。在一个班里,老师的座次表记录张三在哪一个位置,李四在哪一个位置。这个座次表就是文件系统,负责记录学生的位置,并给他们划分座位。windows

 

inode:记录档案的属性,同时记录此档案所在的block号码,每一个档案都只会占用一个inode,所以文件系统内能够放置的档案数量和inode的数量是对应的,系统读取档案时先要读取inode,查看档案的权限与用户是否符合才能继续根据inode对应的档案block编号去寻找文档的内容。centos

block:记录档案的实际内容,一个block只能存放一个档案,若是档案容量比block大,则占用多个block,若是小,则剩下的空间会浪费掉,block的大小为1K,2K,4K,在文件系统格式化的时候这个大小就会被肯定下来,并且每一个block会有各自的编号,以方便inode记录寻找。缓存

superblock:记录整个文件系统的总体信息。数据结构

 

文件系统一开始就会规划好inode和block,除非从新格式化(或者指令resize2fs来进行更改)外否则不会更改,因为有些文件系统很是庞大,因此把inode和block放在一块儿不容易管理,因此文件系统将inode和block分为block group区块群组进行管理。dom

 

block group区块构成:工具

block group都有单独的inode、block以及superblock。post

 

以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位存取模式。

相关文章
相关标签/搜索