找回密码
 注册
查看: 4264|回复: 1

vmware虚机目录下只剩下一个*flat.vmdk文件时恢复方法

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-5-9 17:33:03 来自手机 | 显示全部楼层 |阅读模式
当遇到vmware环境下,datastore数据存储里只剩下*-flat.vmdk文件,虚机不能启动解决办法:
1 z( G( h7 r6 _& o* O4 f4 |6 i3 Q4 X8 Q  u创建一个完整的虚机5 d8 o! I) M: C7 S% d) F: W
名称和flat文件一样,创建的新磁盘需要和flat的文件大小一样,否则会失败,再把flat文件复制过去,启动虚机差不多问题就解决了!
; v# u0 v2 P) G' g- e2 Q' C) W3 V% p3 T! w6 `& G& G# H
1. 新建一虚拟机,不要创建硬盘
3 @; Q: G+ X2 r2. 用ssh的方式登录host,查找xx-flat.vmdk文件所在位置及目录,  A4 k( T$ I5 Q6 ]3 F0 K; y
3. 在新虚拟机目录下创建新xxx.vmdk文件,大小要和xx-flat.vmdk文件一样大,5 I& D& g" k* f! u: T3 M6 [) w
用ls -la查看xx-flat.vmdk文件大小,3 J! j4 O7 y0 x# ~, E
用vmkfstools -c 文件大小 -a lsilogic xxx.vmdk 来创建新磁盘文件
! E+ S* Q0 j" e: Z. V2 C* T8 o  J4. 用原文件xx-flat.vmdk覆盖新建的xxx-flat.vmdk(注意一定是-flat.vmdk),使用mv命令
" ?7 ]9 h+ s4 o" R  ~2 T% P5. 将这个磁盘文件添加到新建的虚拟机中;
. _% M6 a# W  I$ ~5 L) S6. 完成后开启虚拟机就可以了

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-8-19 17:28:56 | 显示全部楼层
公司生产环境中的一台esxi虚拟机,访问不了,第一时间查看机器属性发现是一台虚拟机,登录vcenter定位宿主机位置。重置虚拟机电源后显示丢失vmdx文件。下面就开始通过flat.vmdk恢复esxi虚拟机。
# d5 r" H9 k1 z8 H, U" S; d1 m+ U) n
        一、需要开启esxi服务器的ssh远程访问
7 G. Y8 H' h* k9 x  ^9 P7 H2 P9 c6 j0 n2 ?  x5 S% X6 s# e  k
    开启esxi服务器方法有三种:
