症状:
我无法再启动到我的 Xubuntu 22.04 Linux 机器,发生的情况如下:
在某些时候,我的主目录文件系统进入只读状态(据我所知,很可能是作为一种保护措施)。然后我重新启动,认为这是一个一次性故障,但事实并非如此:它无法启动,并在我的 /dev/sdb 磁盘上出现日志错误(这是我存储主目录的位置,与操作系统分开)位于 /dev/sda 上)。
我可以重新启动到安装 USB,并挂载 /dev/sda 和 /dev/sdb。运行 fsck 时,出现错误:
# fsck /dev/sdb
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/sdb
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
Found a gpt partition table in /dev/sdb
此后,我将该驱动器上的主目录备份回 /dev/sda ,这似乎可以正常工作,尽管在传输一些我可以重新创建的文件时出现错误。
问题:
我正在考虑尝试使用以下说明修复 /dev/sdb 驱动器:
https://askubuntu.com/a/1335193/340383
但这句话却把我吓跑了,而且没有解释为什么:
Note: do NOT bad block a SSD
因此,在那个答案中,他们提到了跑步:
sudo e2fsck -fccky /dev/sdXX # non-destructive read/write test (recommended)
就我而言,我推测需要是:
sudo e2fsck -fccky /dev/sdb1
这是否会损害我使用 /dev/sdb 修复此问题的能力,或者它是无害的并且是真正的非破坏性测试?
在此给出答案:
https://askubuntu.com/a/1233241/340383
以及OP的问题,他们暗示他们成功使用了e2fsck,我的结论是可以安全地继续。是吗?
子问题:
另外,我不知道这部分输出fsck
试图传达什么:
Found a gpt partition table in /dev/sdb
这是在告诉我我跑fsck
错了吗?我不想通过尝试不同的超级块来遵循输出中的建议,直到我确认这不仅仅是我自己的用户错误。
2023-07-02 09:08:57:运行 sudo e2fsck -C0 -p -f -v /dev/sdb1
在评论中,我遵循了Ubuntu 14.04 在手动硬启动后无法正常启动的建议(这是在卸载 /dev/sda* 和 /dev/sdb* 驱动器之后):
sudo e2fsck -C0 -p -f -v /dev/sdb1
并得到:
Inode898044343 extent tree (at level 2) could be narrower. IGNORED.0.1%
DRIVE8: Inode 103942010 extent tree (at level 2) could be narrower. IGNORED.
DRIVE8: Inode 103942011 extent tree (at level 2) could be narrower. IGNORED.
... <snip mostly duplicate types of output lines here> ...
DRIVE8: Inode 103942324 extent tree (at level 1) could be narrower. IGNORED.
Inodes:that=were=part=of=a=corrupted=orphan linked list found. / 59.7%
DRIVE8: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
您不在 sdb 等驱动器上运行 fsck,而是在 sdb1 等 ext4 格式的分区上运行 fsck
从正在工作的闪存驱动器,因此所有内容都已卸载,如有必要,请将其关闭,将分区 sdb1 显示的示例更改为您的分区要查看所有 ext4 分区
须藤分开-l
e2fsck 用于检查 ext2/ext3/ext4 系列文件系统。-p 尝试修复不需要响应的地方 使用不同的参数运行两个命令。新的 NVMe 驱动器将类似于 /dev/nvme0n1pY,其中 pY 是分区。SATA 和 NVMe 均作为示例显示,主要供其他人使用:
如果出现错误:-y 自动回答 yes 对于需要响应的修复,另请参阅 man e2fsck