dev sdc 逻辑块上的缓冲区 I/O 错误 418914480,异步页读取

dev sdc 逻辑块上的缓冲区 I/O 错误 418914480,异步页读取

当我尝试启动 linux (debian) 时,收到以下错误消息。我的硬盘SATA线昨天在运行时接触松动并脱落了……有什么技巧可以让系统再次运行吗?

blk_update_request:严重介质错误,dev sdc 扇区...标志 0xb0700 1 prio 0 类

我无法中断它卡在启动时...

在此输入图像描述

答案1

看起来设备/dev/sdc出现了物理故障。从救援环境启动,勾选SMART,用于ddrescue保存幸存数据或发送至专业数据救援服务。

硬件会死掉,这不是“如果”而是“何时”,您必须做好准备,因此请提前计划并采取措施以防止它让您失望。

了解如何使用 RAID、定期进行自动备份以及监控硬件和备份的运行状况。 Proxmox 内置了对 ZFS 和 BTRFS 的支持,两者都提供冗余,还可以在 MD RAID(又名 Linux 软件 RAID)+ LVM 上安装 Debian 并将其转换为 Proxmox 安装;它像这样完美地工作。 Proxmox还提供了优秀的备份服务器,它与虚拟环境紧密集成,非常整洁、易于使用且高效。

答案2

我在 ZFS 上运行虚拟机时遇到此错误。 ZFS 池正常,但 e2fsck 失败,给出错误:

/dev/zvol/tank/my-disk: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
e2fsck: Input/output error while recovering journal of 
/dev/zvol/tank/my-disk
e2fsck: unable to set superblock flags on /dev/zvol/tank/my-disk
/dev/zvol/tank/my-disk: ********** WARNING: Filesystem still has errors **********
Superblock needs_recovery flag is clear, but journal has data.

dmesg 说:

[11284814.033303] Buffer I/O error on dev zd192, logical block 0, lost async page write
[11284814.033554] Buffer I/O error on dev zd192, logical block 1, lost async page write
[11284814.033678] Buffer I/O error on dev zd192, logical block 2, lost async page write
[11284814.033713] Buffer I/O error on dev zd192, logical block 3, lost async page write
[11284814.033733] Buffer I/O error on dev zd192, logical block 9, lost async page write
[11284814.033741] Buffer I/O error on dev zd192, logical block 1057, lost async page write
[11284814.033788] Buffer I/O error on dev zd192, logical block 1058, lost async page write
[11284814.033837] Buffer I/O error on dev zd192, logical block 1083, lost async page write
[11284814.033904] Buffer I/O error on dev zd192, logical block 1098, lost async page write
[11284814.033931] Buffer I/O error on dev zd192, logical block 1398, lost async page write

经过一番调查后发现,设备物理上没有问题,问题的根本原因是 ZFS 池已满:

zpool list -v

显示“油箱”已满96.5%。我已经安排了快照,并通过以下命令删除了较旧的快照(从 2022 年开始):

/sbin/zfs list -H -o name -t snapshot |grep tank |grep 2022 |xargs -n1 /sbin/zfs destroy

我建议一开始就在没有 UNIX 管道的情况下逐一运行命令来找出正确的命令。

此后 e2fsck 正常工作。

相关内容