無法在 Eucalyptus 上啟動 Oneiric x64 實例
編輯:幾個小時後,我發現問題與桉樹無關。看起來圖像是錯誤的。非常非常有問題。更多細節在最後。我沒有設法修復它,我將送出一個錯誤。
編輯2:我設法修復它,它顯然有效。
我有一個執行 Ubuntu Server Natty (11.04) x64 的 4 機集群。我已經在每台機器上從安裝 CD 安裝了“Ubuntu Enterprise Cloud”(然後對其進行了更新)。雲似乎執行良好,我有很多虛擬機在上面執行 Natty 伺服器。
現在我想在虛擬機中執行 Oneiric,但不知何故我不能。
我從http://cloud-images.ubuntu.com/oneiric/current/下載了 Oneiric 的 (x64) 圖像,完全按照我對 Natty 所做的發布它 (
uec-publish-tarball oneiric-server-cloudimg-amd64.tar.gz oneiric-server-cloudimg-amd64
),然後嘗試euca-run-instances -n 1 -k my-key -t m1.small -z my-cloud emi-XXXXXXXX
使用 Oneiric 的圖像啟動一個實例 (),但是實例無法啟動。我得到
euca-get-console-output
以下資訊:[ 0.461269] VFS: Cannot open root device "sda1" or unknown-block(0,0) [ 0.462388] Please append a correct "root=" boot option; here are the available partitions: [ 0.463855] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 0.465331] Pid: 1, comm: swapper Not tainted 3.0.0-13-generic #22-Ubuntu [ 0.466526] Call Trace: [ 0.466989] [<ffffffff815d3ee5>] panic+0x91/0x194 [ 0.467860] [<ffffffff81ad1031>] mount_block_root+0xdc/0x18e [ 0.468891] [<ffffffff81ad126a>] mount_root+0x54/0x59 [ 0.469829] [<ffffffff81ad13dc>] prepare_namespace+0x16d/0x1a7 [ 0.470883] [<ffffffff81ad0d76>] kernel_init+0x140/0x145 [ 0.471837] [<ffffffff815f38e4>] kernel_thread_helper+0x4/0x10 [ 0.472889] [<ffffffff81ad0c36>] ? start_kernel+0x3df/0x3df [ 0.473884] [<ffffffff815f38e0>] ? gs_change+0x13/0x13
文件系統標記為“cloudimg-rootfs”,在映像中 /etc/fstab 和 /boot/grub/grub.cfg 始終通過標籤引用映像,一切似乎都是正確的,但核心說它不能找到根文件系統。
我花了很多時間在Google上搜尋,但沒有任何結果。我在#ubuntu-server 上問過,但沒有人知道該怎麼做。我在#eucalyptus 上問過,但根本沒有得到任何答复。
關於為什麼會發生這種情況以及如何解決它的任何想法?
謝謝
編輯:幾個小時後,我發現問題與桉樹無關。看起來圖像是錯誤的。非常非常有問題。
第一個問題是圖像中的核心是
-generic
核心,而我認為它應該是核心-virtual
。我 chroot 到圖像中,刪除-generic
包,用那些替換它-virtual
。然後我提取了新核心(並替換了 tarball 附帶的原始核心(-generic)),因為當我使用 Eucalyptus 發布和啟動圖像時需要它。解決了上述問題。
但隨後,控制台開始顯示:
mount: mount point ext4 does not exist
如果您檢查圖像中的 /etc/fstab 文件,它會顯示:
LABEL=cloudimg-rootfs ext4 defaults 0 1
該死,我的掛載點在哪裡?請注意,它也失去
/proc
了。好吧,當您認為結束時,您會注意到您的實例將沒有網路連接。讓我們檢查 /etc/network/interface:
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback
天啊!它缺少 eth0 ……我在這裡停下來。我再也受不了了。我放棄。
看起來 Canonical 剛剛忘記正確設置此圖像。起初,我雖然:“我是否錯誤地下載了伺服器映像?”,但沒有,我仔細檢查了。它實際上是雲映像,它甚至安裝了“cloud-init”(預設情況下,它不在伺服器映像上)。他們只是忘了準備。
我將送出一個錯誤(並在完成後在此處引用它),並希望他們盡快修復它!
編輯 2:看起來網路配置是最後缺少的東西。我決定使用上面的修復程序對其進行測試,並且它可以正常啟動!但是,我不知道圖像現在是否可以使用…
錯誤報告位於:https ://bugs.launchpad.net/ubuntu/+bug/896772
我希望它很快得到修復!