KVM-র সাথে কোনো বড় সমস্যা 만난 지 오래됐습니다। যাঁ така, ন্যায়বিচারের জন্য, আমি গত কয়েক বছরে এটাকে এক্সটেনসিভলি ব্যবহার করিনি। কিন্তু সাম্প্রতিক, আমি এই ভার্চুয়ালাইজেশন টেকনোলজির সাথে একটু কার্যকলাপ করলাম, এবং প্রোডাক্টিভিটির সাথে কিছু সমস্যা টপিং হিসেবে এলো।
হলে, আমি একটি ভার্চুয়াল মেশিন লঞ্চ করার চেষ্টা করলাম—কিছু খাস নয়, শুধু `kvm xyz` ইত্যাদি। আমি নিচের এরর মেসেজ পেলাম: Could not access KVM kernel module: Permission denied। এবং এইভাবে শুরু হয় এই ছোট টিউটোরিয়াল, যা দেখায় সব ভিন্ন জিনিসপত্র যা আপনি চেক করতে পারেন কী ভুল হতে পারে, এবং কীভাবে সমস্যা সমাধান করবেন। আফTER মি।
সমস্যা বিস্তারিত
পুরো এরর মেসেজ:
Could not access KVM kernel module: Permission denied qemu-system-x86_64: failed to initialize KVM: Permission denied
এটি ইঙ্গিত করে যে—সবচেয়ে সম্ভবত—KVM ইউজারস্পেস কম্পোনেন্ট KVM ড্রাইভার অ্যাক্সেস করতে পারছে না। এটি সাধারণত ভুল পারমিশনের কারণে হয়।
সমাধানসমূহ
প্রথমে আপনি যা করতে চান সেটি হলো চেক করা যে আপনার ইউজার `kvm` এবং `libvirt` গ্রুপের সদস্য কিনা। একবার এই পরিবর্তনগুলো করলে, আপনাকে একটি নতুন শেল লঞ্চ করতে হবে যাতে গ্রুপ মেম্বারশিপ চেঞ্জেস ইফেক্টিভ হয়। সবচেয়ে সহজ উপায় হলো আপনার ইউজার সেশনে রি-লগইন করা।
sudo usermod -G -a kvm "username" sudo usermod -G -a libvirtd "username"
ডিভাইস নোড পারমিশন
অতিরিক্তভাবে, আপনি `/dev/kvm` ডিভাইসের পারমিশন চেক করতে চাবেন। সঠিক ডিফল্ট পারমিশন হওয়া উচিত `660` এবং `root:kvm` ওনারশিপ ডিভাইস ফাইলের জন্য। আপনি দেখতে পাচ্ছেন, আপনি যদি রুট নন হন বা `kvm` গ্রুপের সদস্য নন হন, তবে আপনার অ্যাক্সেস থাকবে না।
ls -ld /dev/kvm crw-rw---- 1 root kvm 10, 232 May 27 10:43 /dev/kvm
Udev রুলস
আপনি যা আরেকটা চেক করতে পারেন সেটি হলো সঠিক udev রুলস במקוםে আছে কিনা। আপনি যদি ভাবছেন, `udevd` হলো একটি ডিভাইস ফাইল সিস্টেম ম্যানেজমেন্ট সার্ভিস, যা `/dev` আন্ডারের এন্ট্রির জন্য সঠিক পারমিশন সেট করে। সাধারণত, যখন আপনি KVM সফ্টওয়্যার ইনস্টল করেন, বান্ডেলের প্যাকেজগুলোর একটি প্রয়োজনীয় রুল প্রদান করে। যদি এই রুল উপস্থিত না থাকে, এবং আগে বাগ থাকা থাকে, তবে আপনি সেলফ রুল তৈরি করতে চাইতে পারেন।
`/etc/udev/rules.d/` আন্ডারে, একটি ফাইল তৈরি করুন `XX-kvm.rules` নামে। `XX` står করে একটি নম্বর, যা লেক্সিক্যাল অর্ডার নির্ধারণ করে যার দ্বারা রুলগুলো পার্স ও এক্সিকিউট হবে, GRUB2 রুলসের মতো। কিছু কেসে, ভিন্ন রুলের অর্ডার গুরুত্বপূর্ণ হতে পারে। আপনি যদি নিশ্চিত নন হন, এবং KVM ফাংশন্যালিটির ওপর নির্ভরশীল কিছু না জানেন, তবে আপনি `99-kvm.rules` ব্যবহার করতে পারেন।
এই ফাইলের ভিতরে নিচের লাইন যোগ করুন:
KERNEL=="kvm", GROUP="kvm", MODE="0660"
এখানে কী আছে? আপনি যদি udev রুল লেখার TL;DR ভার্সনে আছেন, অন্য জায়গা পড়ুন। সহজ ভাষায়:
- KERNEL - ডিভাইসের কার্নেল নাম
- GROUP - ডিভাইসের মালিক হওয়া উচিত UNIX গ্রুপ
- MODE - ডিভাইসের জন্য বিটওয়াইজ পারমিশন
রুল প্লেস হয়ে গেলে, রিবুট ছাড়া রুলস রিলোড করুন:
udevadm control --reload-rules
এবং সেফ সাইডে থাকতে, আপনি `libvirtd` সার্ভিসও রিস্টার্ট করতে পারেন:
systemctl restart libvirtd
ডিভাইস নোড পারমিশন - আবার
এই সমীকরণের চূড়ান্ত টুকরো—যদি উপরের কোনো সমাধান কাজ না করে, আপনি সহজেই `/dev/kvm`-এর পারমিশন একটি আরও রিল্যাক্সড সেটে পরিবর্তন করতে পারেন। `660` এর বদলে, আপনি `666` ব্যবহার করতে পারেন—এর মানে সিস্টেমের যেকোনো ইউজার KVM ভার্চুয়ালাইজেশন ম্যানেজ করতে পারবে। হোম সেটআপে, এটি কোনো বড় ডিল নয়।
sudo chmod 666 /dev/kvm
এখন আপনাকে মজেস্টিক্যালি KVM চালাতে পারা উচিত।
উপসংহার
চলে গেলো। এই টিউটোরিয়াল খুব লম্বা নয়, কিন্তু এতে কফি এরিয়া কভার করা হয়েছে। এখন, এটি KVM-র সাথে যেকোনো ইস্যুর জন্য জেনেরিক ডিবাগিং আর্টিকেল নয়। সেটির জন্য আমার পুরনো KVM ট্রাবলশুটিং গাইড আছে, প্লাস ইমেইল, যাতে আপনি ফ্রেশ টিপস ও সমাধান জিজ্ঞেস করতে পারেন। আমরা স্পেসিফিক্যালি KVM স্টার্টআপ পারমিশন ইস্যু নিয়ে কথা বলছি, এবং আপনার কাছে তিন-চার ভিন্ন উপায় আছে এটি বিশ্লেষণ ও সমাধান করার জন্য।
সামগ্রিকভাবে, KVM একটি শক্তিশালী, ফ্লেক্সিবল ভার্চুয়ালাইজেশন সফ্টওয়্যার—একটি ডাউনসাইড সহ যে এটি কফি নার্ডি হতে পারে, এবং তাই কিছু অন্যান্য, আরও ফ্রন্টএন্ড-ফ্রেন্ডলি টুলের মতো অ্যাক্সেসিবল নয়। না যে ভার্চুয়ালাইজেশন শুরুর থেকেই নার্ডি জিনিস নয়, কিন্তু হে। খুব, আপনি যদি ভুল পারমিশনের কারণে KVM-এ VM তৈরি বা শুরু করতে সমস্যায় পড়েন, উপরের চেকলিস্ট আপনাকে আপ एন্ড রানিং করিয়ে দেবে। সহজ, নন-ইনট্রুসিভ, কোনো রিবুট দরকার নেই। এবং আমরা এখানে শেষ, ফেলাস।
চিয়ার্স।