বুট করার সময় ভার্চুয়াল বক্স মেশিনগুলি স্বয়ংক্রিয়ভাবে কীভাবে শুরু করবেন?


53

আমার উবুন্টু 12.04-তে আমার অনেক ভার্চুয়াল বক্স মেশিন রয়েছে, প্রতিবার আমি শাটডাউন বা পুনরায় বুট করার পরে আমাকে সেগুলি একে একে শুরু করতে হবে।

বুট করার সময় আমি স্বয়ংক্রিয়ভাবে ভিবক্স মেশিনগুলির জন্য স্ক্রিপ্ট লিখতে সহায়তা চাই।



এই টুইটটি কোনভাবেই এই প্রশ্নের সদৃশ নয় @
মুহাম্মদ বিন ইউসরাত

উত্তর:


51

আপনি ভার্চুয়ালবক্স অটো-স্টার্ট পরিষেবাটি ব্যবহার করতে পারেন। এটি কীভাবে করবেন তা বর্ণনা করার জন্য একটি ভাল টিউটোরিয়াল "লাইফ অফ এ গিক অ্যাডমিন" ব্লগে পোস্ট করা হয়েছে

লিঙ্কযুক্ত ব্লগ পোস্ট থেকে নিম্নলিখিত পদক্ষেপগুলি মানিয়ে নেওয়া হয়েছে:

  1. প্রথমে আপনাকে ফাইলটি তৈরি করতে হবে /etc/default/virtualboxএবং কয়েকটি ভেরিয়েবল যুক্ত করতে হবে।

    VBOXAUTOSTART_DB এতে অটোস্টার্ট ডাটাবেস ডিরেক্টরি এবং
    VBOXAUTOSTART_CONFIG এর একটি নিখুঁত পথ রয়েছে যার মধ্যে অটোস্টার্ট কনফিগারেশন সেটিংসের অবস্থান রয়েছে। ফাইলটি এর সাথে দেখতে পাওয়া উচিত:

    # virtualbox defaults file
    VBOXAUTOSTART_DB=/etc/vbox
    VBOXAUTOSTART_CONFIG=/etc/vbox/vbox.cfg
    
  2. এখন আমাদের /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ফাইল।

  3. ডিরেক্টরিতে vboxuser গ্রুপে অনুমতি সেট করুন এবং ব্যবহারকারীরা ডিরেক্টরিতে চিঠি বিট লিখতে পারবেন তা নিশ্চিত করুন।

    sudo chgrp vboxusers /etc/vbox
    sudo chmod 1775 /etc/vbox
    
  4. ব্যবহারকারীদের প্রত্যেককে vboxusersগ্রুপে যুক্ত করুন।

    sudo usermod -a -G vboxusers USERNAME

    ( USERNAMEব্যবহারকারীর নাম দিয়ে প্রতিস্থাপন )

দ্রষ্টব্য : আপনি যদি বর্তমান ব্যবহারকারীর জন্য গোষ্ঠী অনুমতিগুলি পরিবর্তন করে থাকেন তবে অনুমতিগুলি রিফ্রেশ করতে লগ আউট এবং আবার ফিরে প্রবেশ করুন। (ক্রেডিট @ কেআর 105)

  1. প্রতিটি ব্যবহারকারী যারা স্বতন্ত্র মেশিনগুলির জন্য অটোস্টার্ট সক্ষম করতে চান তাদের সাথে অটোস্টার্ট ডাটাবেস ডিরেক্টরিতে পথ নির্ধারণ করতে হবে

    VBoxManage setproperty autostartdbpath /etc/vbox

    এবং একটি পৃথক ভিএম এর সাথে অটোস্টার্ট সক্ষম করুন

    VBoxManage modifyvm <uuid|vmname> --autostart-enabled on

    এটি ডিরেক্টরিতে একটি myuserid.start ফাইল তৈরি করবে/etc/vbox

  2. পরিবর্তনগুলি পড়তে এখন vboxautostart- পরিষেবাটি পুনরায় চালু করুন।

    sudo service vboxautostart-service restart
  3. আপনার সিস্টেমটি পুনরায় বুট করুন এবং আপনার ভিএম শুরু করা উচিত


কিভাবে প্রারম্ভে স্ক্রিপ্ট ব্যবহারের একটি নির্দিষ্ট ভার্চুয়াল মেশিন শুরু করার জন্য
শিক্ষানবিস

1
আমার ১৪.০৪ দাবি করে যে 'ভিক্সোআউটস্টার্ট-সার্ভিস' এর মতো কোনও পরিষেবা নেই, আপনি কি এটি পরীক্ষা করেছেন?
অ্যারোনিকাল

@ অ্যারোনিকাল ওপি এবং যে নির্দেশাবলী থেকে উত্তরটি বের করা হয়েছিল তা উভয়ই উবুন্টু 12.04 এর জন্য। এর পরে সংস্করণ সহ ওয়াইএমএমভি।
kdmurray

