AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 788662
Accepted
Dima Palov
Dima Palov
Asked: 2024-12-25 17:34:30 +0800 CST2024-12-25 17:34:30 +0800 CST 2024-12-25 17:34:30 +0800 CST

您处于紧急模式

  • 772

我是 Linux 新手,在 Pop_os 上遇到了这个问题。按 ctrl+d 时,我得到了同样的错误。我还没有尝试任何东西,因为我害怕破坏某些东西。我该怎么做才能恢复正常? 我得到的错误 编辑:我使用 journalctl -xb 调查了日志,以下是我发现的一些错误(在系统日志中以红色突出显示):

BIOS Error (bug): Could not resolve symbol
[drm] *ERROR* Port F/TC#3: timeout waiting for PHY ready
Failed to insert module 'autofs4': Invalid argument
Same error with modules 'lp', 'ppdev', 'parport_pc', 'msr', 'kyber_iosched'.
Failed to start Load Kernel Modules.
nvme0n1: /usr/lib/udev/rules.d/60-block-pop.rules:6 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:0e.0/pci10000:e0/10000:e0:1d.0/10000:e1:00.0/nvme/nvme0/nvme0n1/queue/scheduler}, ignoring: invalid argument
loop4: /usr/lib/udev/rules.d/60-block-pop.rules:2 Failed to write ATTR{/sys/devices/virtual/block/loop4/queue/scheduler}, ignoring: Invalid argument
Same with loop 0-7
FAT-fs (nvme0n1p2): IO charset iso8859-1 not found
Failed to mount /recovery
Failed to mount /boot/efi.
pop-os
  • 3 3 个回答
  • 116 Views

