خطای No Hypervisor Found یکی از رایج ترین مشکلاتی است که هنگام نصب ESXi یا اجرای ماشین مجازی روی آن با آن روبرو میشوید. این خطا معمولا موقع نصب ESXi یا هنگام روشن کردن یک ماشین مجازی 64 بیتی ظاهر میشود و کار را متوقف میکند. تجربه نشان میدهد که این یکی از پرتکرارترین مشکلات کاربران تازه کار در راه اندازی ESXi است. خبر خوب این است که علت آن تقریبا همیشه مشخص است و به سادگی رفع میشود.
در این مقاله ابتدا میبینیم این خطا دقیقا یعنی چه و چرا رخ میدهد، سپس گام به گام راه حل ها را برای ESXi نسخهٔ 7 و 8 مرور میکنیم؛ از فعال سازی مجازی سازی در بایوس تا تنظیمات مربوط به مجازی سازی تودرتو. با دنبال کردن این مراحل، مشکل در بیشتر موارد کاملا برطرف میشود.
ESXi یک هایپروایزر است؛ یعنی نرم افزاری که مستقیم روی سخت افزار اجرا میشود و ماشین های مجازی را مدیریت میکند. برای اینکه ESXi بتواند ماشین مجازی بسازد و اجرا کند، به یک قابلیت سخت افزاری در پردازنده به نام مجازی سازی سخت افزاری نیاز دارد که در پردازنده های اینتل VT-x و در پردازنده های AMD به نام AMD-V شناخته میشود.
وقتی این قابلیت در بایوس غیرفعال باشد یا پردازنده آن را در دسترس قرار ندهد، ESXi نمیتواند هایپروایزر را فعال کند و پیام No Hypervisor Found یا خطای مشابهی مثل «hardware virtualization is not enabled» را نشان میدهد. پس این خطا در واقع میگوید: پردازنده یا بایوس، ابزار لازم برای مجازی سازی را در اختیار من نگذاشته است.
قبل از رفتن سراغ راه حل، خوب است بدانید این خطا از کجا می آید. شناخت علت کمک میکند به جای آزمون و خطا، مستقیم سراغ ریشهٔ مشکل بروید. این خطا معمولا یکی از این چند علت را دارد.
اولین و رایج ترین علت، غیرفعال بودن مجازی سازی سخت افزاری در بایوس است. بسیاری از مادربردها این قابلیت را به صورت پیش فرض غیرفعال میگذارند و کاربر باید دستی آن را روشن کند. علت دوم، اجرای ESXi به صورت تودرتو داخل یک ماشین مجازی دیگر است، جایی که قابلیت مجازی سازی به لایهٔ داخلی منتقل نشده است. علت سوم، ناسازگاری پردازنده با نسخهٔ ESXi است؛ نسخه های جدید مثل 7 و 8 برخی پردازنده های قدیمی را کنار گذاشته اند. و علت چهارم که کمتر رخ میدهد، اعمال نشدن کامل تغییرات بایوس به دلیل نبود یک خاموش و روشن کامل است.
در بیشتر موارد، مشکل شما یکی از دو علت اول است و با فعال کردن مجازی سازی حل میشود. اما اگر بعد از انجام همهٔ مراحل باز هم خطا دیدید، احتمالا با ناسازگاری سخت افزار روبرو هستید که در بخش های بعد به آن میپردازیم.
برای اینکه راه حل ها را بهتر درک کنید، لازم است بدانید این قابلیت دقیقا چه کاری انجام میدهد. مجازی سازی سخت افزاری مجموعه ای از دستورات ویژه در پردازنده است که به هایپروایزر اجازه میدهد ماشین های مجازی را با کارایی بالا و ایزوله اجرا کند، بدون اینکه سیستم عامل میهمان بفهمد روی یک ماشین مجازی در حال اجراست.
در پردازنده های اینتل این فناوری Intel VT-x نام دارد و در پردازنده های AMD به آن AMD-V یا SVM میگویند. بدون این قابلیت، هایپروایزری مثل ESXi یا نمیتواند اجرا شود یا مجبور است از روش های نرم افزاری بسیار کند استفاده کند که برای محیط عملیاتی مناسب نیست. به همین دلیل ESXi اجرای ماشین مجازی 64 بیتی را بدون VT-x یا AMD-V به کلی مسدود میکند و همان پیام No Hypervisor Found را نشان میدهد.
یک فناوری مرتبط دیگر Intel VT-d یا IOMMU است که برای انتقال مستقیم دستگاه های سخت افزاری (مثل کارت شبکه یا کارت گرافیک) به ماشین مجازی استفاده میشود. این قابلیت برای رفع خطای اصلی ضروری نیست، اما اگر قصد استفاده از Passthrough دارید، بهتر است آن را هم فعال کنید.
مهم ترین و رایج ترین راه حل، فعال کردن مجازی سازی سخت افزاری در بایوس یا UEFI سرور است. مراحل کلی به این صورت است:
در بسیاری از موارد، همین یک تغییر مشکل را کامل برطرف میکند و ESXi بعد از بوت مجدد بدون خطا کار میکند. اگر گزینهٔ مجازی سازی را پیدا نکردید، بایوس مادربرد را به آخرین نسخه به روزرسانی کنید، چون گاهی این گزینه در نسخه های قدیمی پنهان یا محدود است.
یکی از دلایلی که کاربران این گزینه را پیدا نمیکنند، این است که هر سازندهٔ مادربرد یا سرور نام و مسیر متفاوتی برای آن دارد. در جدول زیر رایج ترین محل ها آورده شده تا سریع تر پیدایش کنید.
| سازنده | مسیر و نام رایج گزینه |
|---|---|
| اینتل (مادربرد دسکتاپ) | Advanced > CPU Configuration > Intel Virtualization Technology |
| HP / HPE سرور | System Options > Processor Options > Intel VT-x |
| Dell سرور | Processor Settings > Virtualization Technology |
| Lenovo / IBM | Advanced > CPU Setup > Intel VT یا Intel VT-d |
| مادربرد AMD | Advanced > CPU Configuration > SVM Mode |
| ASUS / Gigabyte | Advanced > CPU Configuration > SVM یا Intel Virtualization |
اگر باز هم گزینه را ندیدید، ممکن است بایوس شما در حالت ساده (Basic) باشد؛ دنبال کلیدی برای رفتن به حالت پیشرفته (Advanced Mode) بگردید. برخی سرورهای سازمانی هم این تنظیم را از طریق کنترل پنل مدیریت از راه دور (مثل iDRAC در Dell یا iLO در HP) در دسترس میگذارند که میتوانید بدون ورود مستقیم به بایوس آن را تغییر دهید.
بعد از فعال کردن VT-x یا AMD-V و ذخیرهٔ تنظیمات، سرور را کاملا خاموش و سپس روشن کنید، نه اینکه فقط ری استارت نرم بزنید. برخی مادربردها تغییر وضعیت مجازی سازی را تنها پس از یک چرخهٔ کامل خاموش و روشن اعمال میکنند و اگر فقط ری استارت کنید، ممکن است تصور کنید تنظیم اثری نداشته در حالی که فقط اعمال نشده است.
گاهی ESXi را به صورت آزمایشی داخل یک ماشین مجازی دیگر (مثلا روی VMware Workstation یا یک ESXi دیگر) نصب میکنید. در این حالت، حتی اگر بایوس فیزیکی VT-x را فعال داشته باشد، باید این قابلیت به ماشین مجازیِ میزبانِ ESXi هم منتقل شود؛ به این کار مجازی سازی تودرتو یا Nested Virtualization میگویند.
برای فعال کردن آن، در تنظیمات ماشین مجازیِ ESXi، گزینهٔ «Expose hardware assisted virtualization to the guest OS» یا معادل آن را فعال کنید. در VMware Workstation این گزینه در تنظیمات پردازندهٔ ماشین مجازی قرار دارد. بدون این تنظیم، ESXiِ تودرتو نمیتواند ماشین مجازی 64 بیتی اجرا کند و همان خطای No Hypervisor را میدهد.
گاهی مشکل از خودِ پردازنده است. نسخه های جدید ESXi مثل 7 و 8 نیازمندی های سخت افزاری سخت گیرانه تری دارند و برخی پردازنده های قدیمی را دیگر پشتیبانی نمیکنند. اگر بعد از فعال کردن VT-x باز هم خطا میگیرید، ممکن است پردازندهٔ شما با نسخهٔ ESXi موردنظر سازگار نباشد.
در این حالت دو کار میتوانید انجام دهید: اول، فهرست سازگاری سخت افزار (HCL) شرکت سازندهٔ ESXi را بررسی کنید تا مطمئن شوید پردازنده و مادربرد شما پشتیبانی میشوند. دوم، اگر سخت افزار قدیمی است، ممکن است لازم باشد از نسخهٔ قدیمی تر ESXi استفاده کنید که با آن سازگار است. برای محیط عملیاتی، بهترین کار استفاده از سرور با سخت افزار تاییدشده است.
نکتهٔ مهم این است که ESXi 8 نسبت به نسخهٔ 7 سخت گیرانه تر شده و فهرست پردازنده های پشتیبانی شده را محدودتر کرده است. برخی پردازنده هایی که روی ESXi 7 کار میکردند، در نسخهٔ 8 کنار گذاشته شده اند یا فقط با هشدار نصب میشوند. پس اگر روی سخت افزار نسبتا قدیمی به مشکل خوردید، ممکن است ESXi 7 گزینهٔ مناسب تری باشد.
علاوه بر پردازنده، ESXi 8 به حداقل حافظه و فضای بوت بیشتری هم نیاز دارد و برای بوت از رسانه های کوچک مثل کارت SD محدودیت هایی اعمال کرده است. بنابراین قبل از ارتقا به نسخهٔ 8، حتما نیازمندی های رسمی آن نسخه را بررسی کنید تا بعد از نصب با خطاهای غیرمنتظره روبرو نشوید. اگر هدف شما یک محیط پایدار و بدون دردسر است، انتخاب سخت افزاری که به طور رسمی در فهرست سازگاری همان نسخه قرار دارد، بهترین تصمیم است.
در موارد نادر، با وجود فعال بودن مجازی سازی و سازگاری سخت افزار، باز هم خطا ادامه پیدا میکند. در این حالت چند بررسی تکمیلی کمک میکند.
اول، مطمئن شوید بایوس مادربرد به آخرین نسخه به روز شده است، چون گاهی باگ های نسخه های قدیمی بایوس باعث اعمال نشدن درست تنظیم مجازی سازی میشوند. دوم، اگر از یک سرور مجازی یا اختصاصی اجاره ای استفاده میکنید که خودتان به بایوس دسترسی ندارید، این تنظیم را از ارائه دهندهٔ سرور بخواهید؛ در بسیاری از موارد فعال سازی VT-x باید توسط تیم فنی دیتاسنتر انجام شود. سوم، بررسی کنید که در تنظیمات بایوس، حالت بوت (Legacy یا UEFI) با رسانهٔ نصب ESXi هماهنگ باشد، چون ناهماهنگی حالت بوت هم میتواند منجر به خطاهای مشابه در نصب شود.
اگر همهٔ این موارد را بررسی کردید و باز هم مشکل پابرجاست، به احتمال زیاد پردازندهٔ شما با نسخهٔ موردنظر ESXi سازگار نیست و بهترین راه، استفاده از سخت افزار تاییدشده یا نسخهٔ سازگار ESXi است.
گاهی این مشکل با پیام های کمی متفاوت ظاهر میشود، اما ریشهٔ همه یکی است. اگر هنگام روشن کردن یک ماشین مجازی 64 بیتی پیام «This host supports Intel VT-x, but VT-x is disabled» یا «hardware virtualization is not enabled» را دیدید، دقیقا همان مشکل غیرفعال بودن مجازی سازی در بایوس است و راه حلش یکسان است.
یک نکتهٔ مهم: بعد از فعال کردن VT-x در بایوس، حتما سرور را کاملا خاموش و روشن کنید، نه فقط ری استارت نرم؛ چون برخی مادربردها تغییر این تنظیم را تنها بعد از یک خاموش و روشن کامل اعمال میکنند. اگر روی یک سرور مجازی یا اختصاصی کار میکنید و خودتان به بایوس دسترسی ندارید، فعال کردن این تنظیم را از ارائه دهندهٔ سرور بخواهید.
اگر میخواهید قبل یا بعد از تغییر بایوس مطمئن شوید مجازی سازی فعال است، در سیستم عامل های لینوکس میتوانید با یک دستور ساده آن را بررسی کنید. اگر خروجی عددی بزرگتر از صفر باشد، یعنی پردازنده از مجازی سازی پشتیبانی میکند:
# بررسی پشتیبانی VT-x یا AMD-V در لینوکس egrep -c '(vmx|svm)' /proc/cpuinfo
در این دستور vmx مربوط به اینتل و svm مربوط به AMD است. اگر خروجی صفر باشد، یا مجازی سازی در بایوس غیرفعال است یا پردازنده از آن پشتیبانی نمیکند. این بررسی سریع کمک میکند بدانید مشکل از بایوس است یا سخت افزار.
برای رفع سریع خطای No Hypervisor Found این ترتیب را دنبال کنید تا کمترین زمان را صرف کنید.
وارد بایوس شو و مطمئن شو Intel VT-x یا AMD-V روی Enabled است، سپس ذخیره و ری استارت کن.
اگر ESXi داخل یک ماشین مجازی است، گزینه انتقال مجازی سازی سخت افزاری به گست را فعال کن.
اگر باز خطا داشتی، سازگاری پردازنده با نسخه ESXi را بررسی و در صورت نیاز نسخه مناسب را انتخاب کن.
برای جزئیات نیازمندی های سخت افزاری هر نسخه هم میتوانید به مستندات رسمی ESXi مراجعه کنید.
جمع بندی: خطای No Hypervisor Found در ESXi تقریبا همیشه به یک چیز برمیگردد: در دسترس نبودن مجازی سازی سخت افزاری. با فعال کردن VT-x یا AMD-V در بایوس، مشکل در بیشتر موارد حل میشود. اگر ESXi را به صورت تودرتو نصب کرده اید، فعال کردن انتقال مجازی سازی به ماشین مجازی هم ضروری است.
اگر بعد از این کارها همچنان خطا میگیرید، سازگاری پردازنده با نسخهٔ ESXi را بررسی کنید، چون نسخه های 7 و 8 سخت افزار قدیمی را پشتیبانی نمیکنند. با یک سخت افزار سازگار و بایوس درست تنظیم شده، ESXi بدون مشکل اجرا میشود. جمع بندی عملی این است که در بیش از نود درصد موارد، فعال کردن VT-x یا AMD-V در بایوس به تنهایی مشکل را حل میکند و بقیهٔ راه حل ها فقط برای شرایط خاص لازم میشوند.
سرور مجازی و اختصاصی با سخت افزار سازگار و پشتیبانی؛ بقیه اش با ما.
این ارور به این معناست که سیستم شما نتوانسته است هایپروایزر ESXi را به درستی شناسایی یا بارگذاری کند. این مشکل معمولاً زمانی رخ میدهد که نصب ESXi با موفقیت انجام نشده باشد یا سیستم به دلایل مختلفی مانند ناسازگاری سختافزار، تنظیمات نادرست BIOS، یا مشکلات نرمافزاری قادر به شناسایی هایپروایزر نباشد. این خطا میتواند نشاندهنده این باشد که سیستم در حالت بوت به جای بارگذاری ESXi، مستقیم به سیستمعامل اصلی یا حالت بدون هایپروایزر میرود.
در بیشتر موارد، غیرفعال بودن مجازی سازی سخت افزاری (Intel VT-x یا AMD-V) در بایوس یا UEFI سرور است. با فعال کردن آن مشکل معمولا برطرف میشود.
نام آن بسته به مادربرد متفاوت است؛ دنبال Virtualization Technology یا VT-x یا SVM Mode بگردید. اگر نبود، بایوس را به آخرین نسخه به روزرسانی کنید چون گاهی در نسخه های قدیمی محدود است.
چون مجازی سازی سخت افزاری به ماشین مجازیِ میزبانِ ESXi منتقل نشده است. باید در تنظیمات آن ماشین مجازی، انتقال مجازی سازی به گست (Nested) را فعال کنید.
خیر. نسخه های ۷ و ۸ نیازمندی های سخت افزاری سخت گیرانه تری دارند و برخی پردازنده های قدیمی را پشتیبانی نمیکنند. قبل از نصب، سازگاری سخت افزار را بررسی کنید.
نسخه 7 آپدیت 3 روی سرور های gen8 و gen9 نصب میگردد.
در لینوکس با دستور egrep -c ‘(vmx|svm)’ /proc/cpuinfo بررسی کنید؛ خروجی بزرگتر از صفر یعنی پشتیبانی وجود دارد. اگر صفر بود، یا بایوس غیرفعال است یا پردازنده پشتیبانی نمیکند.
فاماسرور