2019/03/14

從 -flat.vmdk 還原為 .vmdk

由於一時手殘, 不小心把 VM 的檔案全刪了, 幸好 VM 是開啟的狀態, 所以 -flat.vmdk 沒有被刪除

那麼該怎麼還原呢

首先先查看你的 -flat.vmdk 檔案

```
$ ls -al
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
```

只剩下兩個 -flat.vmdk

先記下來 這兩個檔案的大小 322122547200 跟 21474836480

實際上還原的指令是:

```
$ vmkfstools -c 322122547200 -a pvscsi -d thin restore-1.vmdk
$ vmkfstools -c 21474836480 -a pvscsi -d thin restore.vmdk
```

其中 -a 的參數是你創建的 SCSI Controller

我是 VMware Paravirtual 則填 pvscsi
也有可能是 LSI Logic 則填 lsilogic

vmkfstools 指令執行完後會產生四個新檔案 ls 看一下

```
-rw------- 1 root root 322122547200 Mar 14 05:37 vm-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 vm-flat.vmdk
-rw------- 1 root root 322122547200 Mar 14 05:37 restore-1-flat.vmdk
-rw------- 1 root root 21474836480 Mar 14 05:37 restore-flat.vmdk
-rw------- 1 root root 478 Mar 14 05:37 restore-1.vmdk
-rw------- 1 root root 528 Mar 14 05:37 restore.vmdk
```

接下來重點就是 把產生的 restore-1-flat.vmdk 跟 restore-flat.vmdk 刪除
並且重新命名 vm-1-flat.vmdk 跟 vm-flat.vmdk 為 restore-1-flat.vmdk 跟 restore-flat.vmdk

這樣磁碟裡的資料才會回來

沒有留言:

張貼留言