5 ]6 m+ _# Q+ m3 E7 l+ ~' D  h& ?  T6 Y6 P" {* k# s
    第一种方法:通过带外访问esxi0 N7 g, n( T" e

5 s# ?9 O3 i2 K, C        1,启动控制台                        
. V' ~8 \+ g/ S+ o  Y
' Y# p' K1 o, q        image.png8 K; _0 b4 p! ?9 x2 y

2 [" U! R3 A/ I% q5 K1 Q        2、按F2输入root密码,回车。
# s* c7 W  R, `8 `5 P$ G5 c) u. i7 G2 X/ C: P, p
        image.png4 P  P, U' q' i5 Q* j! R
. Z. M. S4 W! W9 S4 X- [( R% X& d
        3、找到Troubleshoting Options回车3 z% W+ J' {5 p

  v( {9 E3 v3 q6 e3 }. |! N, R        image.png& X5 T. L0 m6 k/ ?* h: J0 }1 Y9 a

* t6 O6 j$ w8 c  Y( M; v( J: ]        4、选择Enable SSH,回车,右侧显示SSH is Enabled即为开启了SSH
& U- F/ s6 |/ o/ E( B) w( b/ A  t5 [6 t8 z" O" G) z, Y$ [( G, d
        image.png
( i" G% B* c. B: Y3 U
. ^' Z( r; L; a' M4 X1 u" G        第二种方法:通过网页访问esxi服务器授权开启SSH服务器
1 W8 n( K- `# I# {! x
* _0 |' H8 i3 v, y% R* s        访问esxi页面-->操作-->服务器-->启用安全Shell (SSH),即可通过客户端ssh远程访问esxi服务器。: R- W7 G6 L& V- S
3 O3 J, N" D- H# Y7 g
            image.png
5 H" K0 D6 T+ d& z$ _1 Z& I# y" K; f  C* o; T# w3 z: s# n$ K; v: O
        第三种方法:通过vSphere Client设置esxi服务器开启SSH服务。
- R. c* m7 m: j5 u2 w% g1 u
5 X. @* k9 b4 l  [        登录vSphere Client找到配置安全配置文件,右侧的服务属性。9 U& y3 {# I/ S' ^
' g  ]: ]( U$ D3 R
            image.png, e0 u7 S. W) y# u' h" A+ M+ k
& s& v/ y( H4 ^9 N0 A
        找到SSH服务器点右下角的选项,启动服务器即可通过客户端连接esxi服务器- d. V- @2 b5 _' s5 q& T
. e: R( t6 t; r( Q( |' W
            image.png
$ }3 A! H( c! }4 }3 s& @6 r  X3 V- A9 Q8 q
        二、客户端连接esxi服务器
/ r& h/ N& K2 j
# j( C: J. w/ H# t0 l        , I$ T, y: R* K9 e6 z" O
  Z. H" _1 K2 ^4 ~  t* [/ K0 q
            image.png( e8 r3 O/ _7 @  C* `' I# h
3 e1 E1 |3 ]* b
        这里我使用了本地PC安装了esxi服务器模拟故障,首先创建了一个虚拟机win7专业版,创建完成后,如下图. i$ [" r* A" F# x5 i

! Y, v& h6 i' I* X. S9 R/ ?            image.png: n( u9 R/ A7 g: q" R' P5 q
/ P8 b5 a  d0 x& f; w' c
        开始模拟丢失vmdk配置文件   8 x& M! d( g5 V( b

% |/ G$ }% k3 a& [8 d% F0 u     image.png& p1 |. o  [' n3 B: Q8 @
& S" ^- o) f% c- j9 n" ]
        这里模拟丢失vmdk文件,rm -rf win7.vmdk
& h) u) W* h% y" t( c8 _$ e% ]  l3 q2 J  N
            image.png   
2 y# k' {/ o* }5 k8 Z; b( c0 G! L5 o* z- \* a- ^7 j# l, h7 |
        打开虚拟机电源,会报错如下图4 e; D; T% j+ G3 A) [2 r1 s2 B

, s( n& |) p' o, N            image.png
( v% |6 k( R" F; u, ]. m
4 D- ^$ E$ `# H. h( k            ' l2 r+ D4 _/ K7 R3 B* `

+ t! O8 _* u; k* r    vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk1 l/ |% ]/ ~+ q. m. _2 Y4 c: U
" G/ J! B1 A0 K! Y4 a5 M/ C- X
    这条命令会创建一个vmdk虚拟机磁盘文件和vmdk配置文件0 }1 a' Z- `+ F% N7 ]& N2 ]4 _" O. W
* F, G. e( R7 {8 c9 I  V9 Y6 O
    将temp.vmdk重命名为win7.vmdk% t( u+ E) B1 A! L

6 c& E: b( _- X) x0 O        image.png
( @& i, r: d- Y+ J0 k8 D, b0 F
( T  c/ P  @3 y. b* p: e" ^    编辑win7.vmdk,修改图中temp-flat.vmdk为win7-flat.vmdk,ddb.thinProvisioned = "1"注释或者删除。
& w5 p# F& i& b- V$ @4 O' ]; B2 H4 @7 U( E- C
        image.png   . h0 N; @* s9 P9 _/ ~
1 M  t; v- M5 ~( I
    修改完后,开启虚拟机win7
6 |) D4 G  |: }; c5 Y9 ^
7 H7 I6 O" V9 r9 d        image.png( n! {/ k. v& t5 I

# B5 s- h  Y5 S9 o5 Z% E    正常启动9 c5 f# w5 ]5 l1 E, Z5 ?2 l2 L

; Y% {5 K$ \" x8 S8 n2 {; C; f0 a   
/ i* z" }# n4 z, V
: q0 t/ r3 `$ N1 |( B    延伸:如果你的虚拟机目录下只剩下一个flat.vmdk文件怎么办,是否也能恢复系统。4 S! }( @$ d* O
7 w& @6 e: i! `4 N6 ^
    这里一定要确保你esxi虚拟机的flat.vmdk文件存在而且没有被损坏,今天也测试了只有一个flat.vmdk文件也可以恢复系统。' u; t! M) R5 [7 P

6 _; H: f* J& q/ {( w" }# B    前提是在原虚拟机目录。
7 o4 D" Q; h# D* `0 J1 O0 X1 l& ?
    执行:vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk生成配置文件1 g+ O& z5 h4 e' D+ V
! m4 z. f) a$ G* k" @) g
    配置文件的修改前面已经讲过,不会的请爬楼。: o3 f6 J" _* `# V2 a- s! n, K
5 H$ O2 E! a8 G2 R
    你正常创建了一个虚拟机,自动创建虚拟机,添加现有的虚拟磁盘2 r6 k2 f9 I+ X! c

# `+ ~, s& j( c5 _( F8 F* {! b    image.png
+ }0 O) g- V6 w" {+ T, z' F' g+ H6 Z) Q; ?+ o; P6 Z
    原目录只要有vmdk配置文件也能在新的虚拟机中添加虚拟磁盘(相当于迁移虚拟机了)9 t" [7 `  c5 w- x+ w: F5 S
3 W. N( N1 V/ \  S; C
    image.png6 I( |0 |  }9 ^7 v- _5 \) R

, y& |; `/ I" p& y! o. Z    结果证明也可以恢复系统。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:22 , Processed in 0.015046 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表