問題說明
某天重啟虛擬機器 Ubuntu,發現虛擬機器只有容器IP,橋接的介面在虛擬機器顯示狀態為 DOWN:
想重啟進入恢復模式,卻發現恢復模式一直破圖,無法使用:
沒有辦法了,只能想辦法提取原有系統內原有檔案。
解決方案
- 定位虛擬機器編號:
-
找到虛擬機器主硬碟:
SSH 登入宿主機,執行以下命令ls -al /dev/mapper/
通常使用預設的 BIOS 啟動型別,只會有一個硬碟,此處我使用 UEFI 啟動型別,0號硬碟是 EFI 分割槽,所以是1號硬碟。 -
先將硬碟轉為 qcow2 格式
qemu-img convert -p -O qcow2 -c /dev/mapper/pve-vm--101-disk--0 ubuntu.qcow2
其中,
-c
選項為壓縮,僅支援 qcow2 格式, 這樣生成的檔案大小會比較小。 -
再將 qcow2 格式硬碟轉為 img 格式
qemu-img convert -p -f qcow2 -O raw ubuntu.qcow2 ubuntu.img
-
掛載 img 映象檔案
使用fdisk -lu ubuntu.img
檢視映象內情況:
可以看到第一個分割槽是 EFI 分割槽,跳過不處理;需要掛載第二個分割槽;
可以得知第二個分割槽的起始位置是在整個磁碟的第 2203648 扇區(從0計數),而每一個扇區大小是 512 位元組,所以,第二個分割槽的偏移量是 2203648 * 512 = 1128267776。
為了掛載第二個分割槽,使用以下命令:mkdir ubuntu mount -o loop,offset=1128267776 ubuntu.img ubuntu
-
掛載結束,進入資料夾檢視映象檔案
cd ubuntu ls
掛載成功,教程結束。