修复启动分区

修复启动分区

更新内核后,启动分区看起来很奇怪,输出如下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 记忆棒有时可能会在没有任何警告的情况下发生故障。

相关内容