Windows 10 PCでUbuntu 18.04を起動してデスクトップを使用するには

JETSON NANOで遊ぼうと思ったところ、ホストコンピュータ(開発用のPC)にx64版のUbuntu 18.04が必要ということで。

Windows 10のPCしかありませんが、Ubuntuですか?そうですか。そこを何とか。

Windows 10のPCに仮想環境のUbuntu 18.04をインストールして、GNOMEデスクトップにアクセスする手順を記録しておこうと思います。

※2019年4月現在、WSL(Windows Subsystem for Linux)を使用した新しいUbuntuのインストール方法も御座います。

こちらの方法は、以前からあるVagrantを使用した方法になります。ストアアカウント等が不要ということで、こちらを選択致しました。


VagrantのUbuntu 18.04/GNOMEデスクトップインストール手順

全体的な流れはこのような感じです。

  1. VirtualBox、Vagrantのインストール
  2. VagrantでUbuntu 18.04をインストール(仮想マシンの作成)
  3. Ubuntu初期設定とアップデート
  4. X Window Systemインストール・VNCServer設定
  5. WindowsからVNC Serverへ接続・微調整

使用するPCは、CPU仮想化技術のIntel VTまたはAMD AMD-Vに対応している必要があるかと思います。Hyper-Vは使用しませんので、Windows 10 Homeでも大丈夫かと思います。

VirtualBox、Vagrantのインストール

こちらのサイトから、VirtualBox、VirtualBox Extension Pack、そしてVagrantをダウンロードさせて頂き、インストール致しました。

Intel VT-x,AMD-VのUEFI有効化や、Hyper-Vの無効化が必要な場合、こちらの記事を御覧ください。

インストール後、vagrantのコマンドを使って、VirtualBoxへ仮想マシンを作成する流れになります。

Ubuntu 18.04仮想マシンの作成

  1. PowerShellまたはコマンドプロンプトを起動します。
  2. 実行環境を格納するフォルダを作成、Ubuntu 18.04(ubuntu/bionic64)のboxを追加(イメージのダウンロード)、vagrant initでVagrantfile(設定ファイル)を作成しました。ゲストプラグインもインストールしておきます。
    mkdir ubuntu1804
    cd .\ubuntu1804
    vagrant box add ubuntu/bionic64
    vagrant init ubuntu/bionic64
    vagrant plugin install vagrant-vbguest
    #vagrant plugin install vagrant-disksize

  3. Vagrantfileをテキストエディタで編集します。
    rem notepad .\Vagrantfile
    start .

    次の内容追加しました。

    Vagrant.configure("2") do |config|
      # あとでVNCで接続するため、ゲストポート5901をホスト15901にマップ
      config.vm.network "forwarded_port", guest: 5901, host: 15901
    
      # ストレージ容量変更(要プラグイン)
      #vagrant plugin install vagrant-disksize
      config.disksize.size = '60GB'
    
      #有効化
      config.vm.provider "virtualbox" do |vb|
    
        # メモリーを2GBに変更
        vb.memory = "2048"
    
        # USBを使用する場合
        #ohci:1.0 ehci:2.0 xhci:3.0
        vb.customize ["modifyvm", :id, "--usb", "on"]
        vb.customize ["modifyvm", :id, "--usbehci", "on"] 
        # USB: NVIDIA Linux for Tegra
        # vb.customize ["usbfilter", "add", "0", "--target", :id, "--name", "Linux for Tegra", "--vendorid", "0x0955", "--productid", "0x7020"]
      #有効化
      end
    end

    X Window Systemを動かす都合から、使用するメモリーを1GBから2GBに変更しました。VNCのポートもマップしました。

  4. vagrant upで仮想マシンを起動後、vagrant sshでログインします。
    vagrant up
    vagrant ssh

Ubuntu 18.04.2にログインできましたでしょうか?

Ubuntu初期設定とアップデート

