লিনাক্স, ভার্চুয়ালবক্স ফ্রিজ, অনচেকড MSR এরর
আপডেট: ২৮ নভেম্বর, ২০২৫
আমার লেটেস্ট ইনস্টলমেন্ট অফ উইর্ড-এ স্বাগতম। কথা হলো, আপনি লিনাক্স ব্যবহার করছেন, সে হোক উবুন্টু বা ফেডোরা বা কীই। আপনি কোনো ভার্চুয়ালাইজেশন প্রোডাক্ট ব্যবহার করছেন। আমার কেসে, ভার্চুয়ালবক্স, কিন্তু ইস্যুটি হাইপারভাইজারর রেঞ্জে প্রযোজ্য। আপনি একটি ভার্চুয়াল মেশিন 스타্ট করেন, এবং কখনো কখনো, এটা হকলায়। পথে, আপনার পুরো সিস্টেম (হোস্ট) অনরেসপন্সিভ হয়ে যায়। আমি এই সমস্যাটি ভার্চুয়ালবক্স ৭.X থেকে লক্ষ্য করেছি, কুবুন্টু ২২.০৪ থেকে।
এটা ফিক্স করতে আমার অনেক ট্রাবলশুটিং লাগল, কিন্তু আমি মনে করি আমি রুট কজ ढুঁড়ে পেলাম। ঘটনাটি হলো, এটি আরেকটি পয়েন্টলেস ইস্যু স্ল্যাশ বাগ, যা জিনিসগুলোর কম্বিনেশন থেকে আসে: কার্নেল বাগ, স্পেক্ট্র-ফ্যামিলি মিটিগেশন, হোস্ট-হাইপারভাইজার ক্ল্যাশ, এবং আরও। অন্য কথায়, এমন আরেকটি ইস্যু যা সাধারন মানুষকে লিনাক্স ডেস্কটপকে সিরিয়াসলি ব্যবহার করা থেকে বিরত রাখে। কিন্তু কমপক্ষে আমার মতো ফানি ক্যারেক্টাররা আছে যারা এটা কাজ করতে চেষ্টা করে। তাই, যদি আপনি চান, এই টিউটোরিয়ালে এক নজর দিন। আমার পেছনে আসুন।
সমস্যা বিস্তারিত
খুব সিম্পল। আপনি আপনার পছন্দের ভার্চুয়ালাইজেশন প্রোডাক্টে একটি ভার্চুয়াল মেশিন স্টার্ট করেন। এক পয়েন্টে, ভার্চুয়াল মেশিনটি অনরেসপন্সিভ হয়ে যায়। এটা হতে পারে কিছু সিম্পল জিনিস যেমন একটি প্রোগ্রাম আইকনে ক্লিক করা। তারপর, আপনি লক্ষ্য করুন আপনার নিজের হোস্ট ডেস্কটপও ঠিকমতো behave করছে না। এটা আর মাউস ক্লিকের রেসপন্স দেয় না, বা কিছু প্রোগ্রাম রেসপন্ড করে না যখন অন্যগুলো করে। কখনো কখনো "ইস্যু" টি স্বয়ংক্রিয়ভাবে সমাধান হয়, এবং কখনো না, এবং আপনাকে আপনার মেশিন হার্ড-বুট করতে হয়। অত্যন্ত বিরক্তিকর।
আমি এই ইস্যুটি বেশ কয়েক মাস ধরে ফেস করছি। এটি আরেকটি কার্নেল সমস্যা, অবশ্যই, সম্ভবত সেমি, বেকার ফসলের মতো যা কিছুক্ষণ আমার টাইটানকে মিসবিহেভ করিয়েছিল, বা সেটা যা এখনো আমার এক্সিকিউটিভকে এফেক্ট করছে। আগ্রহীদের জন্য, আমি এগুলো লিংক করেছি চতুর্থ এবং ষষ্ঠ রিপোর্টে। উভয় ল্যাপটপের জন্য, আরও আর্টিকেল রয়েছে, তাই মাই লিনাক্স সেকশন চেক করুন, যদি পছন্দ করেন (ষষ্ঠ এবং দশম রিপোর্ট, কম নয়)।
কেন আমি মনে করি এটি একটি কার্নেল সমস্যা? খুব সহজ, কারণ এটি হঠাৎ শুরু হয়েছে যখন আমি এখনো কুবুন্টু ২২.০৪ এবং ভার্চুয়ালবক্স ৭.০ ব্যবহার করছিলাম। এটি কুবুন্টু ২৪.০৪ এবং ভার্চুয়ালবক্স ৭.১-এও চলছে। আপনি বলতে পারেন দোষী ভার্চুয়ালবক্স, কিন্তু সেটা সেই স্লিউ অফ কার্নেল বাগগুলো ব্যাখ্যা করবে না যা আমি উদ্ধার করেছি।
নামালি, আমার সিস্টেম লগে এই বকবক এরর রয়েছে:
kernel: unchecked MSR access error: WRMSR to 0xd10 (tried to write 0x00000000000
0ffff) at rIP: 0xffffffff910c6be4 (native_write_msr+0x4/0x40)
kernel: Call Trace:
kernel: <TASK>
kernel: ? show_stack_regs+0x23/0x40
kernel: ? ex_handler_msr+0x10a/0x180
...
এবং আপনি যদি "unchecked MSR access error: WRMSR" সার্চ করেন, তবে আপনি সैकতো থ্রেড খুঁজে পাবেন, ওপেনসusele, ফেডোরা, রоки, উবুন্টু, প্রক্সমক্স, এবং আরও অনেক জিনিসের জন্য প্রাসঙ্গিক। এরা সব ২০১৯ থেকে ডেট করা, অধিকাংশ অনরেজলভড। ওয়ুন্ডারবার।
যেহেতু আপনাকে সিনের পিছনের কোড বুঝতে হবে একটু, এক কথায়, এটি নিচের বিষয়গুলোর ওপর নির্ভর করে: কার্নেলে যোগ করা çeşitli মিটিগেশন (সাইড-চ্যানেল অ্যাট্যাক এবং সুলভ জন্য), এর কারণে কার্নেল শিডিউলিং এবং কোর ম্যানেজমেন্ট এবং যেকোনো সাবসিস্টেম যা সিমিলার জিনিস করে, যেমন হাইপারভাইজার, বিশেষ করে যদি আপনি প্যারাভায়ার্টুয়ালাইজেশন এবং নেস্টেড পেজিং ব্যবহার করেন, এর মধ্যে конфли нали, বা হতে পারে। সংক্ষেপে, মিটিগেশনগুলো কিছুটা অ্যাগ্রেসিভ হতে পারে, যা সিস্টেম ফ্রিজ বা হ্যাংের দিকে নিয়ে যেতে পারে।
এছাড়া, একটি সাইড নোট হিসেবে, এই সকল কার্নেল মিটিগেশন ১০০% প্রাসঙ্গিক এন্টারপ্রাইজের জন্য, ০% হোম ইউজের জন্য। কিন্তু লিনাক্স ডেস্কটপ এন্টারপ্রাইজ/কর্পোরেট কার্নেল ওয়ার্ল্ডের একটি ক্যOINCIDENCE, তাই আপনি, এন্ড ইউজার, আপনার হোম মেশিনে এন্টারপ্রাইজ সমস্যা ভোগ করতে হয়।
ওয়ার্কআরাউন্ড
এই ইস্যুর ঘটনা কমাতে তিনটি উপায় রয়েছে।
ভার্চুয়াল মেশিনে অ্যাসাইন করা CPU কোরের সংখ্যা কমান
আপনি যদি ৮ কোর ব্যবহার করেন, তবে ১-২, হয়তো ৪ ট্রাই করুন। এটি কিছুটা সাহায্য করবে, কিন্তু ইস্যু সম্পূর্ণভাবে দূর করবে না।
প্রভাবিত ভার্চুয়াল মেশিনের জন্য নেস্টেড পেজিং ডিজেবল করুন
এটি উল্লেখযোগ্য পারফরম্যান্স হিট করবে, কিন্তু কমপক্ষে আপনার মেশিনগুলো চলেगा, এবং আপনার সিস্টেম হ্যাং করবে না। উদাহরণস্বরূপ, ভার্চুয়ালবক্সে, System > Acceleration-এ যান, এবং এখানে Enable Nested Paging বলে যেটা আছে তার টিক হটিয়ে দিন।

