linux磁盘常用命令

工具教程6天前更新 hank
263 0 0

扫盘

1.扫描磁盘
当我们添加一块磁盘后,操作系统可能没有识别到该磁盘,即lsblk下没有该磁盘的信息。
只要是该盘走的是SCSI协议,即SATA硬盘,SAS硬盘等等,都可以使用这个命令来识别。

echo "- - -" | tee /sys/class/scsi_host/host*/scan
linux磁盘常用命令

还有一种场景就是在救援模式(Rescue Mode)下,LVM分区不能像普通的ext4、xfs分区那样直接mount,需要先将它“激活”

vgchange -ay vg_name

挂载

2.磁盘挂载
挂载一般分为临时挂载和永久挂载,看具体的用途和需求,例如临时挂载上去备份文件就只临时挂载即可mount -t可指定文件系统类型,
例如xfs、ext4、nfs、ntfs-3g(windows),永久挂载就是将磁盘信息写入 /etc/fstab,并使用mount -a去自动挂载(验证)

/etc/fstab下的格式
/dev/sda /mnt xfs defaults 0 0
设备路径、挂载点、文件系统类型、挂载参数、dump 备份、fsck 检查,需一一对应
官方一点的:
[设备]  [挂载点]  [文件系统类型]  [挂载参数(options)]  [dump备份]  [fsck开机自检]

设备这里,一般地,设备路径容易发生变化,所以这里写uuid是最稳妥的,磁盘的uuid可以使用”blkid“去获取,复制下来。
文件格式类型一般就是xfs、ext4,挂载的如果是iso文件的话,需要写 iso9660

挂载参数,这里比较常见的就是defaults,大多数场景下写这个也没问题,差不多就是一个默认的组合包。
一般还可以在defaults后面补加其他参数或者替换掉,比如defaults,noatime,nodiratime,commit=600,errors=remount-ro

其他参数
nofail :用于挂载一些非内部存储的盘的时候可以用,它的作用就是开始检查fstab的时候,即使这行,这块盘找不到、
挂载不上等等情况,直接忽略,跳过。一般就是比如nfs挂载的,比如网络出问题了,客户机重启如果还是defaults参数,
那么这行就出问题,系统就会进入紧急模式(Emergency Mode)

noatime & nodiratime :这两一般可以用在一起,ssd固态建议使用,简而言之,就是优化性能,减少i/o写入,可以
延长ssd固态的寿命,比如咱们跑pcdn的时候,挂载参数有这两。
官方解释是
noatime:彻底禁止系统更新文件的访问时间,
nodiratime:禁止更新目录的访问时间。

errors=remount-ro :当文件系统底层出现错误时,立刻把它重新挂载为只读(Read-Only)模式。这个东西
相当于保留案发现场,比如发生了磁盘硬件类错误,坏道、坏块等等,这个时候不让写了,只读,那么系统
还是活的,咱们就有机会备份数据,及时止损。
fstab参数里面,那个dump备份基本不用了,一般都是"0",需要注意的是第二个 fsck开机,这个和fsck命令
有关系,这里的参数就是看用不用fsck

fsck检查参数:
0 :不检查,即跳过检查,开机直接挂载,不管有没有报错,例如I/O错误什么的也要挂载上去
1 :要检查,且优先级最高,一般用于根目录,系统fsck根目录,根目录没问题后,才能继续启动
2 :要检查,次优先级,一般用于独立根目录的,比如/home,等根目录检查或者跳过后,再检查这些标记为2的

commit :这个不太懂,默认的是5s,我看跑pcdn调优的用到的,大概意思就是参数越低,数据安全性越高
但是IO压力也就越大。参数给600。就是10分钟写一次盘,把内存里的缓存的数据和日志同步到硬盘里面,这个
在正规的生产环境中不建议调整,默认的就行。
这里涉及到一个叫“脏页(Dirty Pages)”,咱们写操作的时候数据不是直接落入磁盘的,一般会先写到内存
里面,咱们平时free看内存的时候,会发现有一个buffer/cache的东西,cache这里面就存着脏页。linux写入
有一个机制叫“page cache页面缓存”,而commit就差不多是一个时间参数,到时候了就是让一个文件系统日志线程,
比如ext4的jbd2去内存的cache将脏页,刷写(flush)到硬盘,变成clean pages,这个就是落盘。

Linux 会把这些要写入的数据,先存放到内存的 Cache(页面缓存,Page Cache) 里。
此时,这部分在内存中已经被修改、但还没来得及写到物理硬盘上的数据,就被打上了一个特殊的标记,叫做 脏页 (Dirty Page)。