দেখা যাচ্ছে যে এটি ভার্চুয়ালবক্স ৪.৩.১০ ১৪.০৪-তে আরআইপি স্ক্রিপ্টগুলি ডাউনলোড করে না, তবে নীচে এনডাসুসারের উত্তর আমাকে এটি ঠিক করতে সহায়তা করেছে। চারদিকের +1!
অ্যারোনিকাল

আমি কোনও সমাধান ছাড়াই উবুন্টু 15.10 এ এই সমাধানটি কাজ করার চেষ্টা করছিলাম .. আমি এই পোস্টটি freesoftwareservers.com/index.php/2015/10/24/… ব্যবহার করে শেষ করেছি .. সম্ভবত সঠিক পন্থা নয়, তবে এটি কার্যকর
mozart_ar

15

আমার ভ্যানিলা এলটিএসে এই অপারেশনটি চেষ্টা করার অনুরূপ অসুখী ঘটনা ঘটেছে।

~$ 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

তারপরে পুনরায় বুট করা সঠিকভাবে ভিএম চালু করে।


1
5.2 সংস্করণে আপনাকে vboxautostart- পরিষেবা সম্পাদনা করতে হবে এবং দ্বারা / লাইনগুলিতে প্রতিস্থাপন vboxdrvকরতে হবে । দেখে মনে হচ্ছে যে তারা পরিষেবাটির নতুন নাম দিয়েছে, তাই ওএস প্রারম্ভিকতাগুলি সঠিকভাবে সনাক্ত করতে বা থামাতে পারে না। আমি মনে করি আপনি যদি এই লাইনগুলি প্রতিস্থাপন করেন তবে আপনার 6 ধাপের দরকার নেই। # Required Start# Required Stopvirtualbox
ফিশবোন

আপনাকে অনেক ধন্যবাদ @ ফিশবোনে আপনার মন্তব্যটি আমার কাছে অভাবজনক ছিল
জায়রো আন্দ্রেস ভেলাস্কো রোমেরো

6

আপনি vboxmanage startvm "my virtual machine" --type=headless|gui|sdl(এর মধ্যে একটি) ব্যবহার করতে পারেন । "হেডলেস" ব্যবহার করুন যদি তারা সার্ভার হয় যা আপনি গুই ব্যবহার না করে অন্য উপায়ে সংযুক্ত করেন।

বুট চলাকালীন এই কমান্ডগুলি সঠিক সময়ে চালাতে, আপনি আপস্টার্টে পড়তে চাইবেন।


6

উপরের kdmurray থেকে কাজ করার জন্য অনেক অসুখী ঘন্টা চেষ্টা করার পরে , সাফল্য না পেয়ে অবশেষে আমি একটি পদ্ধতি খুঁজে পেয়েছি যা সহজভাবে কাজ করেছিল।

প্রথমে আমার লিনাক্স হোস্টটি (পুদিনা 17) আমার মূল অ্যাকাউন্টে স্বয়ংক্রিয়ভাবে লগইন করতে বুট করার সময় সেট আপ করা হয়েছিল।

দ্বিতীয় আমি ডেস্কটপে প্রতিটি ভার্চুয়াল মেশিনের শর্টকাট তৈরি করতে ভার্চুয়ালবক্স জিইউআই (v4.3.12) এ সুবিধাগুলি ব্যবহার করেছি। left বাম কলামে ভিএমকে ডান ক্লিক করুন এবং "ডেস্কটপে শর্টকাট তৈরি করুন" নির্বাচন করুন}

পরবর্তী: আমি ইতিমধ্যে খুঁজে পেয়েছি যে মেনু-> কন্ট্রোল সেন্টার -> স্টার্টআপ অ্যাপ্লিকেশনগুলি -> ডেস্কটপ শর্টকাটগুলি যুক্ত করা এবং যুক্ত করা ফাইলগুলি কার্যকর করে না এমন ফাইলগুলি দিয়েছিল, আমি এই পৃষ্ঠায় অন্যান্য উত্তর থেকে দেখেছি যে প্রারম্ভগুলির অবস্থান / হোম /USERNAME/.config/autostart তাই আমি প্রতিটি ডেস্কটপ ভিএম শর্টকাট-এ ডান-ক্লিক করেছি এবং তারপরে সেগুলি পূর্ববর্তী ক্র্যাপ ফাইলগুলি ওভাররাইট করে folder ফোল্ডারে আটকিয়েছি। এখন তারা 'সুন্দর' ভার্চুয়ালবক্স আইকনগুলি তৈরি করেছে।

এবং হোস্ট কম্পিউটারটি পুনরায় চালু করার বিষয়ে যথেষ্ট নিশ্চিত, 3 টি ভিএম স্বয়ংক্রিয়ভাবে শুরু হয়েছিল।

:-)

বিল উইলিয়ামস

পিএস: হায়রে আমার এখনও কিছু হারিয়ে যাচ্ছে, কারণ ভার্চুয়াল মেশিনগুলি প্রায়শই বুটে শুরু হবে না, পরিবর্তে তারা একটি ত্রুটিযুক্ত ডায়ালগ বক্স তৈরি করে যা বলে যে তারা লক হয়ে গেছে, এমনকি হোস্টটি পুনরায় বুট করার আগে আমি তাদের শাটডাউন করার কথা বলেছি।