সাধারণভাবে, আপনি যেকোনো পারমুটেশন ট্রাই করতে পারেন, দেখুন কোনটি সবচেয়ে ভালো কাজ করে:
- Processor > Extended Features > Enable Nested VT-x/AMD-V.
- Paravirtualization Interface (লিনাক্স ডিফল্ট হলো KVM)।
- Hardware Virtualization > Enable Nested Paging。
প্যারাভায়ার্টুয়ালাইজেশন (নেস্টেড পেজিং) ডিজেবল করুন
এটি BIOS/UEFI-এর মাধ্যমে করা যায়, যা পুরো মেশিনের জন্য এটি ডিজেবল করবে, অথবা আপনি KVM হাইপারভাইজারের জন্য একটি কনফিগারেশন ফাইল তৈরি করতে পারেন, যা সকল ভার্চুয়াল মেশিনের জন্য নেস্টেড পেজিং ব্যবহার বাধা দেবে। /etc/modprobe.d-এ, একটি ফাইল তৈরি করুন যেন kvm-intel.conf বা kvm-amd.conf, আপনার প্রসেসর আর্কিটেকচারের ওপর ভিত্তি করে। এই ফাইলের ভিতরে যোগ করুন:
options kvm-[amd|intel] nested=0
হাইপারভাইজার কার্নেল মডিউলগুলো রিলোড করার পর (বা রিবুট), আপনার এখন MSR-ফ্রি অভিজ্ঞতা হবে। যাইহোক, আমি এটা রিকমেন্ড করব না, কারণ এটি আপনার সকল ভার্চুয়ালাইজেশন ওয়ার্কলোডের জন্য স্পিড পেনাল্টি আনবে। প্রতিটি ভার্চুয়াল মেশিনের জন্য প্রয়োজন অনুযায়ী নেস্টেড পেজিং অপশন আনটিক করে দেয়া ভালো, অথবা অপশনটি এনেবল/ডিজেবল করুন যতক্ষণ না একটি প্রপার কার্নেল প্যাচ এটা ভালো করে ফিক্স করে দেয়।