উত্তর:
যে কোনও আসল ভার্চুয়ালাইজেশনের সিপিইউতে নিম্ন-স্তরের অ্যাক্সেসের প্রয়োজন হয় এবং সুতরাং রুটটিকে অবশ্যই এটি ইনস্টল করতে হবে। একবার ইনস্টল হয়ে গেলে এটি চালানোর জন্য আপনাকে রুট হওয়ার দরকার নেই। আপনি সম্ভবত একটি এমুলেটরটি নন-রুট, যেমন বোচস, বা অ্যাডাপ্টার যেমন ওয়াইন হিসাবে ইনস্টল করতে এবং চালাতে পারেন। যদি আপনার মনে একটি নির্দিষ্ট উইন্ডোজ অ্যাপ থাকে তবে আপনি এটি কেবল ওয়াইন (সম্ভবত) এর অধীনে চালাতে পারবেন।
জন্য সাহায্যে KVM , আপনি ডিভাইস অ্যাক্সেস প্রয়োজন /dev/kvm
। যদি আপনার ব্যবহারকারী এই ডিভাইসে পড়তে / লিখতে পারেন তবে আপনি কেভিএম ভিত্তিক ভার্চুয়াল মেশিনগুলি আপনার ব্যবহারকারী হিসাবে চালাতে পারবেন।
বেশিরভাগ বিতরণে দলের সদস্যদের kvm
এই ডিভাইসে অ্যাক্সেস রয়েছে, সুতরাং আপনাকে যা করতে হবে তা হ'ল আপনার ব্যবহারকারীকে দলে যুক্ত করা kvm
।
অন্যান্য অন্যান্য ত্বকযুক্ত প্রযুক্তির জন্য আপনার কার্নেল মডিউলগুলি লোড করা দরকার (এটিতে ভার্চুয়ালবক্স এবং ভিএমওয়্যার অন্তর্ভুক্ত)। এটি প্রায় অবশ্যই রুট স্তরের অ্যাক্সেস প্রয়োজন।
আপনি যে কোনও ব্যবহারকারীর হিসাবে অ-গতিবিহীন ভার্চুয়ালাইজেশন প্রযুক্তি চালাতে পারেন। উদাহরণস্বরূপ, অ-গতিযুক্ত মোডে Qemu । সচেতন থাকুন এটি ত্বরিত ভার্চুয়ালাইজেশনের তুলনায় খুব ধীর হবে।
ইউজার মোড লিনাক্স হল একটি লিনাক্স ভার্চুয়ালাইজেশন সমাধান যা পুরোপুরি ইউজারস্পেসে চলে - কোনও রুট সুবিধার দরকার নেই।
তবে এটি কেবল একটি লিনাক্স হোস্টের মধ্যে একটি লিনাক্স গেস্ট চালাতে পারে, সুতরাং আপনি অন্য কিছু চালাতে চাইলে এটি উপযুক্ত নয়।
ভার্চুয়াল মেশিনটির প্রসেসরের (এবং অন্যান্য হার্ডওয়্যার) দক্ষ হওয়ার জন্য যথেষ্ট নিম্ন-স্তরের অ্যাক্সেস প্রয়োজন। অতএব আপনি এমন কোনও ভাল পারফরম্যান্স ভিএম সফ্টওয়্যার দেখতে পাবেন না যা রুটহীন ইনস্টল করা যায়।
লাইটওয়েট ভার্চুয়াল মেশিনের ক্ষেত্রে, হালকাতা কেবলমাত্র প্রয়োজনীয় বৈশিষ্ট্যগুলি সহ অন্তর্ভুক্ত। এটি চালিত হবে ওএস সম্পর্কে কিছু জ্ঞান প্রয়োজন এবং তাই ওপেন-সোর্স লাইটওয়েট ভিএম ( প্লেক্স 86 , লিলিভিএম ) কেবল ওপেন-সোর্স অপারেটিং সিস্টেমকে সমর্থন করে। এই যুক্তি অনুসারে, এটি হতে পারে যে মাইক্রোসফ্ট ভার্চুয়াল পিসি ভার্চুয়ালবক্স / ভিএমওয়্যার / ইত্যাদির চেয়ে বেশি হালকা weight কিন্তু আমি সত্যিই জানি না। ভার্চুয়ালবক্স ওপেন-সোর্সে উপলব্ধ, বেশ ব্যবহারযোগ্য এবং সর্বদা আমার উদ্দেশ্যে যথেষ্ট হয়েছে (তবে আমি অন্যদের চেষ্টা করেছি)।
ভার্চুয়ালবক্স 4.0.০.৮ এ রুট অফকোর্স হিসাবে ইনস্টল করা দরকার তবে পরে আপনি ব্যবহারকারীদের সেখানে নিজের ভিএম তৈরি করতে দিতে পারেন। আপনাকে কেবল গ্রুপের সদস্য হতে হবেvboxusers
usermod -G vboxusers USERNAME
এই লিঙ্কটি একবার দেখুন , খোল থেকে সোজা হয়ে কীভাবে এটিকে হেডলেস চালানো যায় তার নিবন্ধটি দেখুন। আমি এটিও সত্যই খনন করি যে এটি আরডিপি প্রোটোকল সমর্থন করে, এর অর্থ আপনি rdesktop
সংযোগ করার জন্য কেবল ব্যবহার করতে পারেন ।
আমার প্রি-বিল্ট ইমেজ / কিউমু সংকলিত সংস্করণটি ব্যবহার করতে এটি এখান থেকে ডাউনলোড করুন এবং তারপরে এটি সঙ্কুচিত করুন:
tar -xvzf qemu_packed.tar.gz
আপনার কাছে থেকে আমার ডেবিয়ান 8 চিত্র (1.6G) ডাউনলোড করতে পারেন এখানে :
tar -xvzf test01.qcow2.tar.gz
এবং অবশেষে চালানো
./command.sh
টেক্সট মোডে আপনার একটি কার্যক্ষম ডেবিয়ান 8 থাকা উচিত, 22222 পোর্টে হোস্ট অতিথিতে ssh পোর্টটি খোলে with আপনি "রুট" এবং পাসওয়ার্ড "রুট" ব্যবহার করে লগ ইন করতে পারেন।
কিউইএমইউ হ'ল একটি সমাধান যা আমাকে আমার নিজের লিনাক্স চিত্রটি এমন একটি সার্ভারে ইনস্টল করতে দেয় যেখানে আমার কোনও রুট অ্যাক্সেস ছিল না। এটি খুব দরকারী, আমি উদাহরণস্বরূপ আমার প্রধান ব্যবহারকারীর পাসওয়ার্ড প্রকাশ না করেই বিপরীত এসএসএস করতে বা শিক্ষামূলক উদ্দেশ্যে এটি ব্যবহার করি। তবে প্রকৃতপক্ষে, আপনি কোনও রুট অ্যাকাউন্ট ব্যতীত কেভিএমকে বাস্তব ভার্চুয়ালাইজেশনের জন্য ব্যবহার করতে পারবেন না, আপনি কেবলমাত্র অনুকরণ করতে সক্ষম হবেন যা যথেষ্ট অদক্ষ হতে পারে (তবে কমান্ড লাইন অপারেশনের জন্য, আমি সত্যিই কখনই ওভারহেড দেখিনি)।
qemu
আমি কীভাবে এগিয়ে যাই তার বর্ণনা এখানে। প্রথম পদক্ষেপটি হল কেমু "পোর্টেবল", অর্থাত্ কোনও রুট অ্যাক্সেস ছাড়াই সার্ভারে ব্যবহারযোগ্য। আপনার বেশ কয়েকটি পদ্ধতি রয়েছে তা করার জন্য, আমি সেগুলি উপস্থাপন করার চেষ্টা করব যাতে আপনি পছন্দমতো একটি চয়ন করতে পারেন।
এই সমাধানটি প্রয়োগ করা সত্যিই দ্রুত হতে পারে (মূলত এটি যদি কাজ করে তবে 1 কমান্ডে আপনি এটি পান) তবে আমার স্ক্রিপ্টটি বগিযুক্ত হতে পারে / কিছু লিওব ভুলে যেতে পারে, তাই সমস্ত বাইনারি ম্যানুয়ালি ডাউনলোড করতে বেশ দীর্ঘ হতে পারে ... এই পদ্ধতির অন্যান্য সুবিধা হ'ল আপনি এটি সরাসরি সার্ভারে নন-রুট মোডে চালাতে পারেন। এখানে কেমু বাইনারি পাওয়ার ধারণাটি হ'ল .deb / .rpm ফাইলটি (অ্যাপ্লিকেশন থেকে, বা অনলাইন ওয়েবসাইটগুলি যা .deb হোস্ট করে) থেকে পাওয়া যাবে, এটিটি বের করুন, লাইব্রেরি নির্ভরতা ব্যবহার করে চেক করুন ldd
এবং .deb
যে সমস্ত নির্ভরতা রয়েছে তা ডাউনলোড করুন to তাদের ( .so
ফাইলগুলি) বের করার জন্য কম্পিউটারে ইতিমধ্যে উপস্থিত নেই । কারণ এটি বেশ দীর্ঘ এবং পুনরাবৃত্তি হতে পারে, আমি একটি ছোট স্ক্রিপ্ট তৈরি করেছি, তবে আপনি যদি সাহসী হন তবে আপনি ম্যানুয়ালি সেগুলি সব করতে পারেন ... এটি ঠিক সময় নেয়। এটি ব্যবহার করতে, এই স্ক্রিপ্টটি কোনও ফাইলে সংরক্ষণ করুনcreate_qemu_binaries.sh
:
#!/usr/bin/env bash
mkdir qemu_extract
cd qemu_extract
echo "########## Downloading qemu... ##########"
apt-get download qemu-system-x86
echo "########## Extracting qemu... ##########"
dpkg -x qemu-system-*.deb .
mkdir -p qemu_packed/lib
cp usr/bin/qemu-system-x86_64 qemu_packed
echo "########## Copy libs... ##########"
ldd usr/bin/qemu-system-x86_64 | grep "=>" | grep -v "not found" | awk '{print "cp "$3" qemu_packed/lib/"}' | bash
mkdir not_found
cd not_found
echo "########## Get not found libs... ##########"
ldd ../usr/bin/qemu-system-x86_64 | grep "not found" | awk '{print $1}' > not_found.txt
echo "########## Download not found libs... ##########"
for lib in $(cat not_found.txt); do echo "=== Dealing with $lib ==="; apt-file search --regexp "/${lib}\$" | sed 's/:.*//' | xargs apt-get download; done
echo "########## Extracting not found libs... ##########"
ls *.deb | xargs -I{} dpkg -x "{}" .
echo "########## Copying not found libs... ##########"
find . | grep ".so" | xargs -I{} cp "{}" ../qemu_packed/lib
cd ..
echo "########## Getting pc-bios... ##########"
git clone https://github.com/qemu/qemu.git
cp -r qemu/pc-bios qemu_packed
echo "########## Finished !!! ##########"
echo "The output file should be in the folder qemu_extract/qemu_packed."
echo "Once you have a filesystem image, you can run it using:"
echo "$ LD_LIBRARY_PATH=$(pwd)/lib ./qemu-system-x86_64 -L pc-bios -no-kvm -m 256 -drive if=virtio,file=<your image>.qcow2,cache=none -display curses -k fr -redir tcp:22222::22"
echo "Don't forget to replace <your image>"
এবং এটি ব্যবহার করে চালান:
chmod +x create_qemu_binaries.sh
./create_qemu_binaries.sh
এটি সবকিছু ঠিকঠাক কাজ করে, শেষে আপনার ফোল্ডারে ./qemu_extract/qemu_packed/
একটি ফাইল qemu-system-x86_64
(মূল বাইনারি), একটি ফোল্ডার lib
(যে লিবগুলি নেওয়া উচিত qemu
) এবং একটি ফোল্ডার pc-bios
, ফাইলগুলির একটি সেট যা qemu
চালানো দরকার। তারপরে আপনি এটি qemu
ব্যবহার করে চালাতে পারেন (আপনার ফাইল সিস্টেমের চিত্রটি প্রতিস্থাপন করতে ভুলবেন না):
$ LD_LIBRARY_PATH=$(pwd)/lib ./qemu-system-x86_64 -L pc-bios -no-kvm -m 256 -drive if=virtio,file=<your image>.qcow2,cache=none -redir tcp:22222::22
উপভোগ করুন! (যদি স্ক্রিপ্টটি আপনার পক্ষে কাজ করে না, আমাকে জিজ্ঞাসা করতে দ্বিধা করবেন না, আমি এটি কেবল দুটি কম্পিউটারে পরীক্ষা করেছিলাম redir
এবং হোস্ট এবং অনুমানের মধ্যে যদি এসএস ফরোয়ার্ডিংয়ের প্রয়োজন না হয় তবে অপসারণের জন্য বিনামূল্যে পূরণ করব)
প্রথম পদ্ধতিটিতে রুট অ্যাক্সেস সহ একটি কম্পিউটার প্রয়োজন (বা qemu
ইনস্টল করা)। প্রথমে qemu
এরকম কিছু ব্যবহার করে ইনস্টল করুন
sudo apt install qemu-system-x86
এবং তারপরে Qemu এর পরম পথটি সনাক্ত করুন:
$ which qemu-system-x86_64
/usr/bin/qemu-system-x86_64
তারপরে, এটি রাখতে একটি ফোল্ডার তৈরি করুন:
mkdir -p qemu_packed/lib
cd qemu_packed
cp /usr/bin/qemu-system-x86_64 qemu_packed
এবং লাইব্রেরিগুলির তালিকাটি কেমুর সাথে যুক্ত করুন:
ldd qemu_packed/qemu-system-x86_64 | awk '{print "cp "$3" qemu_packed/lib"}' | bash
এখন, আমাদের কিউমু দ্বারা BIOS ব্যবহার করা দরকার। ফাইলটি আপনার সিস্টেমে উপলভ্য রয়েছে তবে তারা কেন বিভিন্ন ফোল্ডারে রয়েছে তা আমি জানি না, সুতরাং উত্সগুলি থেকে এগুলি পাওয়া সহজ বলে আমি মনে করি:
git clone https://github.com/qemu/qemu.git
cp -r qemu/pc-bios qemu_packed
cd qemu_packed
এখন, এটি কাজ করা উচিত, আপনি এই ফাইলগুলি নন রুট মেশিনে অনুলিপি করতে পারেন, এবং কেবল qemu
নীচের লাইনটি ব্যবহার করে চালাতে পারেন (চিত্রটি প্রতিস্থাপন করতে ভুলবেন না):
$ LD_LIBRARY_PATH=$(pwd)/lib ./qemu-system-x86_64 -L pc-bios -no-kvm -m 256 -drive if=virtio,file=<your image>.qcow2,cache=none
আপনি উত্সগুলিও সংকলন করতে পারেন, তবে আপনার যদি সমস্ত গ্রন্থাগার ইনস্টল না থাকে তবে কেমু সংকলনের জন্য একটি মূলযুক্ত কম্পিউটার ব্যবহার করা এড়ানো কঠিন কাজ হতে পারে। তবে আমার ধারণা, উপরোক্ত দুটি পদ্ধতি যদি কাজ না করে তবে এটি কিছুটা বেশি নির্ভরযোগ্য। তারপরে, এটি একবার সংকলিত হয়ে গেলে এক্সিকিউটেবল ফাইলটি পান এবং লাইব্রেরিগুলি (ব্যবহার করে ldd
, সমস্ত গ্রন্থাগার কম্পিউটারে ইতিমধ্যে থাকা উচিত) এবং পিসি-বায়োস ফাইল পেতে উপরের মতো একই কৌশলটি করুন। এবং আবার এটি একই কমান্ড দিয়ে চালান run
আপনি যদি প্রাক-তৈরি ফাইল সিস্টেম ইমেজটি ব্যবহার করতে না চান তবে উপরের কমান্ডগুলি ব্যবহার করে কেবলমাত্র অসংখ্য টিউটোরিয়াল অনুসরণ করুন qemu/qemu-system-x86_64
! নোট: আপনি যদি বিনা qemu-img
মূল হিসাবে চিত্র তৈরি করতে ব্যবহার করতে চান তবে উপরের মত একই প্রক্রিয়াটি অনুসরণ করুন!
উপভোগ করুন!
নোট: আপনি যদি কোনও জিইআইআইবিহীন কোনও সার্ভারে চালনার জন্য অভিশাপ প্রদর্শনটি ব্যবহার করতে চান তবে আপনার ছবিতে বুট বিকল্পের একটি লাইন যুক্ত করা উচিত যাতে এটি ফ্রেম বাফারটি চালু না করে /etc/default/grub
:
GRUB_CMDLINE_LINUX_DEFAULT="vga=normal nofb nomodeset bochs_drm.fbdev=off"
(সর্বাধিক গুরুত্বপূর্ণটি হ'ল শেষ, আমি প্রয়োজন কিনা তা নিশ্চিত নই)। পাশাপাশি
GRUB_TERMINAL=console
GRUB_GFXPAYLOAD_LINUX=text
যাতে গ্রাবটি পাঠ্য মোডে থাকে। আপনি পর্যাপ্ত পর্যায়ে না থাকলে আপনি সিস্টেমডে পাঠ্য মোড সক্ষম করতেও পারেন।