Linux 检查磁盘损坏情况命令 -必会

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 检查磁盘损坏情况命令 -必会相关的知识,希望对你有一定的参考价值。

原因:前一段时间,朋友面试,有一个面试题问的是如何检测磁盘时候有损害。当心心里就是猛的咯噔了一下,好像自己也不知道耶,好吧。于是花了些时间整理了一下。


1、badblocks

功能说明:检查磁盘装置中损坏的区块。

语  法:badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]


补充说明:执行指令时须指定所要检查的磁盘装置,及此装置的磁盘区块数。


参  数:


-b 指定磁盘的区块大小,单位为字节。


-o 将检查的结果写入指定的输出文件。


-s 在检查时显示进度。


-v 执行时显示详细的信息。


-w 在检查时,执行写入测试。


[磁盘装置] 指定要检查的磁盘装置。


[磁盘区块数] 指定磁盘装置的区块总数。


[启始区块] 指定要从哪个区块开始检查。



2、

dd


功能说明:读取,转换并输出数据。


语  法:dd [bs=][cbs=][conv=][count=][ibs=][if=][obs=][of=][seek=][skip=][--help][--version]


补充说明:dd可从标准输入或文件读取数据,依指定的格式来转换数据,再输出到文件,设备或标准输出。


参  数:


bs= 将ibs( 输入)与obs(输出)设成指定的字节数。


cbs= 转换时,每次只转换指定的字节数。


conv= 指定文件转换的方式。


count= 仅读取指定的区块数。


ibs= 每次读取的字节数。


if= 从文件读取。


obs= 每次输出的字节数。


of= 输出到文件。


seek= 一开始输出时,跳过指定的区块数。


skip= 一开始读取时,跳过指定的区块数。


--help 帮助。


--version 显示版本信息。


3、

e2fsck(ext2 file system check)


功能说明:检查ext2文件系统的正确性。


语  法:e2fsck [-acCdfFnprsStvVy][-b ][-B ][-l ][-L ][设备名称]


补充说明:e2fsck执行后的传回值及代表意义如下。


0 没有任何错误发生。


1 文件系统发生错误,并且已经修正。


2 文件系统发生错误,并且已经修正。


4 文件系统发生错误,但没有修正。


8 运作时发生错误。


16 使用的语法发生错误。


128 共享的函数库发生错误。


参  数:


-a 不询问使用者意见,便自动修复文件系统。


-b 指定superblock,而不使用预设的superblock。


-B 指定区块的大小,单位为字节。


-c 一并执行badblocks,以标示损坏的区块。


-C 将检查过程的信息完整记录在file descriptor中,使得整个检查过程都能完整监控。


-d 显示排错信息。


-f 即使文件系统没有错误迹象,仍强制地检查正确性。


-F 执行前先清除设备的缓冲区。


-l 将文件中指定的区块加到损坏区块列表。


-L 先清除损坏区块列表,再将文件中指定的区块加到损坏区块列表。因此损坏区块列表的区块跟文件中指定的区块是一样的。


-n 以只读模式开启文件系统,并采取非互动方式执行,所有的问题对话均设置以"no"回答。


-p 不询问使用者意见,便自动修复文件系统。


-r 此参数只为了兼容性而存在,并无实际作用。


-s 如果文件系统的字节顺序不适当,就交换字节顺序,否则不做任何动作。


-S 不管文件系统的字节顺序,一律交换字节顺序。


-t 显示时间信息。


-v 执行时显示详细的信息。


-V 显示版本信息。


-y 采取非互动方式执行,所有的问题均设置以"yes"回答。

4、

ext2ed(ext2 file system editor)


功能说明:ext2文件系统编辑程序。


语  法:ext2ed


补充说明:ext2ed可直接处理硬盘分区上的数据,这指令只有Red Hat Linux才提供。


参  数:


一般指令


setdevice[设备名称] 指定要处理的设备。


disablewrite 将ext2ed设为只读的状态。


enablewrite 将ext2ed设为可读写的状态。


help[指令] 显示个别指令的帮助。


next 移至下一个单位,单位会依目前所在的模式而异。


prev 移至前一个单位,单位会依目前所在的模式而异。


pgup 移至下一页。


pgdn 移至上一页。


set 修改目前的数据,参数会依目前所在的模式而异。


writedata 在执行此指令之后,才会实际修改分区中的数据。


ext2进入3种模式的指令


super 进入main superblock,即Superblock模式。


group 进入指定的group,即Group模式。


cd 在inode模式下,进入指定的目录或文件,即Inode模式。


Superblock模式


gocopy 进入指定的superblock备份。


setactivecopy 将目前所在的superblock,复制到main superblock。


Group模式


blockbitmap 显示目前groupo的区块图。


inode 进入目前group的第一个inode。


inodebitmap 显示目前group的inode二进制码。


