我刚刚在服务器上安装了一个新的 RAID 1 阵列作为 /dev/md2。它安装正确,我能够读/写。我编辑了 fstab 并重新启动,但无法通过 ssh 登录。然后我插入了键盘和显示器。
我收到一条错误,指出我通常连接的远程主机(我在 fstab 中挂载的备份服务器)无法挂载。这并不奇怪,因为我在闲逛时关闭了该服务器,这样我就没有机会破坏备份。我遵循了其他帖子的建议,并为该条目在 fstab 中添加了一条 noauto 行,我之所以能够做到这一点是因为我能够在 shell 吐出错误后访问它。然后我使用 vim 编辑 fstab。然而,现在我再想一想,我发现这个错误没有更早出现,这是令人痛苦的,因为在备份服务器已经关闭的情况下,我在添加新阵列之前重新启动了一次,并且我没有收到任何错误消息。那么错误。
无论如何,在向远程添加此 noauto 选项后,重新启动后我仍然无法 ssh 登录,并且我从监视器获得的所有内容是
fsck from util-linux-ng 2.17.2
/dev/md1: clean, 3680768/60071936 files, 208210802/240284144 blocks
(/dev/md1挂载为/)有提示,但不是shell。我可以输入任何内容,但按 Enter 键显然没有任何作用。当我使用 Ctrl+Alt+F2 时,我会进入另一个空提示符,但同样没有 shell。这也是我在F3-F6中发现的。
这才是真正奇怪的地方。然后,当我使用 Ctrl+Alt+F1 返回到第一个提示时,除了光标之外,屏幕是空的,光标现在将处于随机(因为每次重新启动时都会改变)垂直位置。
在我得到类似 [ 7.26####] hda-intel: no codec found! 的信息之前,这与音频驱动程序有关。
我需要让该服务器恢复并运行,但我无法编辑 fstab 来删除新数组/撤消我的 noauto 编辑等。
有任何想法吗?
编辑:我尝试通过在启动期间按住左移进入恢复模式,它允许我选择恢复模式(直到 Ubuntu,使用 Linux 2.6.32-74-server),但这只运行一些东西,然后让我直接回到上面无用的提示。
Edit2:我刚刚意识到我是个白痴,来自...的 fsck 实际上来自 Alt+F7 控制台,随机放置的光标/hda 错误来自安装对话框(Alt+F1)
Edit3:添加 fastboot 尝试跳过 fsck 后,我收到以下信息:
[41.631382]EXT4-fs error (device md1): ext4_mb_generate_buddy: ECT4-fs:group 4033: 3895 blocks in bitmap, 3894 in gd
[41.632061] Aborting journal on device md1-8
[41.651633] EXT4-fs (md1): Remounting filesystem read-only
[41.652357] EXT4-fs(md1): delayed block allocation failed for inode 33031569 at logical offset 0 with max blocks 1 with error -30
[41.653074] This should not happen!! Data will be lost
[410653351] EXT4-fs (md1) ext4_da_writepages: jbd2_start: 1024 pages, ino 33031569 err -30
Edit4:我现在可以使用 grub init=/bin/bash 进入 bash 终端,但系统安装为只读。我可以确认现有文件仍然存在,但我仍然无法启动。我已经关闭了 MD2(新的 RAID 1),但这并没有改变任何东西。
/proc/mdstat 显示两个 RAID(md0、md1)均处于活动状态且两个驱动器均已启动。 Smart Control 还验证了 SDA 和 SDB(md1 和 md0 均由其组成)正常工作。
现在我被 fsck 困住了。它返回错误 3,这意味着它发现并纠正了错误,并且需要重新启动。之后我收到安装错误 4。问题是在重新启动时,这种情况会无限地继续,因此它认为正在修复的任何错误都没有得到修复。
编辑 5:我通过 ext4 fsck 的某种组合解决了最后一部分,但不幸的是我无法描述我做了什么。那是几个小时前的事,一旦我开始工作,我就回到原来的问题。如果您被困在这部分,抱歉。不过,我解决了剩下的问题。
解决方案:我可以通过执行以下操作进入 shell:重新启动时按住 Shift 键并在选择内核时按“e”。
修改显示的 grub 配置,将其替换quiet
为init=/bin/bash
进入终端
这以只读方式安装,因此我运行mount -o remount,rw /
以读/写方式重新安装所有内容。
然后我注释掉了我的 fstab 更改并能够再次启动。
不幸的是,我现在遇到了另一个问题,但这是完全不同的,我会在不同的问题中提出它。