Linux怎么扫描SCSI总线识别在线扩容后的磁盘大小

大萱酱_7774

大萱酱_7774

2026-10-25

854人浏览

原创

扩容后磁盘容量未更新需触发scsi设备rescan:执行echo 1 > /sys/class/scsi_device/x\:y\:z\:w/device/rescan(x:y:z:w通过ls -l /sys/block/sda/device获取),再运行blockdev --rereadpt /dev/sda验证。

linux怎么扫描scsi总线识别在线扩容后的磁盘大小

扩容后的磁盘容量没变,fdisk -l 或 lsblk 仍显示旧大小?不是配置没生效,而是内核根本没重新读取设备容量 —— 必须主动触发 SCSI 设备 rescan,不能只扫总线。

为什么只执行 echo "- - -" > /sys/class/scsi_host/hostX/scan 不够

这条命令只让内核扫描总线、发现新设备(比如新加一块硬盘),但对**已存在设备的容量变更**(如云盘在线扩容、VMware 虚拟磁盘增大)完全无效。内核仍按旧的设备描述符缓存着容量,必须单独通知对应 SCSI 设备刷新容量。

常见错误现象:fdisk -l 显示磁盘仍是 100G,但云平台控制台或虚拟化层已确认扩容到 200G;lsblk 中 SIZE 列不变,blockdev --getsize64 /dev/sda 返回值也不变。

  • /sys/class/scsi_host/hostX/scan:用于「发现新设备」,适用场景是新增 LUN 或挂载新虚拟磁盘
  • /sys/class/scsi_device/X\:Y\:Z\:W/device/rescan 或 /sys/class/scsi_disk/X\:Y\:Z\:W/device/rescan:用于「刷新已有设备容量」,才是在线扩容后真正该走的路径
  • 路径中的 X:Y:Z:W 是 SCSI 地址,格式为 host:bus:target:lun,冒号必须用 \: 转义

怎么快速找到要 rescan 的 X\:Y\:Z\:W

别猜,也别硬记。直接查当前系统里所有 SCSI 设备的地址:

ls /sys/class/scsi_device/

输出类似 0:0:0:0 0:0:1:0 1:0:0:0 —— 每一项就是一个 SCSI 设备。你扩容的是哪块盘(比如 /dev/sda),就找它对应的地址。

怎么关联?用这个命令:

ls -l /sys/block/sda/device

输出里会有一行类似 ../../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0,末尾的 0:0:0:0 就是你要的地址。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

确认后执行:

echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan

注意:scsi_device 和 scsi_disk 下都有 device/rescan,优先用 scsi_device;如果报错“No such file”,再试 scsi_disk 路径。

扫完还是没更新?检查三个关键点

rescan 命令返回成功不代表容量立刻可见,常卡在这几个环节:

  • 权限问题:必须用 root 执行,普通用户写 /sys/ 下文件会 Permission denied
  • 路径拼错:0\:0\:0\:0 中的每个冒号都要转义,写成 0:0:0:0 会提示 No such file or directory
  • 未同步底层块设备:执行完 rescan 后,运行 blockdev --rereadpt /dev/sda(如果分区表变了)或 partprobe /dev/sda(部分老系统需要),否则 fdisk -l 可能不刷新分区信息

验证是否生效,别只看 fdisk -l,用更底层的命令:

blockdev --getsz /dev/sda  # 返回扇区数<br>blockdev --getsize64 /dev/sda  # 返回字节数

这两个值变大了,才说明内核真正接受了新容量。

SCSI 设备地址不是固定不变的,尤其在多路径或热插拔频繁的环境里,/sys/block/sda/device 软链接可能指向不同地址。每次扩容前务必重新查,别复用上次的路径。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4190

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3553

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2773

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6810

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6462

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3713

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3225

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3439

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习