Chl*_*loe 3 centos boot amazon-ec2 amazon-ebs centos6
我的实例运行了多年,突然在 6 月 1 日停止响应。我试图重新启动它,但它无法启动。它在系统日志中给出了错误:https : //pastebin.com/rSxr1kLs
Linux 版本 2.6.32-642.11.1.el6.x86_64 (mockbuild@c1bm.rdu2.centos.org) (gcc 版本 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Fri 十一月 18 19:25:05 UTC 2016
内核命令行:root=/dev/xvde ro LANG=en_US.UTF-8 KEYTABLE=us
VFS:无法打开根设备“xvde”或未知块(0,0)
请附加正确的“root=”启动选项;这里是可用的分区:
内核恐慌 - 不同步:VFS:无法在未知块(0,0)上挂载根文件系统
我尝试/dev/sda1根据文档分离 EBS 卷并重新附加它:https : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstances.html#FilesystemKernel
但是,它给出了一个错误Error attaching volume: Invalid value '/dev/sda1' for unixDevice. Attachment point /dev/sda1 is already in use,我无法附加它。我重新附加了它,/dev/sda但它仍然无法启动并且它仍然在系统日志中给出错误。
我能够在完全相同的可用区中启动一个新实例并将我的 EBS 卷附加为/dev/sdf. 它在实例内显示为/dev/xvdj. 我用mount /dev/xvdj /xvdj. 我可以看到grub.conf文件:
[root@ip-172-31-4-249 grub]# cat /xvdj/boot/grub/grub.conf
default=0
timeout=1
title CentOS (2.6.32-642.11.1.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-642.11.1.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
title CentOS (2.6.32-504.30.3.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-504.30.3.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
initrd /boot/initramfs-2.6.32-504.30.3.el6.x86_64.img
title CentOS (2.6.32-504.3.3.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
title CentOS (2.6.32-504.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-504.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
initrd /boot/initramfs-2.6.32-504.el6.x86_64.img
title CentOS (2.6.32-431.29.2.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-431.29.2.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
initrd /boot/initramfs-2.6.32-431.29.2.el6.x86_64.img
title CentOS (2.6.32-431.23.3.el6.x86_64)
root (hd0)
kernel /boot/vmlinuz-2.6.32-431.23.3.el6.x86_64 root=/dev/xvde ro crashkernel=auto LANG=en_US.UTF-8 KEYTABLE=us
initrd /boot/initramfs-2.6.32-431.23.3.el6.x86_64.img
Run Code Online (Sandbox Code Playgroud)
这与grub.conf正在运行的实例的 相比:
[root@ip-172-31-4-249 grub]# cat /boot/grub/grub.conf
default=0
timeout=1
title CentOS-6-x86_64-20130527-03 2.6.32-358.6.2.el6.x86_64
root (hd0)
kernel /boot/vmlinuz-2.6.32-358.6.2.el6.x86_64 root=/dev/xvde ro
initrd /boot/initramfs-2.6.32-358.6.2.el6.x86_64.img
Run Code Online (Sandbox Code Playgroud)
initrd在第一个选项中没有行是否重要?
我尝试使用 将 EBS 卷挂载到新实例/dev/sda,但它仍然无法启动并出现相同的错误Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)。
CentOS 6
我通过转至图像 > AMI > 私有图像 > 选择启动实例的图像 > 启动来创建一个新实例。我在完全相同的可用区启动,不仅是美国或地区,而且 2a、2b、2c 也必须匹配。我停止了新实例。我断开了 EBS 卷与旧实例的连接。我将 EBS 卷重新附加到/dev/sdf. 我启动了新实例。EBS 卷显示在实例内部,/dev/xvdj因此我使用mkdir /xvdj; mount /dev/xvdj /xvdj. 我编辑/xvdj/boot/grub/grub.conf并更改default=0为default=1. 我保存了文件,停止了新实例,将 EBS 卷重新附加到旧实例,然后它就启动了。我yum update在旧实例中运行并仔细检查/boot/grub/grub.conf并再次检查它会重新启动。
我还发现了有关 CentOS 内核更新的信息:grub.conf missing initrd path after kernel update
我在跑步后注意到yum update我现在有2个grub.conf没有initrd. 跑步# yum reinstall kernel.x86_64可以解决这个问题。
| 归档时间: |
|
| 查看次数: |
5951 次 |
| 最近记录: |