大约运行一年后,我的家用服务器(作为主服务器运行 CentOS 8)和两台 KVM 机器(也运行 CentOS 8 并托管 Nextcloud、pihole、NFS 共享和一些其他小型服务)无法再访问。所以我关闭了它并尝试重新启动。但机器无法启动,到目前为止,我在网上找到的建议都没有帮助。
这是尝试启动时显示的内容(省略时间戳,因为我正在输入此内容):
[drm:intel_set_cpu_fifo_underrun_reporting [i915]] *ERROR* uncleared fifo underrun on pipe A
[drm:intel_cpu_fifo_underrun_irq_hander [i915]] *ERROR* CPU pipe A FIFO undrrun
[drm:intel_set_pch_fifo_undrrun_reporting [i915]] *ERROR* uncleared pch fifo underrun on pch transcoder A
[drm:cpt_irq_handler [i915]] *ERROR* PCH transcoder A FIFO underrun
ata2.00: exception Emask 0x0 SAct 0x100000 SErr 0x0 action 0x0
ata2.00: irq_stat 0x40000008
ata2.00: failed command: READ FPDMA QUEUED
ata2.00: cmd 60/20:a0:d0:c9:d3/00:00:0a:00:00/40 tag 20 ncq dma 16384 in
res 41/40:00:d0:c9:d3/00:00:0a:00:00/00 Emask 0x409 (media error) <F>
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
blk_update_request: I/O error, dev sdb, sector 181651920 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
CPU: 2 PID: 1 Comm: systemd Not tainted 4.18.0-193.6.3.el8_2.x86_64 #1
Hardware name: Dell Inc. OptiPlex 7010/0GY6Y8, BIOS A16 09/09/2013
Call Trace:
dump_stack+0x5c/0x80
panic+0xe7/0x2a9
do_exit.cold.22+0x59/0x81
? __fput+0x154/0x230
do_group_exit+0x3a/0xa0
__x64_sys_exit_group+0x14/0x20
do_syscall_64+0x5b/0x1a0
entry_SYSCALL_64_after_hwframe+0x65/0xca
RIP: 0033:0x7ff23763648e
Code: Bad RIP value.
RSP: 002b:00007ffd2630b5f8 EFLAGS: 00000206 ORIG_RAX: 00000000000000e7
(some more numbers)
Kernel Offset: 0x26200000 from 0xffffffff81000000 (relocation range: numbers-numbers)
---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00
]---
我希望没有错别字。
该系统运行 4.18.0-193.6.3.el8_2 内核,以 UEFI 模式启动,我确信在让它运行如此长时间之前,我已经成功测试了系统重启。
我到目前为止尝试过的:
- 尝试启动其他已安装的内核。不同的内核显示不同的错误消息,但都以同一行结尾。
- 通过将 中的
SELINUX
和都设置为 来禁用 SELinux 。这不会产生任何效果。SELINUXTYPE
/etc/selinux/config
disabled
- 在 BIOS 中禁用虚拟化。同样不执行任何操作。
- 重新安装引导加载程序。我无法执行此操作,原因如下:
当尝试从 anaconda 救援模式 chroot 时重新安装 GRUB 的文档chroot /mnt/sysroot
或者按照 anaconda 控制台本身的建议执行,我收到以下错误:
Bus error (core dumped)
我现在明白了,错误ata2.00: failed command: READ FPDMA
可能表示磁盘已损坏。我现在正在尝试进行备份。这是正确的步骤吗?如果是,我可以 1:1 克隆磁盘,然后从新磁盘启动,就像什么都没发生过一样吗?您将如何进行?
也许有人可以指导我一下。相当多的人依赖这台机器托管的服务。
答案1
ata2.00: exception Emask 0x0 SAct 0x100000 SErr 0x0 action 0x0
ata2.00: irq_stat 0x40000008
ata2.00: failed command: READ FPDMA QUEUED
ata2.00: cmd 60/20:a0:d0:c9:d3/00:00:0a:00:00/40 tag 20 ncq dma 16384 in
res 41/40:00:d0:c9:d3/00:00:0a:00:00/00 Emask 0x409 (media error) <F>
ata2.00: status: { DRDY ERR }
ata2.00: error: { UNC }
您似乎丢失了硬盘。看起来像是坏块或类似的东西。尝试使用已知良好的电缆将其连接到另一个 SATA 端口,以确保万无一失,但您可能需要购买新磁盘。您可以尝试使用类似testdisk
After 的实用程序从故障磁盘中挽救可以挽救的内容。对于 SSD,数据恢复可能不会产生任何结果。