症状:
我无法再启动我的 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
而原帖者的问题暗示他们成功使用了 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)
答案1
您不能在 sdb 这样的驱动器上运行 fsck,而是在 sdb1 这样的 ext4 格式的分区上运行
从工作的实时闪存驱动器,所以一切都未安装,如果需要,请交换,将分区 sdb1 所示的示例更改为您的分区,以查看所有 ext4 分区
sudo parted -l
e2fsck 用于检查 ext2/ext3/ext4 系列文件系统。-p 尝试修复不需要响应的情况 以不同的参数运行这两个命令。新的 NVMe 驱动器将类似于 /dev/nvme0n1pY,其中 pY 是分区。SATA 和 NVMe 都显示为示例,主要用于其他用途:
sudo e2fsck -C0 -p -f -v /dev/sdb1
sudo e2fsck -C0 -p -f -v /dev/nvme0n1p2
如果出现错误:-y 自动回答是,对于需要响应的修复,另请参阅 man e2fsck
sudo e2fsck -f -y -v /dev/sdb1
sudo e2fsck -f -y -v /dev/nvme0n1p2