Linux
修復啟動分區
更新核心後,引導分區看起來很奇怪,
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
的 for/boot
:UUID=<my-uuid> /boot vfat noatime,noauto 0 0
是否可以在不失去所有數據的情況下安全地修復此類引導分區?
看起來您的
/boot
文件系統已損壞。通常,
/boot
系統執行時不使用該分區,除了用於安裝核心和/或引導載入程序更新。因此,很有可能備份其中的所有內容,然後解除安裝、完全銷毀然後重新創建/boot
文件系統。但顯然你不應該在這樣做的時候重新啟動系統。在這種情況下,如果可以的話,您應該首先備份所有看起來有效的文件
/boot
及其子目錄。由於您的
/boot
分區是 U 盤,您應該使用另一個已知良好的 U 盤並開始在其上重新創建/boot
。您可以使用mkfs.vfat -i <VFAT uuid without separators>
與原始文件系統相同的 ID 創建一個新文件系統。完成後,驗證它是否正常工作(即嘗試使用它啟動)。當您可以使用新棒成功啟動時,您可以嘗試
fsck.vfat
在原始棒上執行。如果失敗,只需擦除並重新創建它。如果事實證明實際的 USB 記憶棒出現故障,請將其物理銷毀並繼續使用您的新 USB 記憶棒。如果不被鎖定在您的系統之外對您很重要,請考慮維護兩個引導 USB 記憶棒。請記住,U 盤有時會在沒有警告的情況下失敗。