আমার উবুন্টু 12.04-তে আমার অনেক ভার্চুয়াল বক্স মেশিন রয়েছে, প্রতিবার আমি শাটডাউন বা পুনরায় বুট করার পরে আমাকে সেগুলি একে একে শুরু করতে হবে।
বুট করার সময় আমি স্বয়ংক্রিয়ভাবে ভিবক্স মেশিনগুলির জন্য স্ক্রিপ্ট লিখতে সহায়তা চাই।
আমার উবুন্টু 12.04-তে আমার অনেক ভার্চুয়াল বক্স মেশিন রয়েছে, প্রতিবার আমি শাটডাউন বা পুনরায় বুট করার পরে আমাকে সেগুলি একে একে শুরু করতে হবে।
বুট করার সময় আমি স্বয়ংক্রিয়ভাবে ভিবক্স মেশিনগুলির জন্য স্ক্রিপ্ট লিখতে সহায়তা চাই।
উত্তর:
আপনি ভার্চুয়ালবক্স অটো-স্টার্ট পরিষেবাটি ব্যবহার করতে পারেন। এটি কীভাবে করবেন তা বর্ণনা করার জন্য একটি ভাল টিউটোরিয়াল "লাইফ অফ এ গিক অ্যাডমিন" ব্লগে পোস্ট করা হয়েছে ।
লিঙ্কযুক্ত ব্লগ পোস্ট থেকে নিম্নলিখিত পদক্ষেপগুলি মানিয়ে নেওয়া হয়েছে:
প্রথমে আপনাকে ফাইলটি তৈরি করতে হবে /etc/default/virtualbox
এবং কয়েকটি ভেরিয়েবল যুক্ত করতে হবে।
VBOXAUTOSTART_DB এতে অটোস্টার্ট ডাটাবেস ডিরেক্টরি এবং
VBOXAUTOSTART_CONFIG এর একটি নিখুঁত পথ রয়েছে যার মধ্যে অটোস্টার্ট কনফিগারেশন সেটিংসের অবস্থান রয়েছে। ফাইলটি এর সাথে দেখতে পাওয়া উচিত:
# virtualbox defaults file
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/vbox.cfg
এখন আমাদের /etc/vbox/vbox.cfg
ফাইল তৈরি এবং যুক্ত করা দরকার
# Default policy is to deny starting a VM, the other option is "allow".
default_policy = deny
# Create an entry for each user allowed to run autostart
myuserid = {
allow = true
}
দ্রষ্টব্য: যদি ফাইলের নামটি vbox.cfg
উপরে কাজ না করে তবে নামকরণের চেষ্টা করুন autostart.cfg
।
আপনি শুধু লাইন যোগ করতে পারেন আপনি শুধুমাত্র ব্যবহারকারী হন তাহলে default_policy = allow
করার vbox.cfg
ফাইল।
ডিরেক্টরিতে vboxuser গ্রুপে অনুমতি সেট করুন এবং ব্যবহারকারীরা ডিরেক্টরিতে চিঠি বিট লিখতে পারবেন তা নিশ্চিত করুন।
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox
ব্যবহারকারীদের প্রত্যেককে vboxusers
গ্রুপে যুক্ত করুন।
sudo usermod -a -G vboxusers USERNAME
( USERNAME
ব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন )
দ্রষ্টব্য : আপনি যদি বর্তমান ব্যবহারকারীর জন্য গোষ্ঠী অনুমতিগুলি পরিবর্তন করে থাকেন তবে অনুমতিগুলি রিফ্রেশ করতে লগ আউট এবং আবার ফিরে প্রবেশ করুন। (ক্রেডিট @ কেআর 105)
প্রতিটি ব্যবহারকারী যারা স্বতন্ত্র মেশিনগুলির জন্য অটোস্টার্ট সক্ষম করতে চান তাদের সাথে অটোস্টার্ট ডাটাবেস ডিরেক্টরিতে পথ নির্ধারণ করতে হবে
VBoxManage setproperty autostartdbpath /etc/vbox
এবং একটি পৃথক ভিএম এর সাথে অটোস্টার্ট সক্ষম করুন
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
এটি ডিরেক্টরিতে একটি myuserid.start
ফাইল তৈরি করবে/etc/vbox
পরিবর্তনগুলি পড়তে এখন vboxautostart- পরিষেবাটি পুনরায় চালু করুন।
sudo service vboxautostart-service restart
আপনার সিস্টেমটি পুনরায় বুট করুন এবং আপনার ভিএম শুরু করা উচিত
আমার ভ্যানিলা এলটিএসে এই অপারেশনটি চেষ্টা করার অনুরূপ অসুখী ঘটনা ঘটেছে।
~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04.1 LTS, Trusty Tahr"
এই সংস্করণে, /etc/init.d/vboxautostart-service কী ফাইলটি ইনস্টল করা হয়নি।
যতদূর আমি জানি সমস্ত ভিটুয়ালবক্স এবং প্রয়োজনীয়তা অ্যাপটি-গেটের মাধ্যমে রাখা হয়েছিল, সুতরাং 'vboxautostart-service' ফাইলটি কেন সরবরাহ করা হয়নি তা আমি বলতে পারি না। তবে এটি পেতে এখানে কেডিমুরের পোস্টে আমার আপডেট।
1) / ইত্যাদি / ডিফল্ট / ভার্চুয়ালবক্স ফাইল আমার জন্য বিদ্যমান। সুতরাং অবশ্যই বার যোগ করুন:
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
2) ওপি দ্বারা নির্দেশিত হিসাবে অবশ্যই /etc/vbox/autostart.cfg তৈরি করতে হবে ।
6 খ) একটি vboxautostart- পরিষেবা স্ক্রিপ্ট পেতে এবং এটি সম্পাদনযোগ্য করা প্রয়োজন।
cd /etc/init.d/
sudo wget http://www.virtualbox.org/browser/vbox/trunk/src/VBox/Installer/linux/vboxautostart-service.sh?format=raw -O vboxautostart-service
sudo chmod +x vboxautostart-service
6 সি) আরসি.ডি নিয়ন্ত্রককে সতর্ক করুন, তবে আমি শুরুর সময় হিসাবে 24 ব্যবহার করেছি। মাত্র 20 লাগানো এবং এটি শুরু হয়নি। ভার্চুয়ালবক্স কাজ করার আগেই এটি চলেছিল।
sudo update-rc.d vboxautostart-service defaults 24 24
তারপরে পুনরায় বুট করা সঠিকভাবে ভিএম চালু করে।
vboxdrv
করতে হবে । দেখে মনে হচ্ছে যে তারা পরিষেবাটির নতুন নাম দিয়েছে, তাই ওএস প্রারম্ভিকতাগুলি সঠিকভাবে সনাক্ত করতে বা থামাতে পারে না। আমি মনে করি আপনি যদি এই লাইনগুলি প্রতিস্থাপন করেন তবে আপনার 6 ধাপের দরকার নেই। # Required Start
# Required Stop
virtualbox
আপনি vboxmanage startvm "my virtual machine" --type=headless|gui|sdl
(এর মধ্যে একটি) ব্যবহার করতে পারেন । "হেডলেস" ব্যবহার করুন যদি তারা সার্ভার হয় যা আপনি গুই ব্যবহার না করে অন্য উপায়ে সংযুক্ত করেন।
বুট চলাকালীন এই কমান্ডগুলি সঠিক সময়ে চালাতে, আপনি আপস্টার্টে পড়তে চাইবেন।
উপরের kdmurray থেকে কাজ করার জন্য অনেক অসুখী ঘন্টা চেষ্টা করার পরে , সাফল্য না পেয়ে অবশেষে আমি একটি পদ্ধতি খুঁজে পেয়েছি যা সহজভাবে কাজ করেছিল।
প্রথমে আমার লিনাক্স হোস্টটি (পুদিনা 17) আমার মূল অ্যাকাউন্টে স্বয়ংক্রিয়ভাবে লগইন করতে বুট করার সময় সেট আপ করা হয়েছিল।
দ্বিতীয় আমি ডেস্কটপে প্রতিটি ভার্চুয়াল মেশিনের শর্টকাট তৈরি করতে ভার্চুয়ালবক্স জিইউআই (v4.3.12) এ সুবিধাগুলি ব্যবহার করেছি। left বাম কলামে ভিএমকে ডান ক্লিক করুন এবং "ডেস্কটপে শর্টকাট তৈরি করুন" নির্বাচন করুন}
পরবর্তী: আমি ইতিমধ্যে খুঁজে পেয়েছি যে মেনু-> কন্ট্রোল সেন্টার -> স্টার্টআপ অ্যাপ্লিকেশনগুলি -> ডেস্কটপ শর্টকাটগুলি যুক্ত করা এবং যুক্ত করা ফাইলগুলি কার্যকর করে না এমন ফাইলগুলি দিয়েছিল, আমি এই পৃষ্ঠায় অন্যান্য উত্তর থেকে দেখেছি যে প্রারম্ভগুলির অবস্থান / হোম /USERNAME/.config/autostart তাই আমি প্রতিটি ডেস্কটপ ভিএম শর্টকাট-এ ডান-ক্লিক করেছি এবং তারপরে সেগুলি পূর্ববর্তী ক্র্যাপ ফাইলগুলি ওভাররাইট করে folder ফোল্ডারে আটকিয়েছি। এখন তারা 'সুন্দর' ভার্চুয়ালবক্স আইকনগুলি তৈরি করেছে।
এবং হোস্ট কম্পিউটারটি পুনরায় চালু করার বিষয়ে যথেষ্ট নিশ্চিত, 3 টি ভিএম স্বয়ংক্রিয়ভাবে শুরু হয়েছিল।
:-)
বিল উইলিয়ামস
পিএস: হায়রে আমার এখনও কিছু হারিয়ে যাচ্ছে, কারণ ভার্চুয়াল মেশিনগুলি প্রায়শই বুটে শুরু হবে না, পরিবর্তে তারা একটি ত্রুটিযুক্ত ডায়ালগ বক্স তৈরি করে যা বলে যে তারা লক হয়ে গেছে, এমনকি হোস্টটি পুনরায় বুট করার আগে আমি তাদের শাটডাউন করার কথা বলেছি।
উপরের vboxautostart- পরিষেবাটির ভাল বর্ণনা ছাড়াও আপনি এটি করতে পারেন
VBoxManage modifyvm server --autostop-type savestate
অতিথিটিকে স্বয়ংক্রিয়ভাবে শাটডাউনে থামানোর জন্য। উবুন্টু 14.04-র জন্য আমাকে ভিবিএসআউটস্টার্ট-সার্ভিস স্টপ বিভাগে একটি ঘুম 30 যোগ করতে হয়েছিল, যাতে অতিথি সম্পূর্ণরূপে সংরক্ষণ না হওয়া পর্যন্ত এটি অপেক্ষা করে।
আমি উবুন্টু 16.04 এর অধীনে ভিবক্স 5.1.34 চলমান একটি সহজ উপায় পেয়েছি।
ভিবক্সে থাকাকালীন তালিকার চলমান বা নিষ্ক্রিয় ভিএম-তে ডান-ক্লিক করুন, 'ডেস্কটপটিতে শর্টকাট তৈরি করুন "নির্বাচন করুন Once সিস্টেম, আমি ডান ক্লিক করুন এবং 'বৈশিষ্ট্য' নির্বাচন করুন) ক্লিপবোর্ডে এটি অনুলিপি করুন।
'স্টার্টআপ অ্যাপ্লিকেশনগুলি' আপডেট করার জন্য প্রোগ্রামটি খুলুন এবং ভার্চুয়ালবক্স দ্বারা নির্মিত ডেস্কটপ লিঙ্ক থেকে অনুলিপিটি কমান্ডটি কাস্ট করে বুট সময়ে শুরু হওয়া একটি নতুন অ্যাপ্লিকেশন তৈরি করুন।
আমাদের সেশনে লগ ইন করতে কোনও ভিএম শুরু করতে আমরা একটি .ডেস্কটপ ফাইলটি সংজ্ঞায়িত করতে পারি:
যখন এই ফাইলটি অনুলিপি করা হয়েছিল বা আমাদের অটোস্টার্ট ডিরেক্টরিতে স্থানান্তরিত হয়েছিল তখন এটি লগ ইন করার পরে এটি কার্যকর করা হবে:
ব্যবহারকারীর স্থানে ভার্চুয়াল বক্স চালনা বুটের সময় এগুলি শুরু করার অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া এড়াতে সহায়তা করতে পারে (উদাহরণস্বরূপ ভিএম রুট হিসাবে চালায়, বুটের সময় অবিশ্বাস্যভাবে বৃদ্ধি পায়, ...)।
এটি ভার্চুয়ালবক্স কমান্ড লাইন পরিচালনা ইন্টারফেস ব্যবহার করে করা যেতে পারে। শুরুতে নিম্নলিখিত স্ক্রিপ্টটি চালান।
#!/bin/bash
VMUSER="vmuser"
VMNAME="RedHatVM" #also you can put UUID in this variable (VMNAME="4ec6acc1-a232-566d-a040-6bc4aadc19a6")
case "$1" in
start)
echo "===Starting VirtualBox VM==="
sudo -H -u $VMUSER VBoxManage startvm "$VMNAME" --type headless
;;
stop)
echo "===Saving state of Virtualbox VM==="
sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" savestate
sleep 20
;;
shutdown)
echo "===Shutting down Virtualbox VM==="
sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" acpipowerbutton
sleep 20
;;
reset)
echo "===Resetting VirtualBox VM==="
sudo -H -u $VMUSER VBoxManage controlvm "$VMNAME" reset
;;
status)
echo -n "VMNAME->";sudo -H -u $VMUSER VBoxManage showvminfo "$VMNAME" --machinereadable |grep "VMState="| cut -d "=" -f2
;;
echo "Usage: /etc/init.d/VMscript {start|stop|shutdown|reset|status}"
exit 1
;;
esac
exit 0
আরও তথ্যের জন্য একটি সুন্দর টিউটোরিয়াল আছে ।
@Kdmurray উত্তরে অ্যাডন।
আপনি যদি ত্রুটি পান তবে:
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
এটি সমাধানের জন্য, আমাকে ম্যানুয়ালি ফাইল "ব্যবহারকারীর নাম"। স্টার্ট এবং "ব্যবহারকারীর নাম" তৈরি করতে হয়েছিল with
sudo touch "username".start
sudo touch "username".stop
এবং এর সাথে মালিক পরিবর্তন করুন:
sudo chown "username" "username".start
sudo chown "username" "username".stop
পুন: প্রকাশ:
VBoxManage modifyvm <uuid|vmname> --autostart-enabled on
তারপরে পরিষেবাটি পুনরায় চালু করুন:
sudo service vboxautostart-service stop
sudo service vboxautostart-service start
চেক সব ঠিক আছে সাথে:
top
এবং ভার্চুয়াল মেশিনটি চলমান থাকলে একটি তালিকায় আপনার "ভিবিক্স ..." প্রক্রিয়াটি দেখতে হবে
আপনি এখানে বর্ণিত জিনোম সেশন ম্যানেজার পেতে পারেন। জিনোম সেশন ম্যানেজার
এটি সোফওয়্যার সেন্টারে বা আপনি কেবল একটি টার্মিনালে গিয়ে টাইপ করতে পারেন
sudo apt-get install gnome-session-common
এর পরে আপনি চালনার জন্য একটি ছোট স্ক্রিপ্ট তৈরি করতে পারেন এবং এটি শুরু করার জন্য জিনোম সেশন ম্যানেজারটি ব্যবহার করতে পারেন। আপনাকে যেতে এখানে একটি সামান্য নমুনা স্ক্রিপ্ট ...
#!/bin/sh
#vboxmanage startvm "my virtual machine" --type=headless|gui|sdl (one of those)
# So if your username is user, and virtualbox put your VMs in the default location, and you want headless...
vboxmanage startvm '/home/user/VirtualBox VMs/myvmname' --type=gui
আমার হোস্ট মেশিনটি পুনরায় বুট করার পরে আমি এভাবেই আমার সেন্টোস (আমার ভার্চুয়াল মেশিনের নাম) শুরু করি। আমি সেই কাজের জন্য ক্রোনট্যাব ব্যবহার করি। এখানে আমার ক্রন্টব এন্ট্রি:
@reboot VBoxHeadless --startvm "Centos" &
উবুন্টু সার্ভারের জন্য 16.04.1 এলটিএস আমি এটি করে এটি সমাধান করেছি:
sudo systemctl enable rc-local.service
/etc/rc.local
su virtual_box_user -c "VBoxHeadless -startvm 'virtual_machine_name' &"
নোট করুন যে ভার্চুয়াল_বক্স_উজারটি হ'ল ভার্চুয়াল মেশিনটি দেখতে পাবেন (যে আপনি শুরু করতে ইচ্ছুক) কমান্ডটি কার্যকর করে:
VBoxManage list vms
উদাহরণ:
$ VBoxManage list vms
"virtualbox1" {2eb3ba3b-bcb3-4515-95d9-d33bce214c28}
"virtualbox2" {62365634-f2q4-40c0-b4ed-22f4ab84441a}
পরিবর্তিত এর /etc/rc.local
মতো দেখতে হবে
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
su bob -c "VBoxManage startvm 'virtualbox1' --type headless &"
su bob -c "VBoxManage startvm 'virtualbox2' --type headless &"
exit 0
আপনি যদি ভার্চুয়ালবক্সের সঠিক মালিককে না চয়ন করেন তবে আপনার কমান্ডটি টাইপ করার সময় ত্রুটিটি দেখা উচিত:
sudo systemctl status rc-local.service
আমি আশা করি এটি সাহায্য করতে পারে
1 - একটি ফাইল তৈরি করুন:
nano /etc/init.d/vm-start
এটি আটকান:
#!/bin/bash
/bin/echo "* Starting VMS..."
/bin/sleep 1
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME--type headless"
/bin/sleep 1
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless"
/bin/sleep 1
2 - ফাইল ভিএম-স্টার্ট এক্সিকিউটেবল করুন:
chmod +x /etc/init.d/vm-start
3 - rc.local সম্পাদনা করুন
nano /etc/rc.local
এটি যুক্ত করুন:
#!/bin/bash
/etc/init.d/vm-start
exit 0
4 - রিবুট।