我有一台运行 Cloud Linux 的 cPanel 服务器,它是一台专用服务器,最初运行的是 CentOS 6.4 和 SoftRaid 1。我重新安装后将其转换为 CloudLinux。直到现在,我都不需要重新启动它。一切都运行顺利,但当我重新启动服务器时,它关闭了,但没有恢复。提供商将其置于救援模式,因为我无法使用 KVM 和 IPMI。我进行了硬件测试,一切正常。我尝试重新安装 GRUB,但什么也没改变。服务器仍然无法启动。我现在真的没主意了。提供商是非托管的,我把重新安装作为最后的手段。
我使用本教程重新安装了 GRUB:http://www.adminlinux.org/2009/10/how-to-reinstall-grub-while-in-rescue.html
编辑:
提供商告诉我,启动时屏幕上会显示以下内容:
*An error occurred during the file system check*
*Dropping you to a shell; the system will reboot*
我做了一些研究,我需要运行 fsck。
当我尝试运行 fsck /dev/sda1 时,我不断收到此信息:
root@rescue [/]# fsck /dev/sda1
fsck from util-linux-ng 2.17.2
fsck: fsck.linux_raid_member: not found
fsck: Error 2 while executing fsck.linux_raid_member for /dev/sda1
驱动器已安装,然后我尝试卸载它,
root@rescue [/]# fsck /dev/sda1
fsck from util-linux-ng 2.17.2
/dev/sda1 is in use.
Aborted
我正在救援模式下做这一切。
我在 Raid 1 中有 2 个驱动器,每个驱动器 1TB,以下是 fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/md1 / ext3 errors=remount-ro,usrjquota=quota.user,jqfmt=vfsv0 0 1
/dev/md3 /home ext3 usrjquota=quota.user,jqfmt=vfsv0 1 2
/dev/sda2 swap swap defaults 0 0
/dev/sdb2 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs noexec,nosuid 0 0
devpts /dev/pts devpts defaults 0 0
/tmp_fs /tmp ext3 noexec,nosuid,loop,rw 1 1
更新:
根据 Bittylicious 的建议,我执行了命令,结果如下:
root@rescue:~# mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
mdadm: /dev/sda1 is busy - skipping
mdadm: /dev/sdb1 is busy - skipping
然后我以为突袭已经完成了,所以我这样做了:
root@rescue:~# fsck /dev/md1
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/: recovering journal
Setting free inodes count to 9410644 (was 9410650)
Setting free blocks count to 35082532 (was 35082538)
/: clean, 190380/9601024 files, 3317196/38399728 blocks
更新 #2:
挂载结果如下:
root@rescue:~# mount
none on / type tmpfs (rw,relatime)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
198.27.85.63:/home/pub/rescue.v7 on /nfs type nfs (ro,relatime,vers=3,rsize=8192,wsize=8192,namlen=255,hard,nolock,proto=udp,port=2049,timeo=11,retrans=3,sec=sys,local_lock=all,addr=198.27.85.63)
198.27.85.63:/home/pub/pro-power on /power type nfs (ro,nodev,relatime,vers=3,rsize=8192,wsize=8192,namlen=255,hard,nolock,proto=udp,port=2049,timeo=11,retrans=3,sec=sys,local_lock=all,addr=198.27.85.63)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=10240k,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=807512k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1615020k)
rpc_pipefs on /nfs/var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
以下是 fsck /dev/md3 的结果:
root@rescue:~# fsck /dev/md3
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
/home: clean, 370962/50429952 files, 5187714/201693680 blocks
sda2 上的 mkswap:
root@rescue:~# mkswap /dev/sda2
Setting up swapspace version 1, size = 16382972 KiB
no label, UUID=b375ef52-9434-4298-be4a-38db9da029af
sdb2 上的 mkswap:
root@rescue:~# mkswap /dev/sdb2
Setting up swapspace version 1, size = 16382972 KiB
no label, UUID=f9318100-c18d-4987-b4e8-6bc58b0c8299
更新 #3:
我假设 Bittylicious 指的是 /boot/grub/grub.conf,在这种情况下:
default=0
timeout=5
title CloudLinux Server (2.6.32-458.6.2.lve1.2.30.el6.x86_64)
kernel /boot/vmlinuz-2.6.32-458.6.2.lve1.2.30.el6.x86_64 root=/dev/md1 $
root (hd0,0)
initrd /boot/initramfs-2.6.32-458.6.2.lve1.2.30.el6.x86_64.img
title linux centos6_64
kernel /boot/vmlinuz-2.6.32-358.18.1.el6.x86_64 root=/dev/md1 ro
root (hd0,0)
initrd /boot/initrd-2.6.32-358.18.1.el6.x86_64.img
我也尝试重建 initramfs。我遵循了以下教程: http://advancelinux.blogspot.com/2013/06/how-to-rebuild-initrd-or-initramfs-in.html
答案1
无法启动的原因有很多。我们都可以列出很多原因(我会的),但最终你一定有办法让你的提供商提供帮助。即使他们只是阅读控制台上的内容,也会提供大量关于如何修复它的线索。
我现在的建议是:
- 你还没有设置 initramfs/initrd,但你正在指定它
- 你已经指定了一个,但它不包含挂载根文件系统的相关驱动程序
- 您正在使用的虚拟机管理程序无法以压缩格式加载 initrd/ramfs/kernel 映像
大多数非托管提供商确实提供支持,即使需要付费。我建议您为此付费,因为您将花费很长时间来猜测,而没有任何内核访问权限。
更新 1 - 现在您已添加了信息 fsck,这很简单。您正在尝试在 RAID 成员上运行 fsck - 这不起作用。您需要做的是先组装 RAID 阵列(然后可能在其上运行 fsck)。
你为什么要在 /dev/sda1 上运行 fsck?你可能需要执行如下操作:
mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
(假设 sda1 和 sdb2 是您的 RAID 成员)
如果成功,那么您可以在 /dev/md1 上运行 fsck。您真正需要弄清楚的是为什么您的操作系统没有组装 RAID 阵列。我最好的猜测是它已降级,您需要将“bootdegraded”添加到内核选项中。
更新 2 - 让我们获取更多信息:
当您重新安装 GRUB 时,您是否知道 grub.cfg 或 boot.lst 文件的内容是什么,以便我们可以找出您的启动选项?
您是否尝试过重建 initramfs(update-initramfs -k all -u 只是为了开始)