|
|
楼主 |
发表于 2021-8-19 17:28:56
|
显示全部楼层
公司生产环境中的一台esxi虚拟机,访问不了,第一时间查看机器属性发现是一台虚拟机,登录vcenter定位宿主机位置。重置虚拟机电源后显示丢失vmdx文件。下面就开始通过flat.vmdk恢复esxi虚拟机。! D. q0 k" \2 d- q; P
2 n0 A9 j" M H$ k- G% c, t
一、需要开启esxi服务器的ssh远程访问
7 f& c! Z$ i! |8 N7 t1 L6 V+ Y
/ U+ u- y$ s! \8 S0 Y 开启esxi服务器方法有三种:; T' j; B% k2 Z+ N. l
& ]" y! l- y; Z 第一种方法:通过带外访问esxi! L" X' n- ?$ d; @
7 s- x4 u# ^6 R' |# H
1,启动控制台
# P5 K7 q8 K5 `& H0 k- m9 u: ^7 V+ B6 ^# Q' w5 {
image.png- k5 i$ e) Z( t) V0 c
# F; k: T5 K7 Z2 e1 R6 C' d2 x 2、按F2输入root密码,回车。2 `8 B3 [2 T4 y* r
& u! A O& x6 l: ^
image.png
3 E+ W2 Z8 L2 [: H) I1 C0 m% F$ _4 ]2 s& K
3、找到Troubleshoting Options回车
: Q! {/ r' o0 ^$ B7 |& ?$ _6 }3 o( M# Q# x4 s/ w# T
image.png2 [% z8 I& C/ i+ J/ ^% i/ q
- K( U8 C) z; `& @0 {8 C" ^+ e" i
4、选择Enable SSH,回车,右侧显示SSH is Enabled即为开启了SSH
6 ^) B" A' \+ b7 I, f
# `/ ~5 b' ~; g* z image.png% B6 l/ R2 ]& V) T
: `& r6 a/ p# R6 O+ O
第二种方法:通过网页访问esxi服务器授权开启SSH服务器+ R& P- m( S; C) U6 L: K( I
& Q% S6 u) Y, e 访问esxi页面-->操作-->服务器-->启用安全Shell (SSH),即可通过客户端ssh远程访问esxi服务器。( s1 t8 p$ e6 E7 |
7 x* @. ~6 F Y7 ^& n
image.png. y: X' w* q+ l; u
" E( j* l, ?( t6 ? 第三种方法:通过vSphere Client设置esxi服务器开启SSH服务。
7 e/ R* i' Q' X/ n! I2 b1 f' O& B; K+ x, C/ p
登录vSphere Client找到配置安全配置文件,右侧的服务属性。
* f) d9 q; P! }2 I
; \1 b B. ]7 _; S4 J- w6 z image.png7 C, O( a8 C6 o7 `3 |' J3 k
7 w+ W: T9 e7 l& g( V" R
找到SSH服务器点右下角的选项,启动服务器即可通过客户端连接esxi服务器( k1 F9 B/ o) `6 I+ ~% z
5 m& m3 h. l: z( E! O" c) X
image.png( z8 J! w# F/ H1 q% p
! I1 `2 D& U/ I/ g/ P2 c9 w: S 二、客户端连接esxi服务器
9 F# y6 r% }7 l9 v: ]0 H4 ^
; w9 s9 y9 B' K& H* ?
3 x9 P4 }) I3 G* i% z
0 g( a- b" M+ ~$ k# T1 l, t image.png1 P7 C. P2 k& k7 C
" u0 n% z6 `1 \# \/ y, \" A( g8 e
这里我使用了本地PC安装了esxi服务器模拟故障,首先创建了一个虚拟机win7专业版,创建完成后,如下图
. h8 {! o, L( }0 X' d* D0 {# s1 Y, A7 \
image.png$ e' G }7 Y9 P; [. c* j
5 d4 e! h$ Z$ ~
开始模拟丢失vmdk配置文件 2 E8 E& v1 z; E# V1 n6 C7 X
: G0 T1 W0 Q$ c" ]+ p; G" \5 w" O image.png
# z3 L2 v; j9 Y# \
" |' ^$ `+ w' u3 y. j! W- e, L5 j 这里模拟丢失vmdk文件,rm -rf win7.vmdk& v$ w( f1 ^ K
4 |1 H) {; Z$ `$ k image.png 7 n' `6 j v6 Q9 P
- @' }; a& c0 ~, Y9 Y5 L! Z7 T
打开虚拟机电源,会报错如下图
( B1 s5 B1 ?4 m( d( |& N; M
/ g- k2 Q+ |9 d image.png: L0 H, [8 b9 b0 \. S" t: H
8 f0 ?0 l n0 D) v+ h+ ?
) z I/ ~! m+ l" n% [
9 Z% L5 ~ L- M1 Q! l( c vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk
0 H# G4 _& M1 H _" n' O% z( ^' B2 t8 L# Q1 K/ i
这条命令会创建一个vmdk虚拟机磁盘文件和vmdk配置文件
' X, v1 {3 e! [0 y5 c0 f% w7 p$ ?1 L- I
将temp.vmdk重命名为win7.vmdk/ I" N4 p$ B5 r' W& ], l
$ T$ U8 D2 }) {% \. W" y image.png) Q: A3 C j) x3 Z* Z9 u1 \
% e' |! k, F" S+ [/ O* q4 p
编辑win7.vmdk,修改图中temp-flat.vmdk为win7-flat.vmdk,ddb.thinProvisioned = "1"注释或者删除。
( T6 N3 S$ g# _- @8 U+ ]; t1 P3 k/ M* d
image.png $ c7 g' z4 g) f' u
1 g# i. k7 X9 J* _' t
修改完后,开启虚拟机win7
. X/ V& \+ U( t& D2 S( d+ D- `0 R4 x9 K7 e P. X
image.png8 t) ~& b8 J" A9 q( }5 j
% r; y$ n) [4 Q' Y+ p2 ~ 正常启动
$ }) L3 f$ w% a& \, s. o* `6 |5 c4 G. p3 g" R
' _. X0 H- W5 r F8 Y7 ]1 Q
9 G- E7 A3 J1 s' C* L0 o" z6 o* H
延伸:如果你的虚拟机目录下只剩下一个flat.vmdk文件怎么办,是否也能恢复系统。
3 S. [) e* h6 T% n" {9 T. O$ f" g& `
这里一定要确保你esxi虚拟机的flat.vmdk文件存在而且没有被损坏,今天也测试了只有一个flat.vmdk文件也可以恢复系统。' V* t l/ _& ~
8 q- q6 |- _* H0 s3 s" q
前提是在原虚拟机目录。
. Z+ k5 y. s% Q: y* ` Q0 T$ y& [6 `" S* Z u# W2 [
执行:vmkfstools -c 107374182400 -a lsilogic -d thin temp.vmdk生成配置文件
2 Y, L5 t& {5 A, ^: e; ?: C$ ~1 [, t( C+ r
配置文件的修改前面已经讲过,不会的请爬楼。; [* b4 u& f. {) F; I2 R
# x. a* l7 U0 w4 a; X0 D% x5 X
你正常创建了一个虚拟机,自动创建虚拟机,添加现有的虚拟磁盘
# Q6 O2 O z; d M- d6 h- H
% v# ?" [1 ~& J5 y/ J9 y: \' f image.png
& ]; q, @ r5 P9 D( @7 n9 V8 U$ o1 y& F
原目录只要有vmdk配置文件也能在新的虚拟机中添加虚拟磁盘(相当于迁移虚拟机了)) ]5 w- l! B; \
' k3 }% P0 i7 v3 Z
image.png
. d* i. o. a i" K2 y
- b$ ?; Y8 E, O 结果证明也可以恢复系统。 |
|