Inode模式


dir 进入目录模式。


file 进入文件模式。


5、

fdisk


功能说明:磁盘分区。


语  法:fdisk [-b ][-uv][外围设备代号] 或 fdisk [-l][-b ][-uv][外围设备代号...] 或 fdisk [-s ]


补充说明:fdisk是用来磁盘分区的程序,它采用传统的问答式界面,而非类似DOS fdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。


参  数:


-b 指定每个分区的大小。


-l 列出指定的外围设备的分区表状况。


-s 将指定的分区大小输出到标准输出上,单位为区块。


-u 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。


-v 显示版本信息。

6、

fsck.ext2(file system check-second filesystem)


功能说明:检查文件系统并尝试修复错误。


语  法:fsck.ext2 [-acdfFnprsStvVy][-b ][-B ][-C ][-I ][-l/L ][-P ][外围设备代号]


补充说明:当ext2文件系统发生错误时,可用fsck.ext2指令尝试加以修复。


参  数:


-a 自动修复文件系统,不询问任何问题。


-b 指定分区的第一个磁区的起始地址,也就是Super Block。


-B 设置该分区每个区块的大小。


-c 检查指定的文件系统内,是否存在有损坏的区块。


-C 指定反叙述器,fsck.ext2指令会把全部的执行过程,都交由其逆向叙述,便于排错或监控程序执行的情形。


-d 详细显示指令执行过程,便于排错或分析程序执行的情形。


-f 强制对该文件系统进行完整检查,纵然该文件系统在慨略检查下没有问题。


-F 检查文件系统之前,先清理该保存设备块区内的数据。


-I 设置欲检查的文件系统,其inode缓冲区的区块数目。


-l 把文件中所列出的区块,视为损坏区块并将其标示出来,避免应用程序使用该区块。


-L 此参数的效果和指定"-l"参数类似,但在参考损坏区块文件标示损坏区块之前,会先将原来标示成损坏区块者统统清楚,即全部重新设置,而非仅是加入新的损坏区块标示。


-n 把欲检查的文件系统设成只读,并关闭互动模式,否决所有询问的问题。


-p 此参数的效果和指定"-a"参数相同。


-P 设置fsck.ext2指令所能处理的inode大小为多少。


-r 此参数将忽略不予处理,仅负责解决兼容性的问题。


-s 检查文件系统时,交换每对字节的内容。


-S 此参数的效果和指定"-s"参数类似,但不论该文件系统是否已是标准位顺序,一律交换每对字节的内容。


-t 显示fsck.ext2指令的时序信息。


-v 详细显示指令执行过程。


-V 显示版本信息。


-y 关闭互动模式,且同意所有询问的问题。

7、

fsck(file system check)


功能说明:检查文件系统并尝试修复错误。


语  法:fsck [-aANPrRsTV][-t ][文件系统...]


补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。


参  数:


-a 自动修复文件系统,不询问任何问题。


-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。


-N 不执行指令,仅列出实际执行会进行的动作。


-P 当搭配"-A"参数使用时,则会同时检查所有的文件系统。


-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。


-R 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查。


-s 依序执行检查作业,而非同时执行。


-t 指定要检查的文件系统类型。


-T 执行fsck指令时,不显示标题信息。


-V 显示指令执行过程。

8、

cfdisk


功能说明:磁盘分区。


语  法:cfdisk [-avz][-c -h -s ][-P ][外围设备代号]


补充说明:cfdisk是用来磁盘分区的程序,它十分类似DOS的fdisk,具有互动式操作界面而非传统fdisk的问答式界面,您可以轻易地利用方向键来操控分区操作。


参  数:


-a 在程序里不用反白代表选取,而以箭头表示。


-c 忽略Bios的数值,直接指定磁盘的柱面数目。


-h 忽略BIOS的数值,直接指定磁盘的磁头数目。


-P 显示分区表的内容,附加参数"r"会显示整个分区表的详细资料,附加参数"s"会依照磁区的顺序显示相关信息,附加参数"t"则会以磁头,磁区,柱面的方式来显示资料。


-s 忽略BIOS的数值,直接指定磁盘的磁区数目。


-v 显示版本信息。


-z 不读取现有的分区,直接当作没有分区的新磁盘使用。



如果觉得有用,就点个赞吧。

以上是关于Linux 检查磁盘损坏情况命令 -必会的主要内容,如果未能解决你的问题,请参考以下文章

pcmask磁盘错误

markdown 如何检查linux的磁盘使用情况

linux系统redhead启动时报错,之前曾经误删磁盘分区,该怎样修复?

文件或目录损坏且无法读取的解决办法大集合(转)

Linux下非逻辑卷扩容之创建逻辑卷pvcreate是否会损坏原数据测试

Linux下非逻辑卷扩容之创建逻辑卷pvcreate是否会损坏原数据测试