3 个回答

  • Voted
  1. user10489
    2024-12-26T13:56:22+08:002024-12-26T13:56:22+08:00

    正如 telcoM 在评论中所说,BPF 消息可能不相关,并且很可能导致真正的错误从屏幕上滚动出来。

    这两种操作(按 ctrl-d 或 enter)都不太可能造成损坏,但可能也无法立即解决问题。如果您准备尝试修复系统,尝试这些操作不会有什么坏处。

    如果您按下回车键,您应该能够探索系统并尝试确定错误并可能(部分)修复它。

    错误中建议的 journalctl 命令应该有助于查看滚动的完整启动日志,可能会暴露真正的错误,可能是关于找不到磁盘或找不到根磁盘的错误。

    比较 lsblk 可用的设备与 fstab 预期的磁盘并df检查实际安装的磁盘,可以帮助确定哪一个出现故障(如果您尚未在日志中找到它)。

    如果故障磁盘并不重要,您可以编辑 fstab(可能必须先重新挂载读写)以注释掉故障磁盘。完成后,您可以退出救援模式并尝试正常启动,然后稍后再探索丢失的磁盘。

    如果故障磁盘很重要(例如根磁盘),您可能需要做一些更困难的来修复它,这取决于挂载失败的原因。

    • 0
  2. stevea
    2024-12-26T17:33:26+08:002024-12-26T17:33:26+08:00

    您需要使用 root 凭据登录。请尝试建议的“journalctl -xb”,因为它可能会有所帮助。

    BPF 消息是内核日志的一部分,而不是引导日志的一部分,看来您的系统很早就出故障了。您的紧急模式很可能来自 initrd(ini​​tramdisk),并且常规根目录尚未挂载。“mount”命令会向您显示。

    如果是这种情况,您可能需要为您的发行版启动一个实时媒体,或者如果存在的话,启动一个“救援”内核。

    • 0
  3. Best Answer
    telcoM
    2024-12-27T08:58:09+08:002024-12-27T08:58:09+08:00

    分析

    您的 imgur 截图表明根文件系统和加密交换都已成功激活,因此问题可能是 中列出的剩余文件系统中的一个或多个/etc/fstab。

    您在日志中发现的错误有多种原因:

    BIOS Error (bug): Could not resolve symbol
    

    这可能只有 BIOS 更新才能修复...并且可能一直存在,只是您没有注意到。

    [drm] *ERROR* Port F/TC#3: timeout waiting for PHY ready
    

    关于显示适配器的某些问题,可能正在探测主板上未连接的端口。

    Failed to insert module 'autofs4': Invalid argument
    Same error with modules 'lp', 'ppdev', 'parport_pc', 'msr', 'kyber_iosched'.
    Failed to start Load Kernel Modules.
    

    这很有趣...您最近安装了任何更新吗?也许是更新的内核包?一些内核模块似乎出现故障,但这些模块都不是绝对关键的。其中一半与传统并行端口(打印机端口)有关,而现代系统几乎没有这种端口。

    nvme0n1: /usr/lib/udev/rules.d/60-block-pop.rules:6 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:0e.0/pci10000:e0/10000:e0:1d.0/10000:e1:00.0/nvme/nvme0/nvme0n1/queue/scheduler}, ignoring: invalid argument
    loop4: /usr/lib/udev/rules.d/60-block-pop.rules:2 Failed to write ATTR{/sys/devices/virtual/block/loop4/queue/scheduler}, ignoring: Invalid argument
    Same with loop 0-7
    

    udev 规则/usr/lib/udev/rules.d/60-block-pop.rules正在尝试切换用于各种文件系统的 I/O 调度程序……并且可能以一种“嘈杂”的方式进行:它似乎正在遍历所有类似磁盘的设备,而不关心该设置是否不适用于特定设备。

    FAT-fs (nvme0n1p2): IO charset iso8859-1 not found
    Failed to mount /recovery
    Failed to mount /boot/efi.
    

    这可能是您的系统无法启动的最直接原因:它正尝试挂载/recovery和/boot/efi,它们显然都是 FAT 系列的文件系统(可能具体是 FAT32)。

    但是由于/etc/fstab没有iocharset=为它们定义挂载选项,系统正在尝试使用内置的默认 FAT 系列文件系统 I/O 字符集来挂载它:iso8859-1。但显然内核不支持它:也许它已配置为可加载模块,但nls_iso8859-1.ko模块不可用或已以某种方式损坏。或者也许整个文件系统的 ISO8859-1 字符支持完全被排除在最新内核的配置之外,因为有人认为每个现代文件系统都会使用 UTF-8。(那将是一个错误。)

    所有这些让我怀疑您的系统收到的最新内核更新可能出了问题。也许是 initramfs 创建过程耗尽了磁盘空间,系统现在正在使用不完整的 initramfs 启动,还是其他原因?

    要验证这一点,请运行dpkg --list 'linux-image*' to list the currently-installed kernel packages in your system. If there's more than one, find the highest-version one that does not say (元包)in the说明field, and note down in full what its名称`字段。然后在包管理日志中搜索该名称:

    grep <kernel package name> /var/log/dpkg.log
    

    替换<kernel package name>为您找到的完整软件包名称。这应该会为您提供指示该内核软件包安装时间的日志条目。如果安装日期恰好在问题开始之前,那么您可能已经找到原因。


    解决方法

    如果安装了多个内核,最简单的解决方法是尝试使用第二新的内核版本而不是最新版本来启动系统。我个人不使用 Pop_OS,因此此建议将基于谷歌搜索。Pop_OS 不使用最常见的 Linux 引导加载程序 GRUB,但它似乎使用systemd-boot。因此涉及 GRUB 的常规程序将不适用。

    在启动过程开始时,应该有一个简单的基于文本的菜单,其中包含大约四个项目,以及大约 10 秒的超时时间。它可能看起来像这样:

    Pop!_OS (pop_os-current.conf)
    Pop!_OS (pop_os-oldkern.conf)
    Pop!_OS recovery
    Reboot Into Firmware Interface
    

    如果您通常看不到这样的菜单,请尝试在打开系统电源后立即点击 SPACE 键。继续点击它,直到您看到除 BIOS 消息或制造商徽标之外的任何内容,然后您应该会看到上述菜单。

    如果只有最新的内核包有问题,选择“旧内核”菜单选项(Pop!_OS (pop_os-oldkern.conf)或类似选项)应该可以让系统或多或少正常启动……目前是这样。但您不应该让系统安装任何进一步的更新,直到您找出问题所在并最好修复它为止。

    如果使用旧内核的系统启动正常,请打开终端窗口并运行df -h以查看是否有任何文件系统已 100% 满或接近 100%。特别是,如果文件系统非常满,则可能是导致此故障的根本原因。您的分区(最有可能是您的 EFI 系统分区)/boot/efi的大小只有 498M,对于多个已安装的内核版本及其 initramfs 文件来说,这个大小可能太小了。/dev/nvme0n1p1/boot/efi

    如果使用较旧的内核启动没有帮助,Pop!_OS recovery则启动选项也值得一试。但是,我没有使用过它,所以你应该先阅读System76 的文档。

    • 0

相关问题

  • 蓝牙扬声器音量控制不起作用(但静音起作用)

  • 无法启动终端

  • Audacity 插件文件夹在哪里?

  • 如何绕过“不允许此操作,因为它会破坏系统。中止。” 在 Pop!_OS 上?

  • 删除了 Windows EFI 分区,怎么办?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve