Buffer I/O error on dev dm-2虚拟机测试增加硬盘,删除后进不去系统

虚拟机硬盘扩展与lvm问题解决

虚拟机测试增加硬盘,删除后进不去系统

一、背景

注意以下都是本地虚拟机测试

虚拟机测试扩展硬盘,扩展到/目录后,然后关机,直接删除了硬盘启动不了

二、启动报错

在这里插入图片描述

三、尝试解决问题

输入journalctl

一直按空格到最后,定位到报错原因

在这里插入图片描述

错误是dm-2lvm逻辑卷出了问题

四、问题查找(只是参考)

lvm

输入lvm进入lvm命令行

pvs(physical volumes)命令查看物理卷信息

在这里插入图片描述

lvs(logical volumes)命令查看逻辑卷(虚拟卷)

在这里插入图片描述

vgs(volue groups)查看卷分组
在这里插入图片描述

lvmdiskscan查看设备列表(显示所有卷)

在这里插入图片描述

五、目前的解决方式

应该是我删除了硬盘的问题,所以通过vm找到那个硬盘再加上就可以了

点击硬盘

在这里插入图片描述

找到文件报错路径

在这里插入图片描述

通过这个路径然后找回之前创建的虚拟硬盘

添加回虚拟硬盘

在这里插入图片描述

这地方选择使用现有虚拟磁盘
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/d409cea6530f4548aa4cc9652586107e.png

选择你之前创建的虚拟硬盘文件,我之前起的是这个名字centos7.5.vmdk ,主要是找.vmdk文件后缀的

在这里插入图片描述

在这里插入图片描述

重启虚拟机(成功)

在这里插入图片描述

六、参考文章

https://blog.youkuaiyun.com/qq_34146694/article/details/109060279
### 问题分析 当用户遇到 `Buffer I/O error on device dm-2` 这类错误时,通常意味着系统在访问设备 `/dev/dm-2` 时遇到了底层 I/O 问题。该设备是一个设备映射(Device Mapper)设备,通常用于 LVM、加密卷(如 LUKS)、或 dm-verity 等场景。该错误可能涉及硬件、文件系统、驱动程序或存储堆栈中的某个环节。 --- ### 常见原因分析 1. **存储设备故障** 存储介质(如 SSD 或 HDD)出现物理损坏、坏块或连接问题可能导致 I/O 错误。例如,SATA 或 NVMe 接口稳定、硬盘老化、控制器故障等。 2. **文件系统损坏** 如果文件系统元数据损坏,或者文件系统未正确卸载(如系统崩溃或强制关机),可能导致访问 `/dev/dm-2` 时出现 I/O 错误。 3. **设备映射配置错误** `/dev/dm-2` 是通过 Device Mapper 创建的虚拟设备,其底层可能依赖 LVM、加密卷或 verity 设备。如果配置错误或映射失败,可能导致 I/O 错误。例如,dm-verity 配置当可能导致其进入 `EIO` 模式[^3]。 4. **驱动或内核模块问题** 内核模块(如 `dm-mod`、`ext4`、`nvme` 等)版本兼容或存在 bug,也可能导致 I/O 错误。 5. **I/O 调度器或磁盘队列问题** 如果 I/O 调度器配置当或磁盘队列过载,也可能导致缓冲区 I/O 错误。 --- ### 排查与解决方案 1. **检查 dmesg 日志** 使用 `dmesg | grep -i "buffer i/o error"` 查看详细错误信息,确认是哪个底层设备(如 `/dev/sda1`)导致了问题。 ```bash dmesg | grep -i "buffer i/o error" ``` 2. **验证设备映射关系** 使用 `dmsetup ls --tree` 查看 `/dev/dm-2` 的映射关系,确认其依赖的底层设备。 ```bash dmsetup ls --tree ``` 3. **检查底层设备状态** 使用 `smartctl` 工具检查底层物理设备的 SMART 状态,判断是否存在硬件问题。 ```bash smartctl -a /dev/sdX ``` 4. **文件系统检查** 卸载相关设备后,使用 `fsck` 对文件系统进行检查和修复。 ```bash umount /dev/dm-2 fsck /dev/dm-2 ``` 5. **调整设备映射配置** 如果 `/dev/dm-2` 是一个 dm-verity 设备,需检查其配置是否正确。例如,确保 verity 模式设置为 `restart` 或 `ignore_corruption` 而是 `EIO` 模式[^3]。 6. **更新内核与驱动** 确保使用的是最新内核版本,并更新相关驱动程序,以修复已知的兼容性或稳定性问题。 7. **调整 I/O 调度器** 修改设备的 I/O 调度器,尝试使用 `deadline` 或 `none`(适用于 NVMe 设备)。 ```bash echo deadline > /sys/block/sda/queue/scheduler ``` 8. **检查磁盘空间与 inode 使用率** 使用 `df -h` 和 `df -i` 检查磁盘空间和 inode 使用情况,确保没有满载。 ```bash df -h df -i ``` --- ### 示例:查看设备映射关系 ```bash dmsetup ls --tree ``` 输出示例: ``` my-logical-volume (253:2) └─ (8:0) ``` 该输出表示 `/dev/dm-2` 实际上是 `my-logical-volume`,底层依赖于 `/dev/sda`。 --- ### 示例:使用 fsck 修复文件系统 ```bash umount /dev/dm-2 fsck /dev/dm-2 ``` 如果提示错误,可选择修复选项(如 `-y` 自动修复)。 --- ### 示例:调整 verity 模式 如果 `/dev/dm-2` 是 verity 设备,可在挂载时指定模式为 `restart`: ```bash mount -o verity_mode=restart /dev/dm-2 /mnt ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值