2011-06-16 62 views
79

我有一個EBS支持的Amazon EC2實例。我想在此實例上更改根設備。你可以請建議最好的方式去做這件事?我可以更改我的amazon EC2實例的根EBS設備嗎?

我只找到有關更改塊設備的幾個屬性的文檔,但它們似乎沒有包括將其設置爲根設備。提前致謝。

回答

143

是的,它的死很容易:

  1. 停止實例。
  2. 分離根EBS卷。
  3. 附加備用EBS體積爲根:/dev/sda1
  4. 啓動實例。

這假設您的備用EBS卷是可啓動的,當然 - 它必須包含可啓動的OS映像。

+1

這個答案剛剛救了我的一天! – 2011-09-08 00:46:09

+0

如果我分離根EBS卷,則該實例會終止! – 2012-08-10 03:56:19

+0

AWS API(控制檯使用的)不會讓您從正在運行的實例中分離出根EBS卷 - 但我不確定Force Detach是否遵守相同的規則 - 您是否錯誤地執行了此操作?或者,您的實例可能不是EBS支持的,在這種情況下,此問題/答案不適用 - 如果您嘗試從非EBS支持的VM分離啓動卷,我不知道會發生什麼情況。 – 2012-08-10 08:58:46

34

我沒有足夠的代表給選定的答案添加評論,但我想指出,對我而言,/dev/sda1沒有工作(沒有作爲根連接),但使用/dev/xvda工作(附加爲根)。該實例是使用HVM的最新t2.micro實例之一。

+0

我認爲VPC中的機器,格式爲/ dev/xv *的設備名稱本身可以工作,您不需要以格式/ dev/sd *提供名稱。這是一個觀察 - 我不是專家,有信心說這個。 – 2015-04-10 10:45:05

+0

我有一個匹配此描述的實例,在分離並重新連接根設備後無法引導(「無法找到根設備」)。我想嘗試這個答案,但是如果我不把它作爲'/ dev/sda1'附加,那麼AWS拒絕啓動我的實例。我需要配置其他一些設置才能使用備用根設備名稱嗎? – 2015-10-02 18:43:34

+0

/dev/sda1 for Linux/dev/xvda for Windows – Luis 2015-10-13 23:48:54

12

要詳細說明Diomidis Spinellis在接受答案的評論主題中的評論,檢查您試圖切換爲新設備的設備的文件系統標籤很重要。在排除我自己的服務器遷移故障時,我必須在我的實例啓動之前執行以下操作:

使用e2label命令更改爲您的新根設備創建的ext2/ext3/ext4文件系統上的標籤。

首先,檢查當前根設備的文件系統標籤。

$ sudo e2label /dev/xvda1 
cloudimg-rootfs 

將新設備設置爲具有相同的文件系統標籤。

$ sudo e2label /dev/xvdg 'cloudimg-rootfs' 

在我的情況下,標籤是cloudimg-rootfs。有時它只是/

瞭解e2label的工作原理非常重要;請在您的機器上檢查man e2label或訪問http://linux.die.net/man/8/e2label瞭解更多信息。

+0

這非常重要,我不明白爲什麼這個答案不是更常見的。 – ays0110 2016-08-26 07:40:53

相關問題