我的 ubuntu 系统上留下了一个麻烦的空文件(内核 4.19.1 的 md5sums),其中有奇怪的所有者/组/日期/属性
如何修复或解决此缺陷文件?
$ uname -a
Linux olly-ryzen-pc1 4.20.10-042010-generic #201902150516 SMP Fri
Feb 15 10:19:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
统计数据
$ stat /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
Datei: /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
Größe: 0 Blöcke: 0 EA Block: 4096 Normale
leere Datei <= empty file
Gerät: 802h/2050d Inode: 27918873 Verknüpfungen: 1
Zugriff: (5625/-rwS-w-r-t) Uid: (477987903/ UNKNOWN) Gid: (3699747887/
UNKNOWN)
Zugriff : 2381-05-02 11:29:39.163881368 +0100
Modifiziert: 2293-06-01 00:54:46.455862499 +0100
Geändert : 2167-05-10 21:19:01.867729249 +0100
Geburt : -
lsattr
$ lsattr /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
lsattr: Keine Daten verfügbar Beim Lesen der Flags von /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
apt, dpkg
该文件无法更改或删除(删除/清除4.19.1),但会妨碍 apt-get 安装应用程序。
--fix-broken 或 --reinstall dpkg 退出时也会出现“不允许”消息。
无法删除。模具控制信息-Datei »/var/lib/dpkg/info/linux-image-unsigned-4。 19.1-041901-generic.md5sums« kann nicht gelöscht werden: Vorgang nicht zulässig
chmod -st, chown root:root
没有变化。
rm-f
不。
实时USB
还尝试从 USB 棒启动 ubuntu(安装 4.18)进行修复,但是:
sudo e2fsck -f /dev/sba2
不报错
sudo badblocks -vsn /dev/sda2
报告 0 个坏块
和rm
, chmod
, chown
:与上面相同的行为..
只是为了比较,这里是一个邻居文件:
$ stat /var/lib/dpkg/info/linux-sound-base.md5sums
Datei: /var/lib/dpkg/info/linux-sound-base.md5sums
Größe: 545 Blöcke: 8 EA Block: 4096 Normale Datei
Gerät: 802h/2050d Inode: 27269131 Verknüpfungen: 1
Zugriff: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Zugriff : 2019-02-03 16:56:08.943545720 +0100
Modifiziert: 2015-07-31 05:42:23.000000000 +0200
Geändert : 2018-05-22 01:20:37.178864616 +0200
Geburt : -
$ lsattr /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.list
--------------e---
/var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.list
答案1
由于fsck
没有发现任何错误,您可能需要使用debugfs
清除inode。请注意,我上次使用是debugfs
几年前,所以要小心!首先阅读联机帮助页,了解此工具的功能。
从救援介质启动并运行
debugfs /dev/sda2
您可以尝试使用debugfs的rm
命令来删除该文件:
rm /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
(假设 /dev/sda2 安装在/
,而不是/var
)
如果这不起作用,您可以尝试释放索引节点。您已经从输出中知道了 inode 号 (27918873) stat
。您可以使用以下命令释放 inode:
freei 27918873
操作文件系统后,debugfs
我建议再次运行fsck
。
答案2
作品!
debugfs: open -w /dev/sda2
debugfs: stat 27918873
27918873:ext2_lookup 找不到文件
debugfs: ncheck 27918873
索引节点路径名
27918873 /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
debugfs: rm /var/lib/dpkg/info/linux-image-unsigned-4.19.1-041901-generic.md5sums
debugfs: quit
ubuntu@ubuntu:~$sudo e2fsck /dev/sda2
e2fsck 1.44.1(2018 年 3 月 24 日)/dev/sda2:干净,367369/30498816 文件,20494756/121965056 块
ubuntu@ubuntu:~$sudo e2fsck -f /dev/sda2
第 1 遍:检查 inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
Pass 5:检查组摘要信息
/dev/sda2:367369/30498816 个文件(2.1% 不连续),20494756/121965056 个块
启动到主系统
olly@olly-ryzen-pc1:~$sudo apt-get purge
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut。
Statusinformationen werden eingelesen.... Fertig
目录 ENTFERNT: linux-image-unsigned-4.19.1-041901-generic
0 aktualisiert,0 neu installiert,1 zu entfernen 和 187 nicht aktualisiert。
1 完全安装或安装。
韦尔登行动 8.626 kB Plattenplatz freigegeben。
Möchten Sie fortfahren? [J/n] j
(Lese Datenbank ... 207988 Dateien und Verzeichnisse sind derzeit installiert。)
进入 linux-image-unsigned-4.19.1-041901-generic (4.19.1-041901.201811041431) ...
完毕!最后!非常感谢@wurtel!