ZSTD 压缩数据已损坏,根文件系统需要手动 fsck

ZSTD 压缩数据已损坏,根文件系统需要手动 fsck

我遇到了一个与我以前见过的许多错误类似的错误,但我似乎无法修复。我在 Ubuntu 22.04 上。

[    0.260527] ×86/cpu: SGX disabled by BIOS.
[    0.786997] Initramfs unpacking failed: ZSTD-compressed data is corrupt
/init: line 73: wait-for-root: not found
Finit: line 872: logsave: Text file busy
The root filesystem on /dev/sda2 requires a manual fsck

BuSyBox v1.30.1 (Ubuntu 1:1.30.1-7ubuntus) built-in shell (ash)
Enter 'help' for a list of built-in commands.

在其他时候,我只需要运行类似...

fsck -fy /dev/sda2

...错误就会得到解决,然后我就可以继续前行了。

然而,这一次,我运行得到的命令:

(initramfs) fsck -fy /dev/sda2
fsck from util-linux 2.37.2 e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, , blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda2: 908631/61022208 files (0.3% non-contiguous), 121159114/244059136 blocks

(initramfs)

这似乎没什么问题。但是当我尝试退出时,它又要求我再次对驱动器进行手动 fsck 检查。我必须强制关机才能退出 shell (?)。

任何想法如何解决这一问题?

编辑:我可以使用实时 USB ubuntu 会话,并且可以毫无问题地安装磁盘。我可以看到文件并毫无问题地打开它们。因此,至少在某种意义上,驱动器是“没问题的”。SMART 不会发出任何警告。那么,为什么我不能用它启动呢?

答案1

这看起来好像initramfs您系统上的映像已损坏。您可以执行以下操作来重新生成映像initramfs

  1. Ubuntu通过实时USB启动

  2. sudo mkdir /mnt然后挂载你的根分区sudo mount /dev/sda2 /mnt

  3. 挂载所需的文件系统

    sudo mount --bind /dev /mnt/dev然后 sudo mount --bind /proc /mnt/proc然后 sudo mount --bind /sys /mnt/sys

  4. Chroot 已挂载的根分区sudo chroot /mnt

  5. 重新生成initramfs图像 sudoupdate-initramfs -u

  6. 退出终端,然后 umount分区退出 , 然后 sudo umount /mnt/devsudo umount /mnt/procsudo umount /mnt/syssudo umount /mnt

然后你可以重新启动,你的系统应该可以正常工作

相关内容