在 dpkg info 目录中移动或删除 ext4 上的文件时出错

在 dpkg info 目录中移动或删除 ext4 上的文件时出错

我的 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!

相关内容