web-dev-qa-db-ja.com

カーネルのアップグレード後、Rackspace Ubuntu12.04サーバーがinitramfsでスタックする

aptitude full-upgradeを実行してmenu.lstを更新させた後、起動できません(最初に差分を実行しましたが、見栄えが良かったです)。

これは私がBusyBoxシェルでこれまでに行ったことです:

mkdir /tmp/xvda1
mount /dev/xvda1 /tmp/xvda1
chroot /dev/xvda1
nano /boot/grub/menu.lst

このファイルは次のようになります。

title           Ubuntu 12.04.1 LTS, kernel 3.2.0-31-virtual
root(hd0,0)
kernel          /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro quiet splash
initrd          /boot/initrd.img-3.2.0-31-virtual

title           Ubuntu 12.04.1 LTS, kernel 3.2.0-31-virtual (recovery mode)
root(hd0,0)
kernel          /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro  single
initrd          /boot/initrd.img-3.2.0-31-virtual

titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-virtual
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-virtual root=UUID=/dev/xvda1 ro quiet splash
initrd/boot/initrd.img-3.2.0-24-virtual

titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-virtual (recovery mode)
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-virtual root=UUID=/dev/xvda1 ro  single
initrd/boot/initrd.img-3.2.0-24-virtual

titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-generic
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-generic root=UUID=/dev/xvda1 ro quiet splash
initrd/boot/initrd.img-3.2.0-24-generic

titleUbuntu 12.04.1 LTS, kernel 3.2.0-24-generic (recovery mode)
root(hd0,0)
kernel/boot/vmlinuz-3.2.0-24-generic root=UUID=/dev/xvda1 ro  single
initrd/boot/initrd.img-3.2.0-24-generic

titleChainload into GRUB 2
root(hd0,0)
kernel/boot/grub/core.img

titleUbuntu 12.04.1 LTS, memtest86+
root(hd0,0)
kernel/boot/memtest86+.bin

私が覚えていることから、アップグレードはUUID=文字列を追加しました。これらを削除する必要がありますか?むしろ、システムを再びオンラインに戻すにはどうすればよいですか?ありがとう。

更新:ファイルを編集することすらできないようです。

[ Error writing /boot/grub/menu.lst: Read-only file system ]

更新2:

これで、イメージからサーバーを再構築しました。今diffを調べてみると、これは市長のことのようです。

-kernel /boot/vmlinuz-3.2.0-24-virtual root=/dev/xvda1 console=hvc0 ro quiet splash
+kernel /boot/vmlinuz-3.2.0-31-virtual root=UUID=/dev/xvda1 ro quiet splash

したがって、menu.lstを保存できたとしたら、それを解決できたと思います。

私の残りの質問は:どうすればmenu.lstに書き込むことができたでしょうか?

1
Znarkus

同じ問題が発生しました。再起動する前に、/boot/grub/menu.lstを編集してください。UUID=を削除し、console=hvc0を追加してください。

私が収集できるものからconsole=hvc0を使用すると、Xenはコンソール出力をリダイレクトしてキャプチャできます。また、UUIDを使用してルートパーティションを識別することもできますが、使用されている構文が正しくありません。

ソースはこちら

1
James Baxter