您好,登錄后才能下訂單哦!
小編給大家分享一下怎么利用Libguestfs修復受損虛擬機,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
利用Libguestfs找出損壞的虛擬機文件
Libguestfs允許在虛擬機上掛載任何類型的文件系統,以便修復啟動故障。作為一款管理KVM環境中虛擬機的原生Linux工具,默認情況下并不適用于所有VMware平臺。所以管理員不會將其作為***的工具,但是卻值得花費一些時間來配置和使用。
使用Libguestfs,首先需要使用Libvirt。Libvirt是一個管理接口,可以和KVM、Xen和其他一些基于Liunx的虛擬機相互連接。Libguestfs的功能更加強大,可以打開Windows虛擬機上的文件。這意味著除了能夠使用libguestfs,你還需要一些關于虛擬機操作系統內部架構的知識。但是首先你需要將虛擬機遷移到libguestfs可用的環境當中,也就是Linux環境。
為了將虛擬機遷移到Linux當中,你可以使用SSH連接到ESXi主機,這意味著你首先需要啟用ESXi主機上的SSH訪問方式。完成之后,在Linux平臺上運行下面的scp命令:
scp –r 192.168.178.30:/vmfs/volumes/datastore1/Windows*
使用guestfish操作虛擬機
完成虛擬機磁盤鏡像文件的復制之后,可以在libguestfs中使用guestfish這樣的工具將其打開,這樣就可以直接在vmdk文件上進行操作了。使用guestfish -rw -a /path/to/windows.vmdk命令來在虛擬機中創建一個連接到文件系統的交互式shell。在新出現的窗口中,你可以使用特定的命令來操作虛擬機文件。
***個任務就是找到可用的文件系統:
><fs> run ><fs> list-filesystems /dev/sda1: ntfs /dev/sda2: ntfs
當你使用guestfish shell找到可用文件系統類型之后,就可以進行掛載了。使用命令mount /dev/sda2 / 來掛載二個分區的內容——在Linux中是/dev/sda2——到guestfish根目錄下。在guestfish中,你不能像在其他shell環境中一樣操作目錄。掛載的分區就是根目錄,你不能使用cd命令來切換目錄,這意味著所有的路徑必須是完全限定路徑,從根目錄開始。在guestfish shell當中可以使用像ls、cat、more、download這樣的命令,來查看和下載文件以及目錄,輸入help可以看到完整的命令信息。在完整所有操作之后可以使用exit來關閉guestfish shell。
Virt-rescue提供了直接訪問方式
在libguestfs工具中,還有許多其他可用的工具。virt-rescue命令——是使用正常的Linux文件系統工具來實現ad-hoc變化的***命令——可以在安全shell中啟動虛擬機。你可以在虛擬機中操作這些文件,就像對掛載的文件系統上進行操作一樣,其提供了對虛擬機內容更加直接的訪問方式。
為了在虛擬機上使用virt-rescue命令進行操作,使用virt-rescure加上客戶端主機名來打開virt-rescue shell,之后就進入了><rescue>模式。
如果需要在虛擬機中掛載系統文件,可以使用fdisk -l /dev/sda命令來查看虛擬機的分區情況,之后再使用命令mount /dev/sda1 /sysroot掛載你想要訪問的分區。這樣你就可以通過更改來修復虛擬機的內容了。
虛擬機修復之后,關閉virt-rescue shell,將虛擬機重新移動到ESXi服務器的數據存儲當中。虛擬機返回原位置之后,如果之前的操作一切順利,你就應該可以訪問它了。
以上是“怎么利用Libguestfs修復受損虛擬機”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。