PVE 下虛擬機器 Ubuntu 無法進入恢復模式的解決方案——提取原有系統檔案

wx2020發表於2023-11-18

問題說明

某天重啟虛擬機器 Ubuntu,發現虛擬機器只有容器IP,橋接的介面在虛擬機器顯示狀態為 DOWN:

想重啟進入恢復模式,卻發現恢復模式一直破圖,無法使用:

image

沒有辦法了,只能想辦法提取原有系統內原有檔案。

解決方案

  1. 定位虛擬機器編號:

image

  1. 找到虛擬機器主硬碟:
    SSH 登入宿主機,執行以下命令

    ls -al /dev/mapper/
    

    image
    通常使用預設的 BIOS 啟動型別,只會有一個硬碟,此處我使用 UEFI 啟動型別,0號硬碟是 EFI 分割槽,所以是1號硬碟。

  2. 先將硬碟轉為 qcow2 格式

    qemu-img convert -p -O qcow2 -c /dev/mapper/pve-vm--101-disk--0 ubuntu.qcow2
    

    其中,-c 選項為壓縮,僅支援 qcow2 格式, 這樣生成的檔案大小會比較小。

  3. 再將 qcow2 格式硬碟轉為 img 格式

    qemu-img convert -p -f qcow2 -O raw ubuntu.qcow2 ubuntu.img
    
  4. 掛載 img 映象檔案
    使用 fdisk -lu ubuntu.img 檢視映象內情況:
    image
    可以看到第一個分割槽是 EFI 分割槽,跳過不處理;需要掛載第二個分割槽;
    可以得知第二個分割槽的起始位置是在整個磁碟的第 2203648 扇區(從0計數),而每一個扇區大小是 512 位元組,所以,第二個分割槽的偏移量是 2203648 * 512 = 1128267776。
    為了掛載第二個分割槽,使用以下命令:

    mkdir ubuntu
    mount -o loop,offset=1128267776 ubuntu.img ubuntu
    
  5. 掛載結束,進入資料夾檢視映象檔案

    cd ubuntu
    ls
    

    image
    掛載成功,教程結束。

相關文章