名言佳句

2017年2月27日 星期一

Automatic execution VirtualBox guest on display manager

如何在 LightDM 登入管理員中添增 VirtualBox 下的虛擬機並讓多位使用者皆可啟動執行

以目前的環境來說,除了公共或營利場所,基本上一台電腦都是只固定同一人在使用,甚少有多帳號登入操作的。
然而,幸運如某,就是除了有多帳號的需求外,還有 mulitseat 的必要性,更 lucky 的是還得在空間容量有限的環境下,讓每個帳號都能在 VirtualBox 中運行 Windows 10 虛擬機的需求。

而在目前的家用內接式硬碟可靠度不佳,常常在不預警中就掛點,反倒不如外接式隨身硬碟來的隱定、可靠(當然,前提是不發生掉落、撞擊事件),所以某現在的系統安裝方案都是買個 SSD 安裝作業系統,做好硬碟空間配額,並教育好資料備份至雲端和隨身硬碟的觀念和重要性,如此一來,除了減少機殼內的溫度提高來源,亦降低了電量消耗(雖然是微不足道啦)。


基於這個環境與需求下,如何只建立一部 Win10 的 VirtualBox guest 則是重中之重了,因為如果每個人都建立一部 Win10 虛擬機的話,先不說工程之耗時費力,且又極佔硬碟空間。
要做到從登入管理員(Display manager)即執行 Win10 虛擬機其實很簡單,只需做個選項檔即可,但如何讓每個帳號都能夠執行同一部 Win10 虛擬機,則牽扯到了 VirtualBox 虛擬機設置以及 Linux 作業系統下的檔案權限問題,設置好處理,每帳號下都覆製一份即可,但檔案權限問題就需要做好群組管理,以便能夠達到方便與安全性皆能兼顧。

因為某是使用 Antergos 這個以 ArchLinux 為基底的 Linux 發行版,所以底下的說明皆是以 ArchLinux 的軟件管理為例子,其他的發行版請自行參照修改,至於設置,則是原理相同,因此應該是可以直接套用,但不敢保證,請自行斟著。

安裝
目前安裝 VirtualBox 軟件時,需要依照實體主機所安裝的 Linux 核心來選擇欲使用的 Host 端模組︰
請執行如下指令以安裝 Virtualbox 軟件,並依如上說明所用核心做出選擇︰
sudo pacman -S virtualbox

目錄與群組規劃
因為是要讓每個帳號皆能夠執行同一部 Win10 虛擬機,所以需要將該部虛擬機放置在每個帳號皆有讀取、執行的權限,因此就需要額外建立一共同的操作目錄來放置,且這個目錄需要另外配予給一共有群組,也就是每個欲使用這部 Win10 虛擬機的使用者,都必需是這目錄擁有群組中的組員,不懂?沒關係,繼續看下去就會懂的 ^_^
  • 於 /home 目錄下建立一共有目錄,比如 VBVMs
    sudo mkdir -p /home/VBVMs
  • 將 VBVMs 目錄的擁有群組變更為 vboxusers
    sudo chown root:vboxusers /home/VBVMs
  • 將欲使用這部 Win10 虛擬機的使用者加入 vboxusers 群組中
    • 一次增加一名使用者到 vboxusers 群組
      sudo usermod -aG vboxusers user_name
    • 一次性將欲加入到 vboxusers 群組的使用者加入
      sudo gpasswd -M user01,user02,user03,..... vboxusers
      注意,此方式會覆蓋掉原先 vboxusers 群組中的組員設置,意即,未呈列在 -M 參數後的帳號名稱,將不會是 vboxusers 群組的組員。
      建立登入選項及啟動指令檔在 /usr/local/bin 目錄下,新建一指令檔 startwin,內容如下︰
      #! /bin/bash
      WorkPath='/home/VBVMs/Win10'
      /usr/bin/VBoxSDL --fullscreen --startvm Win10
      chmod g+rw $WorkPath/Win10.vbo*
      chmod g+rw $WorkPath/Logs/VBox.lo*
      chmod g+rw $WorkPath/Snapshots/*.vdi
      為此指令檔賦予可執行權限︰sudo chmod 755 /usr/local/bin/startwin

      在 /usr/share/xsessions 目錄下,新建一文件 win10.desktop,內容如下︰
      [Desktop Entry]
      Encoding=UTF-8
      Name=Windows 10
      Comment=虛擬機上的 Win 10
      Exec=/usr/local/bin/startwin10
      Icon=
      Type=Application

      建立 Win10 虛擬機
      這實在沒啥困難度,且是屬圖形界面操作,再加上實非本文之重點,固請自行參照網路上的眾多教學文件即可,唯一要注意幾點︰
      1. 在喜好設定中預設的機器資料夾,請設為 /home/VBVMs
      2. 將虛擬機名稱依照 /usr/local/bin/startwin 中的內容來設置,比如 Win10
      3. 將 .config/VirtualBox/VirtualBox.xml 檔案,覆製到每個欲使用 Win10 虛擬機的帳號家目錄中的 ~/.config/VirtualBox/ 目錄下
      或等哪天佛心來著時,看是否會來上一篇吧 ^_*

      如果順利,則在 lightdm 登入管理員畫面中,選擇 sessions,應該可以發現 Windows 10 的選項,選擇它登入即可。
      首次登入時,會要較久一點的時間,因為 VirtualBox 需要為使用者建立虛擬機的一些相關設置檔,基本上有點像當機的樣子,所以請稍稍給點耐心喲,大約幾十秒到分來鐘吧?

      祝好運!!

      沒有留言:

      張貼留言

      ArcoLinux 無線網卡自動離線

      一直以來都是使用有線網路在連網,但後來覺得桌機與逸晨似乎不太氣合,在使用壽命上,總是比他人要來的短,常常保固期一過,就開始某些配件不預期罷工----長久性的。 後來在主機板掛了之後,就決定改採用筆記型電腦來做日常工作機,因為目前的日常工作,已不再像以往般,以性能為主要導向,簡言之...