3.移除文件系统签名
当我们要去做LVM的时候,如果磁盘本身就带文件系统签名,例如已经是xfs格式的磁盘了,做物理卷pv的时候就会出问题,设备就会冲突。
比如我先将一块磁盘做了pv之后,又使用mkfs.xfs文件系统格式化掉之后,引发冲突,导致pvdisplay无法查到我的pv,就是因为磁盘
同时存在 LVM 元数据和文件系统签名。

wipefs -a /dev/sdx

这个命令也可以直接用来消除分区

查盘

4.查看磁盘

fdisk -l & lsblk #两者都可以查看可挂载的磁盘
blkid  #获取uuid,获取文件格式类型等
df -h  #查看已挂载的磁盘、文件系统、磁盘使用情况
df -hi #查看indoe使用率

LVM类

5.LVM
PV-VG-LV

#创建物理卷pv
pvcreate /dev/sdx

#查看物理卷
pvs/pvdisplay

#创建卷组,名称为vg_name,将/dev/sdx这个pv加入vg
vgcreate vg_name /dev/sdx

#查看卷组
vgs/vgdisplay

#创建lv
lvcreate -l 100%free -n lv_name vg_name
lvcreate -L +10G -n lv_name vg_name

#格式化磁盘
mkfs.xfs /dev/vg_name/lv_name #格式化磁盘(lv的路径)
mkfs.ext4 /dev/vg_name/lv_name

##逻辑卷扩容
新添加一块磁盘,做成pv。
pvcreate /dev/sdb
linux磁盘常用命令
将其加入现有的vg
vgextend vg_name /dev/sdb
linux磁盘常用命令
#注意,如果报错Couldn’t create temporary archive name,建议排查一下原数据存储路径上的存储使用情况,比如想给根目录扩容,
但是根目录Use%达到100%等就会提示这个错误,当然还有其他原因,例如权限、卷组本身状态有异常等等。
LVM 操作需要在 /etc/lvm/archive/和 /etc/lvm/backup/ 目录生成临时元数据文件,若根分区空间满,会导致无法创建临时文件
vg成功添加后,可以查看vgs,里面有个VFree参数,这个就是目前vg的剩余可使用容量,可以扩容到一个lv里
lvextend -L +50G -n /dev/rhel/root
#当lvextend本身操作成功的时候,去查看df -h显示容量还是没有变化,这是因为lvextend仅只是扩容lv底层逻辑卷,还需要同步到
上层的文件系统这个操作

#xfs
xfs_growfs /dev/rhel/root
#ext4
resize2fs /dev/rhel/root
linux磁盘常用命令 linux磁盘常用命令

修复

#修复场景
如果要进入光盘救援模式,挂载原根目录的时候可能会用到,原磁盘分区是LVM做的。

#扫描vg
vgscan
#激活
vgchange -a y vgname

linux磁盘常用命令
这个会激活该卷组下所有的逻辑卷,所以就不用再去做lvchange -ay
然后再去挂载,chroot进入。
mount /dev/vg_name/lv_name /mnt/sysroot
#chroot进入故障的文件系统
chroot /mnt/sysroot
#挂载映射 mount –bind
如果故障系统里面有文件、目录缺失,然后在修复过程中需要用到,可以使用mount –bind临时映射过去,一般都是系统目录,
/dev/,/proc,/sys啥的。
但是需要退回到救援交互界面,exit退出(如果已经chroot进去了)
假设/proc没有,将光盘下的/proc映射到故障系统里。
如果故障系统/proc被删除或者没有,还需要创建一下目录,毕竟要挂载点
mount –bind /proc /mnt/sysroot/proc

#文件系统修复

都需要先umount取消挂载才能操作!
#针对xfs文件类型
xfs_repair /dev/sdx

#针对ext4,ext3等
fsck /dev/sdx
常用参数:
-y:对所有修复,自动回答yes
-f:强制检查

修复后可以查看下 /挂载点/lost+found这个目录是否存在和是否有文件

#硬件层

smartctl 这里要看一下是虚拟磁盘还是物理磁盘,虚拟机的可以不用查了!
如果没有这个命令就安装一下,它是在smartmontools这个软件包里
yum install -y smartmontools
apt install -y smartmontools
常用命令:
smartctl -H /dev/sdx</strong>

linux磁盘常用命令
显示“PASSED”的一般都没问题,显示“FAILED”的就要注意了,赶紧备份数据、换盘
smartctl -A /dev/sdx

linux磁盘常用命令

看对应的数值
Reallocated_Sector_Ct------5
Current_Pending_Sector---197
UDMA_CRC_Error_Count-----199
一般是固定的,不一样就AI一下问下,主要还是看盘出问题没有

注释:后期会继续更新

© 版权声明

相关文章

暂无评论

none
暂无评论...