|
|
楼主 |
发表于 2021-8-19 17:28:56
|
显示全部楼层
公司生产环境中的一台esxi虚拟机,访问不了,第一时间查看机器属性发现是一台虚拟机,登录vcenter定位宿主机位置。重置虚拟机电源后显示丢失vmdx文件。下面就开始通过flat.vmdk恢复esxi虚拟机。
1 {/ D) t3 ?' k6 J) Z# m n% V5 H! ]3 V( z7 X
一、需要开启esxi服务器的ssh远程访问
( [9 I# u J) E$ M2 y: A
( O- C9 E7 k9 P' E5 z 开启esxi服务器方法有三种:
+ d+ y/ o/ E7 P( [
3 F$ w( r, O& R% x. J1 K 第一种方法:通过带外访问esxi
& m, U# R% Z3 m8 u* l
" J. F( Z1 @! I, X1 S 1,启动控制台 % |$ h8 g s0 `+ S' H. Y
: C3 Y& G6 k* |$ h image.png
1 a% [/ Z F: G- ]& f K
& G6 M! d3 v' I* O( e6 O4 _9 G 2、按F2输入root密码,回车。" v1 o7 t+ w1 @! E5 G" o3 J6 @
5 m% S1 W+ B: R J5 w/ O
image.png
. E; e2 ^6 K, V2 I& j0 @* O# p7 E: A1 J( ?6 F
3、找到Troubleshoting Options回车' |; J% I/ q2 m) P; {" u9 j' G
9 P# D: ~: ]7 c, ^! W! A image.png
* n1 ~* z& Q% i& M5 c+ g
3 D2 p8 V. x: h4 @2 U 4、选择Enable SSH,回车,右侧显示SSH is Enabled即为开启了SSH
( j/ d, }8 d4 l T& B# ^, C- {. V# q2 L+ I3 r1 P* J
image.png' \; F3 c. ^ x; S. ?: ]. B
6 A; @8 r/ h& ? 第二种方法:通过网页访问esxi服务器授权开启SSH服务器
" R: d$ |3 ~4 N8 K
$ J, L6 c, y0 i8 B* G8 Z 访问esxi页面-->操作-->服务器-->启用安全Shell (SSH),即可通过客户端ssh远程访问esxi服务器。
) r! G5 J3 ~5 a% e' c' |( O! l! i8 t1 D* i( B7 _1 e+ s
image.png
4 R6 [( F. u3 D! q* H2 Y; o$ j8 ?! A- B" z5 n) B
第三种方法:通过vSphere Client设置esxi服务器开启SSH服务。 j: C; u* H8 d9 [8 ^+ {1 p P
5 |; ^* G. X( l Y: w: b 登录vSphere Client找到配置安全配置文件,右侧的服务属性。* } i4 D- k) X( v% S, M" ?
* X2 S: F' A# h3 P
image.png- z' w- L2 C2 |: g c
! z M) @# R) S. [( F5 U( C 找到SSH服务器点右下角的选项,启动服务器即可通过客户端连接esxi服务器
4 a+ w) u4 `' M7 \& L$ G n8 f5 J$ `1 t/ F; `
image.png
2 t r+ U2 |) x4 h* l L, x) _& M" W5 c) O2 g1 Z
二、客户端连接esxi服务器/ ?) F, |7 a! L) b( D
8 e; r' o1 o: A6 J+ A
( c) v$ w% z5 R% B! X; W0 W* s! L$ d* o, l: r0 M" {# N
image.png
8 x/ l8 m. S6 f* k
# D; @) d% \. Z( W7 [- Z% Q 这里我使用了本地PC安装了esxi服务器模拟故障,首先创建了一个虚拟机win7专业版,创建完成后,如下图
( _" ?8 ]! s7 T- P" A0 j$ H( c" h# ]# w- H- k2 j4 n, v0 W
image.png6 J+ A/ a: V" A/ C" {: r
[% a2 B; V$ D- X; ]6 [ 开始模拟丢失vmdk配置文件 5 n. a) b" P* P: g' Y% C
$ i0 q! M8 \3 b2 C' P+ P4 m image.png, L: p+ ]2 U u+ h. O0 n0 O9 p2 n
" E; H( r9 e& N8 N# J, s 这里模拟丢失vmdk文件,rm -rf win7.vmdk3 \5 @/ \, F [2 \% n. E% V
8 \: Q: M9 z! K6 Q% ^, @- o. ] image.png # p5 P( v# R- l6 u1 ~+ z, O0 d
, E. F5 z0 f7 l. M3 r$ m$ Z" _$ S: R6 m! R 打开虚拟机电源,会报错如下图' b: t7 U/ s0 ~4 v
( l8 ^8 L) z5 K6 i, h* M
image.png/ @8 ^* d; w" |- B6 i5 L) m+ @3 Z
y) {; B0 d# F3 Y, T& Y
% F. w/ U, F1 ~ W$ o' J6 q, j' t
' ^6 {1 }# ~, H& ~ vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk
9 C5 B! V8 A% ]; ~5 m3 O& P* F; c) ^' Q9 g1 H# ~# t' [
这条命令会创建一个vmdk虚拟机磁盘文件和vmdk配置文件# I! H6 q$ a+ [* h% U9 u: T* u
3 o% r( g& q/ F4 | 将temp.vmdk重命名为win7.vmdk1 ^& U4 ^4 G1 |3 D' D2 b" ~ I
3 H! n) |$ z. [0 q6 O# A8 t0 U
image.png
" U3 H4 s8 `2 W, ~7 J: Q2 f+ \3 t# v
编辑win7.vmdk,修改图中temp-flat.vmdk为win7-flat.vmdk,ddb.thinProvisioned = "1"注释或者删除。
: v S/ X# V5 F; G% m5 C
. P/ R& w f; G l5 w image.png
% I* ]' F: G# ?) U* Y$ Y/ P" N/ _, H2 N; R \9 ~
修改完后,开启虚拟机win7
8 C/ v4 V: N$ T; K! W% p/ }, F6 ?. k; r8 f
image.png
z4 T: A; w- ~! n9 q- a. Z* b6 }" |8 o8 a7 l
正常启动
# A0 h) p: ^: y6 ?: E) i0 Y
5 T! }7 s" `9 D% a l( ^/ D) q; W
5 o$ v6 o! n/ A, M" e8 i( R8 U! L
延伸:如果你的虚拟机目录下只剩下一个flat.vmdk文件怎么办,是否也能恢复系统。" T' R% I% \% Y- N
) l2 I+ Z. c8 f" @
这里一定要确保你esxi虚拟机的flat.vmdk文件存在而且没有被损坏,今天也测试了只有一个flat.vmdk文件也可以恢复系统。* U. ~# f5 u ~+ o" y1 ^
, G. H- P" b- c$ x- Z+ n N
前提是在原虚拟机目录。( Y0 @6 R+ V* v, _2 {2 ^& d/ V
; l/ M2 r0 N( C 执行:vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk生成配置文件) E! \0 S7 \, i8 I$ D6 r
# ^) q$ n9 [, n( }, T 配置文件的修改前面已经讲过,不会的请爬楼。
+ [3 ~* O( f( H |
4 d5 O7 K B+ K5 [2 Y0 Y; | 你正常创建了一个虚拟机,自动创建虚拟机,添加现有的虚拟磁盘6 L8 n9 [$ W3 I, x8 N1 ]
+ E& ~& _; T' H& {. h. {6 { image.png" X# a( d" m' }! {
7 E# d6 `1 k, U, H( I; { P( w 原目录只要有vmdk配置文件也能在新的虚拟机中添加虚拟磁盘(相当于迁移虚拟机了)+ d$ k2 ?3 D# }# A( K' S6 {0 G
6 o, D5 M8 G' f6 N5 b3 z7 E
image.png
) O4 g7 c" C# s4 H0 O! I4 ?- K, _" F0 |, x0 u
结果证明也可以恢复系统。 |
|