بازیابی اطلاعات سرور مجازی esxi با فایل flat.vmdk
بازیابی اطلاعات سرور مجازی esxi با روش های مختلفی صورت میپذیرد ولی زمانی که یک سرور را به اشتباه حذف میکنید تمام اطلاعات سرور مجازی , هارد , فایل های رجیستر و … حذف میشوند و تنها یک فایل باقی میماند به نام vmname-flat.vmdk که برای بازگردانی اطلاعات سرور تا انتهای مقاله با ما همراه باشید.
مجازی ساز esxi
مجازی ساز esxi ساخته شده توسط شرکت vmware میباشد که در دنیای مجازی سازی جز اولین ها است و از قدرت های بسیار زیادی برخوردار است. esxi در سال های گذشته با نام esx شناخته میشد که برای اتصال به آن باید از نرم افزار های واسط شرکت vmware برای اتصال به مجازی ساز استفاده میکردیم ولی در نسخه 6.5 به بعد این مجازی ساز آنلاین شد.
esxi شامل داده های طبقه بندی شده زیادی میباشد که در کنار دیگر محصولات شرکت vmware میتوان به آن به عنوان مجازی ساز بی رقیب لقب داد . کار کردن با این ماشین ساز مجازی دشور نیست ولی در بعضی از مواقع ممکن است مانند موضوع این مقاله کمی کار سخت شود.
بازیابی اطلاعات سرور مجازی
در مقالات قبلی در مورد بازیابی ماشین مجازی آلوده به باج افزار آموزش تهیه کردیم که تفاوت آن با این مقاله بحث دیگریست. زمانی که یک ماشین مجازی ( سرور مجازی) در حال فعالیت است و به هر دلیلی مانند باج افزار وقتی دسترسی به داده نداشته باشیم فایل های زیادی برای ریجستر و ساخت مجدد آن وجود دارد.
هر ماشین مجازی شامل چندین فایل است مانند فایل های vmx برای رجیستر شدن ماشین ها و اطلاعات رجیستری آن , vmdk و flat-vmdk که حاوی اطلاعات ماشین مجازی و هارد دیسک اختصاص داده شده به سرور مجازی هستند.
در بیشتر مواقع برای دسترسی به داده میتوان سرور مجازی را خاموش کرد و بعد از unregister کردن سرور اقدام به اختصاص فایل های اصلی آن به عنوان پارتیشن دوم به یک سرور دیگر است که تمام اطلاعات در دسترس قرار میگیرد.
ولی زمانی که بصورت ناخودآگاه یک فولدر را به دلایل تغییر نام و … به اشتباه حذف کنید , بازیابی اطلاعات سرور مجازی بسیار دشوار میشود.
ما در این مقاله بصورت عمدی فولدر یک ماشین مجازی در حال فعالیت را حذف میکنید و سپس اطلاعات آن را مجدد بازیابی و سرور مجازی را روشن میکنیم.
حذف اطلاعات سرور مجازی
برای شروع فرایند بازیابی اطلاعات ماشین مجازی , ما 2 ویندوز سرور نسخه 2016 در سرور نصب کردیم. سپس نام یکی را win-test-famaserver و دیگری را win-test-live-famaserver قرار دادیم . یکی برای آموزش تصویری و دیگری برای آموزش ویدیویی.
نکته:صرفا این آموزش برای زمانی است که شما به اشتباه یک فولدر را حذف کنید که ماشین مجازی در آن در حال فعالیت باشد , که این مورد به دلیل تغییر نام ماشین و عدم rename شدن نام اولیه در هارد بسیار پیش میاید که شبیه سازی ما در این ضمینه میباشد.
ابتدا ماشین مجازی را مشاهده میکنیم سپس به مسیر storage و Brows رفته سپس فولدر ماشین مجازی را حذف میکنیم.
پس زمانی که نام ماشین مجازی شما به این شکل در آمد به احتمال زیاد اگر خودتان به اشتباه فایلی را حذف نکردید با مشکل Faild شدن هارد سرور مواجه هستید که اگر دیتا نداشته باشید عملا امکان بازیابی وجود ندارد.
نکته 2: این روش برای بازیابی اطلاعات سرور مجازی که درگیر باج افزار شده نیز یکسان میباشد زیرا باج افزار ها امکان کد کردن فایل های vmname-flat.vmdk را به دلیل حجم بالا ندارند و میتوانید با داشتن این فایل اقدام به بازگردانی داده کنید.
برای شروع فرایند بازیابی نیاز به دسترسی SSH در سرور ESXI داریم.
بازیابی اطلاعات سرور مجازی esxi با فایل flat.vdmk
برای فرایند بازیابی اطلاعات نیاز به داشتن دسترسی ssh داریم و به دلیل اینکه در مجازی ساز ESXI بصورت پیشفرض سرویس ssh غیر فعال است مراحل زیر را طی میکنیم تا سرویس ssh را فعال و به آن متصل شویم.
ابتدا وارد بخش Manage سپس تب Services و روی سرویس SSH کلیک و در پایان دکمه استارت را میزنیم.
در ابتدای شروع مراحل به ssh متصل میشویم و با دستورات زیر فایروال را غیر فعال میکنیم.
/etc/init.d/slpd stop esxcli network firewall ruleset set -r CIMSLP -e 0 chkconfig slpd off
معمولا باج افزار ها با سرویس SLP اقدام به کد کردن دیتاهای سرور میکند پس در ابتدا آن را غیر فعال میکنیم.
مجموعه قوانین CIMSLP را غیر فعال و مجدد سرویس SLP را خاموش میکنیم تا بعد از بارگزاری مجدد فعال نشود.
نکته 3: این دستورات برای جلوگیری از حمله باج افزار ها و ویروس CryptoLocker میباشد و در صورتی که صرفا قصد بازیابی اطلاعات سرور را دارید نیاز به وارد کردن آن ندارید.
برای مشاهده فایل های سیستمی باقیمانده به مسیر زیر میرویم تا اطلاعات موجود از سرور را مشاهده کنیم. هدف ما فایل vmname-flat.vdmk هست به به فایل های دیگر نیازی نداریم.
دستور زیر را وارد میکنیم 🙁 بجای datastore-name نام هارد و بجای vm-name نیز نام ماشین مجازی را جایگزین میکنیم)
cd /vmfs/volumes/[datstore-name]/[vm-name]
دستور برای سرور ما بعد از جایگزینی بصورت زیر است و در صورتی که با پیدا کردن هارد دیسک مشکل دارید حتما ویدیو آموزشی را تماشا کنید.
cd /vmfs/volumes/640c7bbb-da9b49d0-e09d-3cd92bef4f34/win-test-famaserver
همانگونه که مشاهده میکنید در این دایرکتوری ما یک فایل با نام win-test-famaserver-flat.vmdk داریم که حجم فایل آن 42949672960 میباشد و این حجم را باید در مراحل بعدی استفاده کنیم.
نکته4: در صورتی که در فولدر شما فایل vmname.vmdk وجود داشت با دستور rm -rf vmname.vmdk را حذف کنید و تنها فایل vmname-flat.vmdk باید باقی مانده باشد و این فایل را هرگز حذف نکنید.
در مرحله بعدی دستور زیر را وارد کنید و توجه داشته باشید که عدد حجم ذخیره شده فایل vmname-flat.vmdk را جایگزین عددی که در دستور است کنید.
vmkfstools -c 42949672960 -d thin temp.vmdk
بعد از وارد کردن دستور بالا باید خروجی زیر به نمایش گذاشته شود و 2 فایل با نام های temp.vmdk و temp-flat.vmdk به مسیر فعلی جایگزین شده باشد.
در مرحله بعدی در صورتی که با دستورات لینوکس و ویرایشگر vim آشنایی دارید فایل temp.vmdk را با دستور زیر برای ویرایش باز کنید.
vi temp.vmdk
در غیر اینصورت با نرم افزار های Winscp یا Bitsivise به آدرس ssh سرور متصل شوید و از منوی فایل به دایرکتوری که در آن هستیم رفته و فایل temp.vmdk را برای ویرایش با نوت پد باز کنید.
در خط نهم این فایل مقداری داریم با عنوان temp-flat.vmdk که باید این مقدار را با نام اصلی فایل flat.vmdk یعنی ( win-test-famaserver-flat.vmdk) جایگزین کنیم و همچنین خط 19 این فایل با مقدار ddb.thinProvisioned = “1” را هم حذف میکنیم و فایل را ذخیره میکنیم.
فایل ویرایش شده باید مانند فایل زیر باشد:
# Disk DescriptorFile version=1 encoding="UTF-8" CID=fffffffe parentCID=ffffffff createType="vmfs" # Extent description RW 83886080 VMFS "win-test-famaserver-flat.vmdk" # The Disk Data Base #DDB ddb.adapterType = "lsilogic" ddb.geometry.cylinders = "5221" ddb.geometry.heads = "255" ddb.geometry.sectors = "63" ddb.longContentID = "ce66115ae3690421c19ac6a4fffffffe" ddb.uuid = "60 00 C2 99 08 1b 06 f5-fb 61 3d 9e b4 30 4a 19" ddb.virtualHWVersion = "14"
سپس با دستور زیر فایل temp-flat.vmdk را حذ میکنیم.
rm -rf temp-flat.vmdk
با دستور زیر فایل temp.vmdk را با نام ماشین مجازی خود rename میکنیم .
mv temp.vmdk win-test-famaserver.vmdk
فایل temp.vmdk را ویرایش میکنیم با نام اصلی ماشین با این تفاوت که قسمت -flat را در نام درج نمیکنیم مانند تصویر زیر.
سپس در محیط ssh دستور زیر را وارد میکنیم و بجای vmname.vmdk نام ماشین را جایگزین میکنیم.
vmkfstools -e vmname.vmdk
دستور جایگزین شده برای ما:
vmkfstools -e win-test-famaserver.vmdk
بعد از موفق بودن دستور باید عبارت زیر را مشاهده کنید
aserver.vmdk Disk chain is consistent.
در اینجا کار تمام است ولی به دلیل آنکه ما صرفا یک فایل filename-flat.vmdk داشتیم فایل .vmx را برای رجیستر شدن ماشین مجازی نداریم.
بصورت سمپل چون یک vm ویندوزی دیگر در سرور داریم فایل .vmx آن را کپی میکنیم و مقادیر آن را با نام ماشین مجازی بازیابی شده جایگزین میکنیم.
نکته: در صورتی که امکان دسترسی به سرور دیگری ندارید میتوانید محتوایت xample فایل را از اینترنت دانلود کنید و یا یک سرور مجازی دیگر ایجاد کنید و سپس اقدام به کپی کردن فایل .vmx آن کنید و در مرحله پایانی نام ها را جایگزین کنید.
ما چون یک سرور مجازی دیگر برای تست لایو ویدیویی آماده داشتیم فایل آن را دانلود کردیم و برای ویرایش آن اقدام میکنیم.
برای ویرایش هر نامی که با نام ماشین مجازی قبلی وجود داشت را با نام ماشین مجازی جدید ویرایش میکنیم.و سپس فایل ویرایش شده را در محل ذخیره سازی سرور بازیابی شده آپلود میکنیم.
سپس به لیست virtual machine در مجازی ساز esxi مراجعه میکنیم و ماشین مجازی قبلی که به مشکل خورده بود را حذف unregister میکنیم.
در مرحله آخر به بخش storage و تب datastore browser رفته و به آدرس ذخیره سازی ماشین مجازی بازیابی شده میرویم و با کلیک راست بر روی filename.vmx و گزینه register vm ماشین مجازی را رجیستر و سپس روشن میکنیم.
سپس در لیست ماشین های مجازی میتوانیم نام ماشین مجازی win-test-famaserver را مشاهده کنیم و آن را روشن کنیم.
کار تمام است و سرور مجازی ما بازیابی شد و دسترسی به تمام محتویات فایل ها و ماشین قبلی با همان مشخصات و آدرس های آیپی و … داریم.
جمع بندی:
در این مقاله به حذف عمدی یک ماشین مجازی در حال فعالیت پرداختیم تا محیطی را شبیه سازی کنیم که مدیر سرور زمانی که بصورت سهوی و اشتباه یک فولدر که مربوط به یک ماشین است را حذف میکند , نگران از دست رفت دیتا و اطلاعات آن ماشین نباشید چرا که قابل بازگردانی است.
نکته دیگر برای سرور هایی که دچار باج افزار شدند تمام اطلاعات فایل های .vmx و فایل های کوچکتر از 5 گیگ آن ها کد میشود و صرفا فایل اصلی ما filename-flat.vmdk بخاطر حجم بالایی که دارد امکان کد شدن آن وجود ندارد و ما از طریق همین فایل برای 2 هدف سرور مجازی مان را ریکاوری کردیم.
به چه دلیل بعد از حذف فولدر ذخیره ساز فایل flat.vmdk حذف نشد؟
زیرا سرور در حال فعالیت بود و فایل اصلی را نتوانست حذف کند.در صورتی که در این شرایط قرار گرفتید حتما اول از فایل filename-flat.vmdk بک آپ بگیرید سپس اقدام به بازیابی اطلاعات سرور مجازی کنید.
بعد از آپلود فایل .vmx سرور من روشن نمیشود. دلیل چیست؟
بعد از آپلود فایل vmx باید مطمن شوید که در محتویات فایل , نام سرور مجازی جدید ( vmnname.vmdk ) جایگزین نام قبلی شده باشد و آدرس هارد سرور به درستی درج شده باشد زیرا ممکن است در یک سرور چند هارد وجود داشته باشد. همچنین در صورت مانت شدن ایزو حتما آدرس فایل مانت شده صحیح باشد.
هنگام زدن دکمه register vm ارور قبلا با این نام ذخیره شده نمایش داده میشود؟
قبل از مرحله رجیستر ماشین مجازی باید سرور قبلی را unregister کنید.
فاماسرور