突然间,我无法使用 apt 成功安装任何东西,并出现以下错误:
The following packages will be upgraded:
linux-headers-6.5.0-10-generic
1 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
75 not fully installed or removed.
Need to get 0 B/3,737 kB of archives.
After this operation, 28.8 MB of additional disk space will be used.
(Reading database ... 156176 files and directories currently installed.)
Preparing to unpack .../linux-headers-6.5.0-10-generic_6.5.0-10.10_amd64.deb ...
Unpacking linux-headers-6.5.0-10-generic (6.5.0-10.10) over (6.5.0-10.10) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-6.5.0-10-generic_6.5.0-10.10_amd64.deb (--unpack):
error creating symbolic link './lib/modules/6.5.0-10-generic/build': Read-only file system
dpkg: error while cleaning up:
unable to remove newly-extracted version of '/lib/modules/6.5.0-10-generic/build': Read-only file system
Errors were encountered while processing:
/var/cache/apt/archives/linux-headers-6.5.0-10-generic_6.5.0-10.10_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
如果有帮助的话,而且可能有帮助的话,问题是我在 Ubuntu 23.10 安装中启用了名为 TPM 加密的实验性功能。
我已经使用内置的 Ubuntu bug 提交软件提交了一个 bug。但我什至无法安装 PHP 包而不遇到此错误。
我已经尝试过以下方法:
sudo apt clean && sudo apt update && sudo apt upgrade
sudo dpkg --configure -a && sudo apt-get -f install
并不能解决问题。
答案1
在这个答案中,我假设根文件系统已损坏,您需要修复它。通常,任何人都不应该在不小心的情况下这样做。看看是否可以找到人亲自提供帮助。
我认为前进的一种方法是使用其他安装(例如实时 ISO 或类似文件)启动计算机,然后fsck
在主磁盘驱动器上运行。
如果您重视您的数据,我还强烈建议您确保对数据进行良好的备份,以防万一出现问题(这很有可能)。获取 USB 连接的驱动器并进行dd
备份是可行的,但其他方法可能会更快。在运行 fsck 之前执行此操作!
运行 fsck 通常要求文件系统当前未在使用中,因此使用实时 ISO。可能有 GUI 方式,但我建议如下:
#>fsck -n /dev/sda1
它将检查(但不更改)块设备 sda 上的第一个分区。您可能有不同的设备名称,因此用于lsblk
识别哪个设备有什么内容。例如,如果您有一个 NVME SSD 驱动器,名称将类似于/dev/nvmes0p2
如果运行fsck -n ...
显示任何错误,系统会询问您问题,但答案将预先填写“否”(因此为 -n)。要修复它们,需要重新运行命令 without -n
,它会暂停并询问您每次发现错误时要做什么,或者 with -y
,这将回答“修复”所有问题。除非您知道自己在做什么,否则-y
建议这样做。
你有备份吗??这就是为什么!
fsck 并不神奇,它可能无法完全或根本无法修复文件系统。如果是这样,您应该运行sync
以刷新磁盘缓存,然后重新启动计算机回到实时 ISO。现在再次运行fsck -n
看看它是否仍然损坏。如果是这样,您需要将备份交给(更)有能力的人寻求帮助。
如果看起来没问题,请将其安装到本地 live 发行版中并查看:
#>mount /dev/sda1 /mnt
(将 sda1 替换为之前找到的磁盘设备名称)。
然后您应该能够ls
在设备上的/mnt
.特别是对于“ext4”文件系统,您将看到一个目录“lost+found”,其中“fsck”放置任何它不知道如何处理的文件或目录。如果那里有东西,您将需要评估是否值得继续使用该磁盘,或者将可以复制的内容复制到另一个设备,然后重新格式化和重建。有时是这样,有时很难再次全部正确。
希望你好运。
答案2
现在,这是一个已知的错误,并已由启动板上的另一个人提交。错误报告的链接是这里。