跳转到内容
搜索 Fedora 文档

    浏览当前文档目录

    Fedora 报错速查:原始信息 → 原因 → 处置

    排障最慢的一步通常不是”怎么修”,而是”这句话是什么意思”。本页按报错原文索引:先找到你屏幕上那句话,再看向上四步。

    每一条都在 Fedora 45 上实际触发过,消息原文照抄。找不到的话,把原文连同 dnf --version、rpm -q rpm dnf5 一起贴出去——F44 与 F45 在签名和仓库路径上行为不同。

    1. 用浏览器的「在页面中查找」搜你看到的原文片段;
    2. 读到对应的原因;
    3. 按处置操作,再验证。
    No match for argument: nosuchpkg-xyz
    You can try to add to command line:
    --skip-unavailable to skip unavailable packages

    原因:仓库里没有这个包名。多半是把库名当包名(libssl 实际叫 openssl-libs),或仓库未启用。

    处置:dnf search <关键词> 模糊找;dnf provides '*/<文件名>' 按文件反查;dnf repolist 确认仓库。

    No matching repositories for nosuchrepo. Add "--help" for more information about the arguments.

    原因:--repo / --enablerepo 的仓库 ID 不存在。ID 是方括号里那行,不是 name=。

    处置:dnf repolist --all 列出全部 ID 再照抄。

    No matching repository to modify: nosuchrepo

    原因:config-manager setopt 的仓库 ID 不存在。

    处置:同上,先 dnf repolist --all。

    >>> Curl error (37): Could not read a file:// file for file:///nonexistent/path/repodata/repomd.xml
    >>> Usable URL not found

    原因:baseurl 指向的路径没有 repodata/。本地仓库忘了跑 createrepo_c,或路径写错。

    处置:sudo createrepo_c /srv/your-repo,再确认 ls /srv/your-repo/repodata/repomd.xml 存在。

    Section titled “Could not resolve hostname(metalink 失败)”
    >>> Download failed: Curl error (6): Could not resolve hostname for https://mirrors.fedoraproject.org/metalink?repo=fedora-45&arch=x86_64 [Could not resolve host: mirrors.fedoraproject.org]
    Cannot prepare internal mirrorlist: Parse error at line: 1 (Document is empty)

    原因:DNS 解析不了 mirrors.fedoraproject.org。国内网络下这是最常见的”装不了包”原因,不是仓库坏了。

    处置:换国内镜像或先修 DNS:cat /etc/resolv.conf、ping mirrors.aliyun.com;镜像替换见仓库。

    Nothing to do.

    原因:dnf remove 一个本来就没装的包。dnf5 不把它当错误,退出码为 0。

    处置:不用处理。要确认通常是 rpm -q <包名>。

    package utest-1.0-1.noarch does not verify: no signature

    原因:F45 起 rpm 6.1 默认强制验签,rpm -i 拒绝未签名包。

    处置:签名后安装,或 sudo rpm -i --nosignature <pkg> 显式放行。

    Transaction failed: Signature verification failed.
    OpenPGP check for package "..." from repo "..." has failed: The package is not signed.

    原因:仓库 gpgcheck=1,包未签名。这是预期行为。

    处置:给包签名;一次性放行用 --setopt=<repo>.gpgcheck=0。

    Warning: skipped OpenPGP checks for 1 package from repository: @commandline

    原因:dnf install ./x.rpm 把本地文件当临时仓库,只告警、仍会装上。

    处置:想强制拦截就别用本地文件路径,改走仓库。

    /tmp/urpms/noarch/utest-1.0-1.noarch.rpm: digests SIGNATURES NOT OK

    原因:rpm -K 的检查结果,不是安装错误。

    处置:核对来源;见强制签名校验。

    error: /tmp/bad.key: import read failed(0).

    原因:rpm --import 的文件不是 GPG 公钥。

    处置:gpg --show-keys <文件> 先确认它是不是公钥。

    Failed to resolve the transaction:
    Problem: The operation would result in removing the following protected packages: dnf5

    原因:要删的包在 protected_packages 列表里(默认含 dnf5、systemd、kernel)。

    处置:不要删。确有必要才改 /etc/dnf/dnf.conf 的 protected_packages=,那属于降低系统自保护。

    Need a --releasever greater than the current system version.

    原因:dnf system-upgrade download 没给 --releasever,或给的版本 ≤ 当前版本。

    处置:grep VERSION_ID /etc/os-release 确认当前版本,再 --releasever=<更高版本>。

    No matching transaction ID found, exactly one required.

    原因:dnf history undo <id> 的序号不存在。

    处置:dnf history list | head -10 抄正确的 ID。

    Unit nosuch.service could not be found.

    原因:单元名写错,或该包没装。

    处置:systemctl list-unit-files | grep <关键词> 或 dnf provides '*/<unit>.service'。

    Failed to enable unit: Unit nosuch.service does not exist

    原因:enable 的单元文件根本不存在。注意这里报的是”不存在”,不是权限。

    处置:先确认单元存在,再 sudo systemctl enable。

    Failed to start nosuch.service: Access denied
    See system logs and 'systemctl status nosuch.service' for details.

    原因:非 root 执行 systemctl start。名字不存在时也可能落到权限类错误上,别被误导。

    处置:加 sudo;仍失败就 systemctl status 看真实原因。

    -- No entries --

    原因:journalctl -u <unit> 没有匹配日志:单元名错误,或该单元本次启动没写日志。

    处置:去掉 -u 试 journalctl -b -p err;确认单元名用 systemctl list-units。

    The param /boot/vmlinuz-nosuch is incorrect

    原因:grubby --set-default 的路径不存在。它要求逐字匹配 /boot 下的文件名。

    处置:sudo ls /boot | grep vmlinuz 抄全名,再 sudo grubby --set-default /boot/<全名>。

    Error: unknown connection 'nosuch'.

    原因:nmcli con up 的连接名不存在。连接名区分大小写。

    处置:nmcli con show 列出全部连接名。

    Error: Device 'nosuch0' not found.

    原因:网卡名写错。虚拟机里常见的是 ens18、enp1s0,不是 eth0。

    处置:nmcli dev status 或 ip -br link 看真实名字。

    Error: short-name resolution enforced but cannot prompt without a TTY

    原因:Podman 6 默认要求把短镜像名解析成完整名,非交互环境(脚本、CI)下无法弹问。

    处置:写全名:registry.fedoraproject.org/fedora-minimal:45;或配 /etc/containers/registries.conf 的 unqualified-search-registries。

    Use the '--container' option to select a Toolbx.
    Run 'toolbox --help' for usage.

    原因:Toolbx 0.3 在找不到唯一容器时不猜,要求显式指定。

    处置:toolbox enter --container <名字>;toolbox list 看有哪些。

    Error: failed to inspect container nosuchcontainer

    原因:toolbox rm 的容器名不存在。

    处置:toolbox list 确认名字。

    bash: line 2: toolbox: command not found

    原因:Cloud 与最小化 Server 镜像不预装 Toolbx 与 Flatpak。

    处置:sudo dnf install toolbox flatpak。

    mount: /mnt: fsconfig() failed: /dev/nosuchdev: Can't lookup blockdev.

    原因:设备节点不存在:盘没插、虚拟机没加盘,或名字写错。

    处置:lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS、ls /dev/disk/by-id/。

    df: /nosuchpath: No such file or directory

    原因:路径不存在。df 只接受存在的挂载点或文件。

    处置:df -h 先看全部挂载点。

    tar: This does not look like a tar archive
    tar: Exiting with failure status due to previous errors

    原因:文件不是 tar 包,或下载不完整(常见于 .tar.xz 被当成 .tar 直接解)。

    处置:file <文件> 看真实类型;压缩包用 tar -tJf、tar -tzf。

    Failed to parse timestamp: notadate

    原因:journalctl --since 的时间格式不对。

    处置:用绝对时间 --since "2026-10-27 08:00:00",或 --since "-1h"。

    <no matches>

    原因:ausearch -m AVC 没查到 SELinux 拒绝记录。可能是真的没有,也可能是审计服务没跑。

    处置:systemctl status auditd;sudo ausearch -m AVC -ts recent。

    No matches found: no repositories are enabled

    Section titled “No matches found: no repositories are enabled”
    No matches found: no repositories are enabled.

    原因:所有仓库都被禁用了(--disablerepo='*',或覆盖文件里全关了)。

    处置:dnf repolist --all 看哪些可用,再 --enablerepo=<id> 打开。

    Unit nosuch.service does not exist, proceeding anyway.
    Created symlink '/etc/systemd/system/nosuch.service' -> '/dev/null'.
    Failed to start nosuch.service: Unit nosuch.service is masked.

    原因:该单元被 mask 成指向 /dev/null 的符号链接,任何启动都会被拒绝——mask 比 disable 更彻底。

    处置:sudo systemctl unmask <unit>,再 enable 或 start。

    No journal boot entry found for the specified boot (+99).

    原因:journalctl -b <n> 的序号不存在。-b -1 是上一次,-b 0 是本次。

    处置:journalctl --list-boots 看真实范围。

    Failed to open a temporary file for .../fss

    Section titled “Failed to open a temporary file for .../fss”
    Generating sealing key...
    Failed to open a temporary file for /var/log/journal/0b38bf1284bf4e7b8edfc9c703d01d0c/fss: Permission denied

    原因:journalctl --setup-keys 需要写 journal 目录,非 root 或无权限时失败。

    处置:用 sudo journalctl --setup-keys;顺带确认 /var/log/journal 的属主。

    chmod: invalid mode: ‘999’
    Try 'chmod --help' for more information.

    原因:权限位按八进制解析,每一位只能是 0–7。999 不是合法模式。

    处置:用 chmod 755(八进制),或者符号写法 chmod u+x。

    dd: error writing '/mnt/full/big': No space left on device
    105+0 records in
    104+0 records out

    原因:目标文件系统写满。注意 df 显示有余量也可能是 inode 用尽。

    处置:df -h <路径> 看空间、df -i <路径> 看 inode;清理后用 du -xh --max-depth=1 | sort -h 定位大目录。

    mount: /mnt: failed to set up loop device for /tmp/nosuch.img.

    原因:-o loop 指向的文件不存在,或不是可挂载的镜像。

    处置:ls -l /tmp/nosuch.img 先确认文件在;再用 file 看它是不是文件系统镜像。

    fsck.ext2: No such file or directory while trying to open /dev/mapper/pve-root
    Possibly non-existent device?

    原因:fsck 的目标设备节点不存在(虚拟机里常见:设备名与宿主不同)。

    处置:lsblk -f 看真实设备与文件系统类型,再 sudo fsck -n <设备> 只读检查。

    Volume group "pve" not found
    Cannot process volume group pve

    原因:LVM 卷组名写错,或这台机器根本没有该卷组(pve 是 Proxmox 宿主的,不是 Fedora 虚拟机的)。

    处置:sudo vgs 列出真实卷组;没有 LVM 就用 lsblk 看分区。

    ping: nosuchhost.invalid: Name or service not known

    原因:DNS 解析失败。主机名不存在,或本机没配可用的 DNS。

    处置:cat /etc/resolv.conf、getent hosts <域名>;能解析 IP 但不能解析域名就是 DNS 问题。

    curl: (6) Could not resolve host: nosuch.invalid

    原因:与上一条同源:域名解析失败。curl 的报错更短,常被误读成”网络不通”。

    处置:先 getent hosts <域名> 区分是 DNS 还是连通性;连通性用 ping -c1 <IP> 直接测 IP。

    chcon: failed to change context of '/etc/hostname' to ‘system_u:object_r:nosuch_t:s0’: Invalid argument

    原因:要设的 SELinux 类型不存在(不在已加载的策略里)。

    处置:seinfo -t | grep <关键词> 或 semanage fcontext -l 查合法类型;临时排障看 ausearch -m AVC。

    cat: /etc/shadow: Permission denied

    原因:/etc/shadow 只有 root 可读。这不是文件损坏,是权限设计。

    处置:用 sudo cat /etc/shadow;只想看自己的条目就 sudo getent shadow <用户>。

    useradd: user 'labuser' already exists

    原因:用户已存在。useradd 不会覆盖。

    处置:要改属性用 usermod,要重建先 userdel -r。

    groupadd: group 'labuser' already exists

    原因:组已存在(useradd 通常会顺手建同名组)。

    处置:getent group <名字> 确认;要改组用 groupmod。

    Failed to set time zone: Invalid or not installed time zone 'Nosuch/Zone'

    原因:时区名不在 tzdata 列表里,写法必须是 Area/Location。

    处置:timedatectl list-timezones | grep <地区> 抄准确名字,再 sudo timedatectl set-timezone <名字>。

    /tmp/bad_sshd.conf line 1: Badly formatted port number.

    原因:sshd -t 校验配置时发现端口不是数字。-t 只校验不改动,适合改配置后先跑一遍。

    处置:改成 Port 22 再 sudo sshd -t -f <文件>;正式配置改完也要跑一次再重启。

    Invalid RSA key length: minimum is 1024 bits

    原因:密钥位数低于下限。RSA 目前建议 3072 位以上,2048 是常见下限。

    处置:ssh-keygen -t ed25519(更推荐)或 -t rsa -b 3072。

    Could not find or decode certificate from /etc/hostname

    原因:openssl x509 拿到的是普通文本文件,不是 PEM/DER 证书。

    处置:openssl x509 -in <真实证书> -noout -text;先 head -1 <文件> 确认它以 -----BEGIN CERTIFICATE----- 开头。

    bash: line 5: crontab: command not found

    原因:最小化镜像不带 cron。F45 上定时任务更常见的做法是 systemd timer。

    处置:要 cron 就 sudo dnf install cronie;否则写 *.timer + *.service,用 systemctl list-timers 查看。

    遇到没见过的报错,先做两件事再搜:

    Terminal window
    dnf --version
    rpm -q rpm dnf5

    把版本一起贴出去。F44 与 F45 在签名和仓库路径上行为不同,只贴报错不贴版本,很容易得到针对旧版本的答案。详见强制签名校验与仓库配置迁到 /usr。