硬盘是计算的重要组成部件之一, 硬盘为操作系统提供持久话存储的功能, 在 Linux 硬盘设备的性能和好坏可能关系到生成线的安全和用户体验等等. 熟练的掌握硬盘管理相关的信息能让我们处理起这些问题来得心应手.
#
Linux 中最为重要到的哲学就是一切皆文件, 硬盘设备也不例外, 在 Linux 系统中硬盘设备一般存放在 / dev / 下面 SATA,SCSI 等接口类型的硬盘使用 sd 表示, 第一块 sd 的硬盘表示为 / dev/sda, 第二块 sd 的硬盘表示为 / dev/sdb.IDE 硬盘使用 hd 表示, 第一块 hd 的硬盘表示为 / dev/hda, 第二块 hd 的硬盘表示为 / dev/hdb. 以此类推.
#
#
下面介绍 Linux 下和硬盘相关的命令
mount 挂载指定设备
格式: mount -t 文件系统类型(通常 mount 命令会自动识别) 设备路径 挂载点
示例:
- mount /dev/sda1 /mnt/ #将 / dev/sda1 挂载到 / mnt
- mount /dev/cdrom /media/ #将 cdrom(光盘设备)挂载到 / media
- mount -a #重读 / etc/fstab 文件
umount 卸载指定设备
格式: umount 设备 / 挂载点
示例:
- umount /dev/sda1 #卸载 / dev/sda1 卸载到整个设备, 比如说这个分区一共挂载到了 / mnt /test /test1 那么这三个挂载点的挂载都将卸掉
- umount /media/ #卸载挂在 / media 目录上面的设备
df 查看当前系统挂载的分区情况
格式
df 参数
常用参数
--help 查看帮助信息
-i 显示 inode 情况
-h 自动计算显示的文件系统大小单位
-k 以 kb 方式大小输出文件系统大小
-l 只显示本地文件系统的信息
-T 显示文件系统类型
-t 只显示指定的文件系统
tune2fs 调整文件系统属性
格式:
tune2fs 参数 分区
常用参数:
-j 在不损坏原有数据的情况下升级 ext2 为 ext3
-L 设定或修改卷标(卷名)
-m 调整预留给超级用户 (root) 的百分比, 默认为 5%
-c 指定挂载次数达到 n 次之后进行自检, 0 或 - 1 表示关闭此功能
-i 每次挂载使用多少天之后进行自检, 0 或 - 1 表示关闭此功能
-l 显示超级块中的信息
smartctl:(不支持虚拟机或云主机等服务器)
Smartctl 是类 Unix 系统下 SMART 的命令行工具, 它用于打印 SMART 自检和错误日志, 启用或禁用 SMRAT 自动检测, 以及初始化设备自检等操作
Smartctl 对于 Linux 物理服务器十分有用, 在这些服务器上, 可以对智能磁盘进行错误检查, 并将与硬件 RAID 相关的磁盘信息摘录下来
安装:
yum -y install smartmontools
常用选项:
-i 打印设备的简略信息, 如序列号, 转速等
-s 设置是否开启 smart 功能
-a 输出关于指定硬盘的所有 smart 信息
-H 打印设备健康状况
-t 子参数 执行测试操作, 在测试时会对硬盘的性能有一点影响
常用子参数:
offline 进行脱机测试
short 运行短时间的自我测试(一般不超过 10 分钟)
long 运行扩展的自我测试(一般时间较长 1 小时以上)
select,N-M, 选择对指定范围的磁盘块进行测试而不是整块硬盘
示例:
smartctl -i /dev/sdb 检查 SMART 是否启用, 输出的最后一行为 Device does not support SMART
表示不支持 SMART, 输出的最后一行为 SMART support is: Disabled 表示禁用 SMART,
输出的最后一行为 SMART support is: Enabled 表示已启用
smartctl -s on /dev/sdb 启用硬盘的 SMART 功能
smartctl -s off /dev/sdb 禁用硬盘的 SMART 功能
smartctl -a /dev/sdb 查看硬盘的详细信息
关键字段说明:
Raw_Read_Error_Rate: 底层数据读取错误率
Rotation Rate: 硬盘转数信息, 固态硬盘显示 Solid State Device
User Capacity: 硬盘容量
Start_Stop_Count: 硬盘加电次数
Power_On_Hours: 硬盘累计使用时长(小时)
Power-Off_Retract_Count: 非正常关闭硬盘的次数(突然关闭, 或者强制热插拔硬盘的次数)
Temperature_Celsius: 硬盘温度
Seek_Error_Rate: 寻道错误率
smartctl -H /dev/sdb 获取设备的健康状态
smartctl -t short /dev/sdb 进行短时间的智能测试
smartctl -l selftest /dev/sdb 查看硬盘的自检结果
smartctl -c /dev/sdb 计算测试时间的大概值
smartctl -l error /dev/sdb 打印硬盘错误日志
hdparm:
hdparm 命令提供了一个命令行的接口用于在驱动级别读取和设置 IDE 或 SCSI 硬盘参数
安装:
yum -y install hdparm
命令格式:
hdparm 参数 设备
常用参数:
-h 查看帮助信息
-I 获取硬盘的详细信息, 如序列号, 硬盘转述, 接口类型等
-t 评估硬盘的读取速度(不经过硬盘 cache)
-T 评估硬盘快取的读取效率(内存中缓存的频繁使用的数据)
-a 设置硬盘的预读取功能, 对于读取大文件有显著的性能提升
-A 0/1 启动或关闭读取文件时的快取功能
-f 将内存缓冲区的数据写入硬盘, 并清空缓冲区(类似雨 sync 命令)
--direct 通常和 - t 或 - T 参数一起使用, 通过原始 io 测试硬盘读取速度, 更好地指示原始设备和驱动程序的性能
--drq-hsm-error 非常危险的命令, 仅在测试环境中模拟故障时使用, 生成环境中千万不要使用
-g 显示硬盘的磁轨, 磁头, 磁区等参数
-i 显示硬盘的硬件规格信息, 这些信息是在开机时由硬盘本身所提供
-I 直接读取硬盘所提供的硬件规格信息(从驱动器读取读取硬盘信息)
--make-bad-sector 非常危险的命令, 仅在测试环境中模拟故障时使用,
生成环境中千万不要使用(故意创建一个坏扇区, 用于测试 raid 等设备检查扇区的功能)
-r 将硬盘设置为自读模式
-S 设定硬盘进入省电模式前的等待时间
-y 强制 IDE 驱动器立即进入待机模式
-Y 强制 IDE 驱动器立即进入休眠模式
-w 设置硬盘的写入快取
示例:
- hdparm -I /dev/sha #获取硬盘的详细信息
- hdparm -C /dev/sda #检测硬盘的电源管理模式
- hdparm -t #测试硬盘的读取速度(不经过 cache)
- hdparm -T #测试硬盘快取的读取速度
- hdparm -Tt --direct /dev/sda #测试硬盘的真实读取速度
其他的一些相关命令:
fsck 检查并修复 linux 中的文件系统
格式:
fsck 参数 文件系统分区
常用参数:
-t 指定文件系统类型
-a 自动修复
e2fsck 专用于修复 ext 系列的文件系统
格式:
e2fsck 参数 文件系统分区
常用参数:
-f 强制检查
-p 自动修复
mke2fs 专门管理 ext 系列的文件系统
格式:
mke2fs 参数 文件系统分区
常用参数:
-j 创建 ext3 类型的文件系统
-b 指定块大小, 默认为 4096, 可以值有, 1024,2048.4096
-L 指定卷标
-m 指定预留给超级用户的块数百分比
-E 指定额外文件系统属性
blkid 查看当前磁盘设备的相关属性
格式:
blkid 文件系统分区
字段说明:
UUID: 磁盘的唯一标识符 TYPT: 文件系统类型 LABEL: 卷标
e2label 查看或重新定义卷标
格式:
e2label 文件系统分区 [卷标名]
示例:
e2label /dev/sda1 查看卷标名
e2label /dev/sda1 test 设置卷标名
其他命令:
lscpu 用于查询 CPU 信息
lshw 用于显示硬件信息表
hwinfo 用于查询硬件信息
lsppci 用于列出 PCI 总线的信息以及连接到 PCI 总线上的设备信息
lsblk 用于列出块设备的信息
lsscsi 用于列出 SCSI 的设备信息
来源: http://blog.51cto.com/hongchen99/2153711