apt upgrade安装新内核时报cp未指定-r参数错误无法完成安装如何处理
核心根因
报错中最优先的错误是cp: -r not specified; omitting directory '/etc/udev/rules.d/70-persistent-net.rules':70-persistent-net.rules是udev默认的网卡命名规则文件,正常应为普通文本文件,你的环境中该路径被错误创建为目录,initramfs-tools的udev钩子脚本复制该文件时未加递归参数,直接执行失败,导致initrd镜像生成中断,后续内核包配置全部失败。
排查验证
执行以下命令确认文件类型:
ls -ld /etc/udev/rules.d/70-persistent-net.rules
如果输出首字符为d,即可确认根因正确。
修复操作
- 第一步:备份异常目录(避免规则丢失)
mv /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.dir.bak - 第二步:生成正确的规则文件
如果你需要保留原网卡命名规则,将备份目录内的规则内容合并写入新文件:
如果你不需要自定义网卡命名,直接创建空文件占位即可:cat /etc/udev/rules.d/70-persistent-net.rules.dir.bak/* > /etc/udev/rules.d/70-persistent-net.rulestouch /etc/udev/rules.d/70-persistent-net.rules - 第三步:重新执行内核包配置
dpkg --configure -a - 第四步:验证修复结果
执行apt install -f无报错,且/boot/initrd.img-4.19.0-18-amd64文件正常生成,即为修复成功。
内容的提问来源于stack exchange,提问作者dibery
相关产品推荐
相关产品推荐

