Openstack クラウドでセットアップするサーバーが 2 台あります。ワカモレとチョリソです。1 台に Ubuntu サーバーをインストールし、Linux の「dd」を使用してディスクをイメージ化してもう 1 台を構築し、サーバーのホスト名を変更しました。それ以降、何度か再起動しましたが、問題はありません。両方のドライブのファイル システムは LVM です。
最近、2 つのサーバーのホスト名を交換する必要がありました。chorizo を guacamole に、またその逆に変更しました。新しい guacamole は正常に動作し、新しい chorizo も正常に動作していると思いました。両方のサーバーを数回再起動しましたが、問題はありませんでした。
最近、OpenStackコントローラーネットワーク(Neutron)がchorizoにインストールされ、サーバーが再起動されました。initramfsプロンプトで停止しました。
Gave up waiting for root device. Common problesm:
- Boot args (cat /proc/cmdline)
- Check root delay
- Check root = (did system wait for right device)
- missing modules (cat proc/modules; ls/dev)
ALERT! /dev/mapper/guacamole--vg-root does not exist. Dropping to a shell.
ファイル/proc/cmdlineには
BOOT_IMAGE=/... root=/dev/mapper/guacamole--vg-root ro
しかし、/dev/mapperにはファイルが含まれています
/dev/mapper/chorizo--vg-root
/dev/mapper/chorizo--vg-swap_1 (or something)
ルートファイルシステムを /root の下にマウントしようとしました:
/path/to/root/dev /root をマウントする
initramfs シェルを終了しました:
出口
ファイルシステムは起動しませんでした
/proc/cmdlineを編集して正しいBOOT_IMAGE(ワカモレではなくチョリソ)を入れようとしましたが、initramfsにはエディタがありません。そこで、
initramfs> sed -i 's/guacamole/chorizo/g' /proc/cmdline
しかし、ファイルシステムは読み取り専用です。そこで、チョリソのディスクをワカモレに接続し、起動を進めました。ある種のシングル ユーザー モードで起動できるので、ルート パスワードを入力してルートとしてログインできます。
そこから vim を使用して /proc/cmdline ファイルを編集しようとしましたが、ファイル システム全体が読み取り専用になります。
私はワカモレのオリジナルディスクから起動し、チョリソのディスクを別のホットプラグポートに接続して両方のディスクをマウントできるようにしました。そこから
root@guacamole:~# sudo lshw -C disk
*-disk:1
description: SCSI Disk
physical id: 0.1.0
bus info: scsi@0:0.1.0
logical name: /dev/sdb
size: 1863GiB (2TB)
capabilities: partitioned partitioned:dos
configuration: sectorsize=512 signature=000cfebc
私は
lvm vgchange -ay
そしてディスクをマウントした
ext3 /dev/whatever /chorizo をマウントする
動作しませんでした。マウントの手順を確認しました http://www.linuxwave.info/2007/11/mounting-lvm-disk-using-ubuntu-livecd.html Guacamole は、ディスクがすでにマウントされているものの複製であると認識するため、ディスクをマウントしません。
以前、OSX でも同様のことがあったと思います。ホスト名を変更すると、grub ブート ローダーが壊れるのです。Ubuntu インストール ディスクから起動して、grub ブート ローダーを再インストールしようとしましたが、レスキュー メニュー システムをナビゲートしてもこのオプションは見つかりませんでした。
アドバイスがあれば歓迎します。