VagrantのUbuntuオフィシャルイメージは、mirrorサイトの設定がされていないため、既定の設定では、遠くのアップデートサーバーを参照するようです。このあたりを調整しつつ、アップデートを行っておきます。

  1. /etc/apt/sources.listファイルを編集して(近くにある)ミラーサイトを参照するようにします。
    # PowerShellで見やすいように、viの文字色を変更
    echo syntax off | tee -a ~/.vimrc
    echo set nu | tee -a ~/.vimrc
    #
    sudo vi /etc/apt/sources.list

    2箇所変更しました。

    # deb http://archive.ubuntu.com/ubuntu bionic main restricted
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main restricted
    
    # deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main restricted

  2. アップデート・アップグレードしておきます。
    sudo apt update
    sudo apt list --upgradable
    sudo apt upgrade
  3. ubuntuユーザのパスワードを設定しておきます。
    sudo passwd ubuntu

X Window Systemインストール・VNCServer設定

ウィンドウマネージャーはgnome-sessionをインストールしましたが、手動でvncserverを動かした場合は特に問題ありませんでした。

もし手動ではなくsystemdから起動したい場合、どうもうまく動かないようですので、xfce等に変えられたほうが良いかもしれません。(vncserverプロセスからXサーバ本体を起動するタイミングで失敗するようです)

  1. ubuntu-desktopとgnome-sessionをインストールします。
    sudo apt install ubuntu-desktop gnome-session

    先程ミラーサイトを設定しましたので、既定の状態よりもダウンロードは早いかと思いますが、まあのんびり待ちましょうか。

    正常にインストールされましたでしょうか?

  2. VNCServerをインストールします。
    sudo apt install tigervnc-standalone-server

  3. 一度vncserverを起動して、パスワードを設定します。
    vncserver

  4. 起動したvncserverを終了しておきます。
    vncserver -list
    vncserver :1 -kill
  5. ~/.vnc/xstartupファイルを作成します。
    echo "exec gnome-session &" | tee ~/.vnc/xstartup
    cat ~/.vnc/xstartup

    exec gnome-session &という1行のみですが。

  6. 最後に、外部からアクセスできるかたちでvncserverを起動します。
    vncserver -localhost no

    どうも(Vagrantの?)Ubuntu 18.04は、待ち受けIPアドレスが127.0.0.1:5901になるようです。localhost noオプションを付けると外部から接続できるようになりました。

以上で、基本的なインストールが完了しましたが、もう少し。

Vagrantを使っている=外部からパスワードでログインできないため、少し微調整が必要なようです。

WindowsからVNC Serverへ接続・微調整

WindowsからX Window Systemへアクセスするために、VNCクライアント(ビューワー)をインストールしました。

VNCクライアントは種類がありますが、Ultra VNCを使用させて頂きました。

今回の目的、Ubuntuの画面を表示する場合は、基本的にビューワーのみインストールすれば大丈夫かと思います。

VNC Viewerを起動後、VNC Server欄に「localhost:15901」と入力、Conectボタンをクリックします。先程、10番で入力したVNC接続用パスワードを入力します。X Window Systemの画面が表示されましたでしょうか?

  1. 画面の指示に従って、初期設定後。
  2. 画面左上、Activities→SHow Applications→Settingsを起動します。
  3. Power→Power Saving→Blank screenを「5 minutes」から「Never」へ変更しました。

デスクトップはvagrantユーザがログインしたかたちですが、パスワードを入力できないため、画面ロック後の解除ができません。これでロックしない=パスワードの入力が不要な状態になりました。

Vagrant操作コマンド(コピペ用)

# Vagrantfile変更後の反映
vagrant reload
# 仮想マシンのシャットダウン
vagrant halt
# 仮想マシンの削除
vagrant destroy
# USBデバイス確認
"%PROGRAMFILES%\Oracle\VirtualBox\VBoxManage.exe" list usbhost
# 各種環境フォルダへのアクセス
start "%USERPROFILE%\.vagrant.d"
start "%USERPROFILE%\.virtualbox"
start "%USERPROFILE%VirtualBox VMs"
start "C:\Program Files\Oracle"

以上で、Windows 10の中でUbuntu 18.04を動かして、VNCでデスクトップにアクセスできるようにしてみました。

デスクトップ上で何か設定を変更したり、ソフトウェアをインストールする場合、パスワードの入力が必要になりますが、7番で設定したubuntuユーザのパスワードを入力すれば大丈夫のようです。

画面サイズの調整は、vncserverのオプションを追加して行えます。

そのあたりの調整をしながら、実用的な環境を作ってみましょうか。

スポンサーリンク

フォローする

スポンサーリンク