更新内核后,启动分区看起来很奇怪,输出如下ls
:
root /usr/src > ls -l /boot/
ls: cannot access '/boot/'$'\307\005''?'$'\021''H. B': Input/output error
ls: cannot access '/boot/'$'\006'')?E'$'\020''.'$'\002\254\004': Input/output error
total 8541635
-rwxr-xr-x 1 root root 76613760 Apr 2 2052 ''$'\030''4'$'\001\307''H'$'\030\021''.'$'\f''*'$'\026'
-rwxr-xr-x 1 root root 2221816324 Nov 23 2016 '70A-V'$'\006''D..@6$'
-r-xr-xr-x 1 root root 2312722265 Feb 9 2019 'ag?m'$'\025''h?".q'$'\342''?'
-rwxr-xr-x 1 root root 112574 Oct 11 00:50 config-4.14.65-gentoo
-rwxr-xr-x 1 root root 111211 Oct 11 00:11 config-4.14.65-gentoo.old
-rwxr-xr-x 1 root root 121860 Jan 16 11:07 config-4.14.83-gentoo
-rwxr-xr-x 1 root root 121860 Jan 16 10:41 config-4.14.83-gentoo.old
-rwxr-xr-x 1 root root 122477 Feb 1 11:42 config-4.18.13-gentoo
-rwxr-xr-x 1 root root 122477 Feb 1 11:31 config-4.18.13-gentoo.old
-r-xr-xr-x 1 root root 406883360 Dec 17 2092 ' '$'\004''D'$'\002\004''P'
d????????? ? ? ? ? ? ''$'\006'')?E'$'\020''.'$'\002\254\004'
drwxr-xr-x 4 root root 512 Nov 2 09:34 EFI
drwxr-xr-x 6 root root 1024 Feb 1 11:44 grub
d????????? ? ? ? ? ? ''$'\307\005''?'$'\021''H. B'
-rwxr-xr-x 1 root root 3955824 Oct 11 00:51 initramfs-genkernel-x86_64-4.14.65-gentoo
-rwxr-xr-x 1 root root 4104576 Jan 16 11:07 initramfs-genkernel-x86_64-4.14.83-gentoo
-rwxr-xr-x 1 root root 4112812 Feb 1 11:44 initramfs-genkernel-x86_64-4.18.13-gentoo
-rwxr-xr-x 1 root root 4060100 Nov 1 22:10 initramfs-gentest-x86_64-4.18.13-gentoo
-rwxr-xr-x 1 root root 7947120 Nov 1 22:09 kernel-gentest-x86_64-4.18.13-gentoo
-rwxr-xr-x 1 root root 387 Oct 29 13:54 livecd-mount.sh
-rwxr-xr-x 1 root root 3630445658 Jan 1 2059 'si?_x?'$'\367\374''.'$'\341''0-'
-rwxr-xr-x 1 root root 3871048 Oct 11 00:50 System.map-4.14.65-gentoo
-rwxr-xr-x 1 root root 3579283 Oct 11 00:11 System.map-4.14.65-gentoo.old
-rwxr-xr-x 1 root root 3780712 Jan 16 11:07 System.map-4.14.83-gentoo
-rwxr-xr-x 1 root root 3780712 Jan 16 10:41 System.map-4.14.83-gentoo.old
-rwxr-xr-x 1 root root 3932691 Feb 1 11:42 System.map-4.18.13-gentoo
-rwxr-xr-x 1 root root 3936350 Feb 1 11:31 System.map-4.18.13-gentoo.old
-rwxr-xr-x 1 root root 3932456 Nov 1 22:09 System.map-gentest-x86_64-4.18.13-gentoo
-rwxr-xr-x 1 root root 8003856 Oct 11 00:50 vmlinuz-4.14.65-gentoo
-rwxr-xr-x 1 root root 7205136 Oct 11 00:11 vmlinuz-4.14.65-gentoo.old
-rwxr-xr-x 1 root root 7639840 Jan 16 11:07 vmlinuz-4.14.83-gentoo
-rwxr-xr-x 1 root root 7639840 Jan 16 10:41 vmlinuz-4.14.83-gentoo.old
-rwxr-xr-x 1 root root 7947120 Feb 1 11:42 vmlinuz-4.18.13-gentoo
-rwxr-xr-x 1 root root 7967600 Feb 1 11:31 vmlinuz-4.18.13-gentoo.old
更新后,它包含奇怪的文件,如ls
上面的输出所示。当我尝试删除这些文件时,我收到boot
分区变为只读的错误(我当然可以使用 重新安装它mount -o remount,rw /boot
,但在每个命令之后rm
它再次变为只读)。
引导分区是一个带有内核映像和 luks 密钥的 grub2 USB 记忆棒。它的格式为fat32
,这是我fstab
的/boot
:
UUID=<my-uuid> /boot vfat noatime,noauto 0 0
是否可以安全地修复此类启动分区而不丢失所有数据?
答案1
看起来您的/boot
文件系统已损坏。
一般来说,/boot
除了安装内核和/或引导加载程序更新之外,系统运行时不会使用该分区。因此,很有可能备份其中的所有内容,然后卸载、完全销毁然后重新创建/boot
文件系统。但显然您不应该在执行此操作时重新启动系统。
在这种情况下,如果可以的话,您应该首先备份/boot
及其子目录中所有看起来有效的文件。
由于您的/boot
分区是 USB 记忆棒,因此您应该使用另一个已知良好的 USB 记忆棒并开始在其上重新创建/boot
。您可以使用mkfs.vfat -i <VFAT uuid without separators>
与原始文件系统相同的 ID 创建一个新文件系统。
完成后,验证它是否有效(即尝试用它启动)。当您可以使用新棒成功启动时,您可以尝试fsck.vfat
在原始棒上运行。如果失败,只需擦除并重新创建它。如果发现实际的 U 盘出现故障,请将其物理销毁并继续使用新的 U 盘。
如果不被锁定在系统之外对您来说很重要,请考虑保留两个启动 USB 记忆棒。请记住,USB 记忆棒有时可能会在没有任何警告的情况下发生故障。