使用 Azure 入口網站 將 OS 磁碟連結至復原 VM,以針對 Linux VM 進行疑難解答
適用於:✔️ Linux VM
如果您的 Linux 虛擬機器 (VM) 遇到開機或磁碟錯誤,您可能需要在虛擬硬碟本身上執行疑難解答步驟。 常見的範例是 中 /etc/fstab
無效的專案,導致 VM 無法成功開機。 本文詳細說明如何使用 Azure 入口網站 將虛擬硬碟連線到另一個 Linux VM,以修正任何錯誤,然後重新建立原始 VM。
復原程式概觀
疑難解答程式如下所示:
- 停止受影響的 VM。
- 為 VM 的 OS 磁碟建立快照集。
- 從快照建立虛擬硬碟。
- 將虛擬硬碟連結並掛接至另一個Linux VM以進行疑難解答。
- 線上到疑難解答 VM。 編輯檔案或執行任何工具來修正原始虛擬硬碟的問題。
- 從疑難解答 VM 取消掛接和中斷鏈接虛擬硬碟。
- 交換 VM 的 OS 磁碟。
注意
本文不適用於具有非受控磁碟的 VM。 如需加密的 Linux 磁碟,請參閱 解除鎖定加密的 Linux 磁碟以進行離線修復。
判斷開機問題
檢查開機診斷和 VM 螢幕快照,以判斷 VM 無法正確開機的原因。 常見的範例是 中 /etc/fstab
無效的專案,或正在刪除或移動的基礎虛擬硬碟。
在入口網站中選取您的 VM,然後向下捲動至 [ 支援 + 疑難解答] 區段。 按兩下 [開機診斷 ] 以檢視從 VM 串流處理的控制台訊息。 檢閱主控台記錄,以查看您是否可以判斷 VM 發生問題的原因。 下列範例顯示 VM 卡在需要手動互動的維護模式中:
您也可以按下開機診斷記錄頂端的螢幕快照,以下載 VM 螢幕快照的擷取。
擷取OS磁碟的快照集
快照集是虛擬硬碟的完整唯讀複本(VHD)。 建議您先清除 VM 再擷取快照集,以清除任何進行中的程式。 若要建立 OS 磁碟的快照集,請遵循下列步驟:
前往 Azure 入口網站。 從提要欄中選取 [虛擬機 ],然後選取發生問題的 VM。
在左窗格中,選取 [磁碟],然後選取OS磁碟的名稱。
在OS磁碟的 [ 概觀 ] 頁面上,然後選取 [ 建立快照集]。
在與OS磁碟相同的位置建立快照集。
從快照集建立磁碟
若要從快照集建立磁碟,請遵循下列步驟:
使用 Azure 入口網站
在 Azure 入口網站 中,移至您要用來建立磁碟的快照集。
在 [概 觀] 頁面上,選取 [ 建立磁碟]。
請遵循指示來完成磁碟建立程式。
使用 Azure CLI
從 Azure 入口網站 選取 Cloud Shell。
執行下列 PowerShell 命令,從快照集建立受控磁碟。 您應該將這些範例名稱取代為適當的名稱。
#Provide the name of your resource group $resourceGroupName ='myResourceGroup' #Provide the name of the snapshot that will be used to create Managed Disks $snapshotName = 'mySnapshot' #Provide the name of theManaged Disk $diskName = 'newOSDisk' #Provide the size of the disks in GB. It should be greater than the VHD file size. In this sample, the size of the snapshot is 127 GB. So we set the disk size to 128 GB. $diskSize = '128' #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS. $storageType = 'Standard_LRS' #Provide the Azure region (e.g. westus) where Managed Disks will be located. #This location should be same as the snapshot location #Get all the Azure location using command below: #Get-AzLocation $location = 'westus' $snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
如果命令成功執行,您將會在您提供的資源群組中看到新的磁碟。
將磁碟連結至另一個 VM
在接下來的幾個步驟中,您會使用另一個 VM 進行疑難解答。 將磁碟連結至疑難解答 VM 之後,您可以瀏覽和編輯磁碟的內容。 此程式可讓您更正任何組態錯誤,或檢閱其他應用程式或系統記錄檔。 若要將磁碟連結至另一個 VM,請遵循下列步驟:
從入口網站選取您的資源群組,然後選取疑難解答 VM。 選取 [磁碟],選取 [編輯],然後按兩下[ 新增數據磁碟]:
在 [ 資料磁碟 ] 清單中,選取您所識別 VM 的 OS 磁碟。 如果您沒有看到 OS 磁碟,請確定針對 VM 和 OS 磁碟進行疑難解答時位於相同的區域(位置)。
選取儲存以套用變更。
掛接鏈接的數據磁碟
注意
下列範例詳細說明Ubuntu VM上所需的步驟。 如果您使用不同的 Linux 散發版本,例如 Red Hat Enterprise Linux 或 SUSE,則記錄檔位置和 mount
命令可能稍有不同。 如需命令中適當變更,請參閱特定散發版本的檔。
使用適當的認證透過 SSH 連線到疑難解答 VM。 如果此磁碟是第一個連結至疑難解答 VM 的數據磁碟,它可能會連線到
/dev/sdc
。 用來dmseg
列出連結的磁碟:dmesg | grep SCSI
輸出類似於下列範例:
[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
在上述範例中,OS 磁碟位於
/dev/sda
,而且每個 VM 提供的暫存磁碟位於/dev/sdb
。 如果您有多個數據磁碟,它們應該位於/dev/sdd
、/dev/sde
等等。建立目錄以掛接現有的虛擬硬碟。 下列範例會建立名為 的
troubleshootingdisk
目錄:sudo mkdir /mnt/troubleshootingdisk
如果您在現有的虛擬硬碟上有多個分割區,請掛接所需的磁碟分區。 下列範例會在 掛接第一個主要分割區
/dev/sdc1
:sudo mount /dev/sdc1 /mnt/troubleshootingdisk
注意
最佳做法是使用虛擬硬碟的通用唯一標識碼 (UUID) 在 Azure 中的 VM 上掛接數據磁碟。 針對這個簡短的疑難解答案例,不需要使用 UUID 掛接虛擬硬碟。 不過,在正常使用下,使用裝置名稱進行編輯
/etc/fstab
以掛接虛擬硬碟,而不是 UUID 可能會導致 VM 無法開機。
修正原始虛擬硬碟的問題
掛接現有的虛擬硬碟后,您現在可以視需要執行任何維護和疑難解答步驟。 解決問題之後,請繼續進行下列步驟。
卸除和卸離原始虛擬硬碟
解決錯誤之後,請中斷現有虛擬硬碟與疑難解答 VM 的中斷連結。 在發行虛擬硬碟至疑難解答 VM 的租用之前,您無法將虛擬硬碟與任何其他 VM 搭配使用。
從 SSH 會話到疑難解答 VM,取消掛接現有的虛擬硬碟。 請先變更載入點的父目錄:
cd /
現在,卸除現有的虛擬硬碟。 下列範例會在 卸除裝置
/dev/sdc1
:sudo umount /dev/sdc1
現在,從 VM 中斷鏈接虛擬硬碟。 在入口網站中選取您的 VM,然後按兩下 [ 磁碟]。 選取現有的虛擬硬碟,然後按兩下 [ 中斷連結]:
等到 VM 成功中斷鏈接數據磁碟,再繼續進行。
交換 VM 的 OS 磁碟
Azure 入口網站 現在支援變更 VM 的 OS 磁碟。 若要這樣做,請遵循下列步驟:
前往 Azure 入口網站。 從提要欄中選取 [虛擬機 ],然後選取發生問題的 VM。
在左窗格中,選取 [磁碟],然後選取 [ 交換 OS 磁盘]。
選擇您修復的新磁碟,然後輸入 VM 名稱以確認變更。 如果您沒有在清單中看到磁碟,請在從疑難解答 VM 中斷連結磁碟之後等候 10 ~ 15 分鐘。 也請確定磁碟位於與 VM 相同的位置。
選取 [確定]。
下一步
如果您在連線到 VM 時遇到問題,請參閱 針對 Azure VM 的 SSH 連線進行疑難解答。 如需存取 VM 上執行的應用程式的問題,請參閱 針對 Linux VM 上的應用程式連線問題進行疑難解答。
如需使用 Resource Manager 的詳細資訊,請參閱 Azure Resource Manager 概觀。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。