1
এফওয়াইআইয়ের কোনও "উত্তর 5" নেই। প্রতিটি উত্তরের বামে আপনি যে সংখ্যাটি দেখছেন তা হ'ল মোট ভোট গণনা। এটি বলার পরে, আপনার একটি ভাল বিকল্প জিইউআই পদ্ধতি। অবদানের জন্য ধন্যবাদ।
hmayag

5

উপরের vboxautostart- পরিষেবাটির ভাল বর্ণনা ছাড়াও আপনি এটি করতে পারেন

VBoxManage modifyvm server --autostop-type savestate

অতিথিটিকে স্বয়ংক্রিয়ভাবে শাটডাউনে থামানোর জন্য। উবুন্টু 14.04-র জন্য আমাকে ভিবিএসআউটস্টার্ট-সার্ভিস স্টপ বিভাগে একটি ঘুম 30 যোগ করতে হয়েছিল, যাতে অতিথি সম্পূর্ণরূপে সংরক্ষণ না হওয়া পর্যন্ত এটি অপেক্ষা করে।


2

আমি উবুন্টু 16.04 এর অধীনে ভিবক্স 5.1.34 চলমান একটি সহজ উপায় পেয়েছি।

ভিবক্সে থাকাকালীন তালিকার চলমান বা নিষ্ক্রিয় ভিএম-তে ডান-ক্লিক করুন, 'ডেস্কটপটিতে শর্টকাট তৈরি করুন "নির্বাচন করুন Once সিস্টেম, আমি ডান ক্লিক করুন এবং 'বৈশিষ্ট্য' নির্বাচন করুন) ক্লিপবোর্ডে এটি অনুলিপি করুন।

'স্টার্টআপ অ্যাপ্লিকেশনগুলি' আপডেট করার জন্য প্রোগ্রামটি খুলুন এবং ভার্চুয়ালবক্স দ্বারা নির্মিত ডেস্কটপ লিঙ্ক থেকে অনুলিপিটি কমান্ডটি কাস্ট করে বুট সময়ে শুরু হওয়া একটি নতুন অ্যাপ্লিকেশন তৈরি করুন।


1

আমাদের সেশনে লগ ইন করতে কোনও ভিএম শুরু করতে আমরা একটি .ডেস্কটপ ফাইলটি সংজ্ঞায়িত করতে পারি:

যখন এই ফাইলটি অনুলিপি করা হয়েছিল বা আমাদের অটোস্টার্ট ডিরেক্টরিতে স্থানান্তরিত হয়েছিল তখন এটি লগ ইন করার পরে এটি কার্যকর করা হবে:

ব্যবহারকারীর স্থানে ভার্চুয়াল বক্স চালনা বুটের সময় এগুলি শুরু করার অবাঞ্ছিত পার্শ্ব প্রতিক্রিয়া এড়াতে সহায়তা করতে পারে (উদাহরণস্বরূপ ভিএম রুট হিসাবে চালায়, বুটের সময় অবিশ্বাস্যভাবে বৃদ্ধি পায়, ...)।


1

এটি ভার্চুয়ালবক্স কমান্ড লাইন পরিচালনা ইন্টারফেস ব্যবহার করে করা যেতে পারে। শুরুতে নিম্নলিখিত স্ক্রিপ্টটি চালান।

#!/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

আরও তথ্যের জন্য একটি সুন্দর টিউটোরিয়াল আছে


স্বাগতম .. দয়া করে লিঙ্কটি থেকে গুরুত্বপূর্ণ তথ্যটি অনুলিপি / আটকান
ঝড়

1

@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

এবং ভার্চুয়াল মেশিনটি চলমান থাকলে একটি তালিকায় আপনার "ভিবিক্স ..." প্রক্রিয়াটি দেখতে হবে


0

আপনি এখানে বর্ণিত জিনোম সেশন ম্যানেজার পেতে পারেন। জিনোম সেশন ম্যানেজার এটি সোফওয়্যার সেন্টারে বা আপনি কেবল একটি টার্মিনালে গিয়ে টাইপ করতে পারেন 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

0

আমার হোস্ট মেশিনটি পুনরায় বুট করার পরে আমি এভাবেই আমার সেন্টোস (আমার ভার্চুয়াল মেশিনের নাম) শুরু করি। আমি সেই কাজের জন্য ক্রোনট্যাব ব্যবহার করি। এখানে আমার ক্রন্টব এন্ট্রি:

@reboot VBoxHeadless --startvm "Centos" &

0

উবুন্টু সার্ভারের জন্য 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

আমি আশা করি এটি সাহায্য করতে পারে


0

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
  • আপনার ব্যবহারকারীর নাম দিয়ে "বৈধ ব্যবহারকারী" প্রতিস্থাপন করুন
  • আপনার ভার্চুয়াল মেশিনের নামের সাথে "MACHINENAME" প্রতিস্থাপন করুন
  • আপনার যদি 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 - রিবুট।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.