Ubuntu 22.04のVirtualBoxへのインストール

Ubuntu 22.04のVirtualBoxへのインストール手順のメモ

Ubuntu 22.04のVirtualBoxへのインストール手順をまとめてみた。 20.04と大差ないけど、微妙に違う点もあるので。

マスタイメージのインストール

Ubuntu 22.04 インストール媒体の入手

インストール媒体のダウロードはこちら: Ubuntu Desktop 日本語 Remixのダウンロード
日本語環境構築するなら本家よりRemix版を使った方がなにかと便利(な気がする)。
本家はこちら

インストール

VirtualBox でインストールするときは、メインメモリーを4096MB以上に設定しておくこと

[!NOTE] 推奨環境が4GB以上なので。
ウィンドウマネージャだけ動いている状態で1GBちょい使用だったので、 2048MBでも動くと思う。でも、何か動かしたらすぐ足りなくなりそう。
それにしても、どんどん必要メモリが大きくなるな。
仮想環境で4GBってことは、HostOS環境下には8GB以上は必要ってことだよな。
プロセッサも2個割り当てておいた方が良いのかな?
これは様子見てからどうするか決めよう。

普通にインストール媒体からインストール。
終わったら、リブート。
初期設定は「次へ」を押すだけ 「Ubuntuの改善を支援する」のところは気になるなら「送信しません」に変更。

[!TIP] ウィンドウが画面からはみ出して「続ける」ボタンが押せないときは、Alt+F7キーを押したあと、マウスでドラッグすると ウィンドウを移動できるので、ボタンが見えるようところまで移動してクリックしてちょ。

以下の説明が図付きで分かりやすい: Windows11上のVirtualBoxにUbuntu22.04LTSをインストール
Windows11って書いてあるけど、Windows10でも同じ。
ここの説明では「不完全な言語サポート」うんぬんの説明があるけど、日本語Remix版でインストールすると、この部分は不要みたい。

その後の設定手順

インストール中にロックされるとうざいので、先に設定しておく

まだGuestAdditionをインストールしてないからコピペできないけど、BashのTab補完が効くので、 ちょろっと入力してあとは補完に頼れば大丈夫。

# ブランクスクリーン しない
gsettings set org.gnome.desktop.session idle-delay 0
# 自動画面ロック OFF
gsettings set org.gnome.desktop.screensaver lock-enabled false

GUIで設定する場合は以下の手順で。

[!TIP] ==== 画面ロックの抑制 ==============================================
システムの設定を起動し、左側でプライバシー > 画面 を選択
右側で画面ロックをクリックし、自動画面ロックをoffにする

[!TIP] ==== スクリーンセーバ(ブランクスクリーン)の抑制=====================
システムの設定を起動し、左側で電源管理を選択
右側で画面のブランクのドロップダウンリストで「しない」を選択

最新版にアップデート

裏でソフトウェアの更新が動いていると、ロックファイルがロックされてしばらく適用できないので、
そうなっちゃったらお茶でも飲んでしばらくお待ちください。
ソフトウェアの更新による自動更新を止める方法は後ほど。

お約束。

sudo apt update
sudo apt upgrade

gccとかmakeとかをインストールする

これが入ってないとGuestAdditionのインストールで失敗する

sudo apt install build-essential

色々使うのでインストール

なにかと使うのでインストール

sudo apt install net-tools
sudo apt install dconf-editor
sudo apt install gnome-tweaks 

一旦リブート

更新適用のため。

GuestAdditionのインストール

以前にマウントしたものが残ってたらアンマウントしておくこと(インストール後初めてなのでマウントされてることはないけれど)。
VirtualBox のメニューの「デバイス」→「Guest Additions CDイメージの挿入…」を選択
以下、ごにょごにょ。

[!TIPS] プログラムが自動で始まらない場合は、CDROMのマウント先(たぶん、/media/<USER>/VBox_GAs_x.x.xx/)に移動してsudo VBoxLinuxAdditions.runを実行すれば良い。

再度リブート

GuestAdditionによる更新適用のため。

ここでVirtualboxの拡張機能が使えるようになっているので、
Virtualboxのメニューから「デバイス」→「クリップボードの共有」→「双方向」
を選択。 これでホストとゲストでクリップボードが共有できる。

使わないのでアンインストール

使うツールがあったら残してちょ。

ツール類

sudo apt remove thunderbird libreoffice-* simple-scan gnome-todo remmina cheese rhythmbox

# 個別に実行する場合はこちらでどうぞ。
sudo apt remove thunderbird
sudo apt remove libreoffice-*
sudo apt remove simple-scan
sudo apt remove gnome-todo
sudo apt remove remmina
sudo apt remove cheese
sudo apt remove rhythmbox

ゲーム類

sudo apt remove aisleriot gnome-mahjongg gnome-mines gnome-sudoku

# 個別に実行する場合はこちらでどうぞ。
sudo apt remove aisleriot
sudo apt remove gnome-mahjongg
sudo apt remove gnome-mines
sudo apt remove gnome-sudoku

要らなくなったパッケージのお掃除

sudo apt autoremove

お好みで

フォントのインストール

最近はUDEVゴシック がお気に入りなのでインストールしておく。
もちろん、他のフォントでもいいよ。
ブラウザでダウンロードしてもいいけど、あちこちファイルコピーしたり削除したりが面倒なので、 一時ファイルは/tmpに突っ込んでリブート時にまとめて消してもらおう。

フォントのインストールと言っても、ttfファイルを入手して~/.fonts/ディレクトリにコピるだけ。
下では全部コピってるけど、もちろん使いたいものだけでもOK。

pushd /tmp
wget https://github.com/yuru7/udev-gothic/releases/download/v1.0.0/UDEVGothic_v1.0.0.zip 
unzip UDEVGothic_v1.0.0.zip 
mkdir ~/.fonts
cp UDEVGothic_v1.0.0/*.ttf ~/.fonts/
popd

gnome-terminalのフォントの変更

で、入手したフォントを端末のフォントに設定しておこう。
さっきフォントのインストールに使った端末ウィンドウを使うと エラーで端末ウィンドウが落ちるかもしれないんで一旦終了して新しいウィンドウで。

端末を起動し、右上の「≡」→「設定」を選択 使用中のプロファイル(最初のは「名前なし」)を選択し、
「フォントを指定」にチェックを入れ、その右側でフォントを選ぶ
さっきインストールした「UDEV Gothic JPDOC」を選んでサイズを指定。
ついでに起動時の端末サイズも修正しておくとよい
終わったら×で終了。

作業用ディレクトリの作成

もちろん、使うものだけでOK。

sudo mkdir /proj /work /work1 /work2 /NFSROOT
sudo chown $USER:$USER  /proj /work* /NFSROOT

grub-pcのインストール先情報の変更

クローンしたディスクでGUIからgrubのupdateが行われるとハングアップするので変更しておく

sudo sh -c 'echo "set grub-pc/install_devices /dev/sda" | debconf-communicate'
# 確認
sudo sh -c 'echo "get grub-pc/install_devices" | debconf-communicate'

デフォルトshellをbashに変更

デフォルトのshがdashなのはなんとなくイヤなので。

pushd /bin
sudo ln -sf bash sh
popd

bashの設定変更

~/.bashrcに以下を追記。
もちろんお好みで。
「# for pyenv」以降はそれぞれのツールをインストールしたとき用なので、インストールしないならなくて可。


# プロンプトの設定
PS1="\w\$ "

# キーバインドの設定
bind '"\C-n": history-search-forward'
bind '"\C-p": history-search-backward'

# ディレクトリスタックの表示改善
function pushd() {
    command pushd $* > /dev/null
    command dirs -v
}
function popd() {
    command popd $* > /dev/null
    command dirs -v
}
function dirs() {
    command dirs -v
}

# 表示色変更
export LS_COLORS='di=01;32:ln=01;36:ex=01;31:'
export GREP_COLORS='mt=01;31:ml=:cx=:fn=01;32:ln=32:bn=32:se=36'

# lessのオプション
export LESS="-iMR"

# for pyenv
export PYENV_ROOT=/proj/.pyenv    #環境に合わせて修正してね
if [ -e $PYENV_ROOT ]; then
    export PATH=$PYENV_ROOT/bin:$PATH
    # 仮想環境名をプロンプトに表示しない場合は以下を有効化
    # export VIRTUAL_ENV_DISABLE_PROMPT=1
    eval "$(pyenv init --path)"          # pyenv 2.0以降で必要
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    export PYTHON_CONFIGURE_OPTS="\
     --enable-shared\
    "
fi

# for nodenv
export NODENV_ROOT=/proj/.nodenv    # 環境に合わせて修正してね
if [ -e $NODENV_ROOT ]; then
    export PATH=$NODENV_ROOT/bin:$PATH
    eval "$(nodenv init -)"
fi

# x11からのログイン以外ならDISPLAYを設定する
# Ubuntu22.04だとwaylandになるらしい
if [ "$XDG_SESSION_TYPE" != "x11" ] && [ "$XDG_SESSION_TYPE" != "wayland" ]; then
    export DISPLAY=192.168.78.200:0.0
fi
echo DISPLAY="$DISPLAY"

# direnv 設定
if type direnv > /dev/null 2>&1; then
    export EDITOR=vi
    eval "$(direnv hook bash)"
    
    # # venvの仮想環境名を表示するための設定
    # show_virtual_env() {
    #   if [ -n "$VIRTUAL_ENV" ]; then
    #     echo "($(basename $VIRTUAL_ENV))"
    #   fi
    # }
    # PS1='$(show_virtual_env)'$PS1
fi

# openVINO の設定はdirenvで
# for openVINO
# source /opt/intel/openvino_2021/bin/setupvars.sh

ウィンドウが勝手に最大化するのをやめる

以下のコマンドで無効化できる

gsettings set org.gnome.mutter auto-maximize false
gsettings set org.gnome.mutter edge-tiling false

ウィンドウにマウスを乗せるとフォーカスされるようにする

以下のコマンドで設定できる

gsettings set org.gnome.desktop.wm.preferences auto-raise false
gsettings set org.gnome.desktop.wm.preferences focus-mode mouse
gsettings set org.gnome.desktop.wm.preferences raise-on-click true

[!NOTE] focus-mode の設定値 mouse と sloppy の違い
mouse は マウスカーソルをウィンドウからデスクトップに移すとフォーカスがはずれる。
sloppy は マウスカーソルをウィンドウからデスクトップに移してもフォーカスされたまま。

デスクトップからゴミ箱とホームを消す

以下のコマンドで設定できる
Ubuntu20.04とちょっとキーが変更されてる
ゴミ箱は最初から表示されてないけど…ま、ついでに書いとく。
表示したければ、設定値をtrueにすれば良い。

gsettings set org.gnome.shell.extensions.ding show-home false 
gsettings set org.gnome.shell.extensions.ding show-trash false 

Dockのカスタマイズ

なんとなく使いにくいので好みのデザインに変更。

#ゴミ箱削除
gsettings set org.gnome.shell.extensions.dash-to-dock show-trash false

# アプリケーションをDockバーの上(または左)に表示
gsettings set org.gnome.shell.extensions.dash-to-dock show-apps-at-top true

# Dockバーを画面下に表示
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM

# アイコンサイズの変更
gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 16

sambaのインストール

ツール本体のインストール

sudo apt install samba

/etc/samba/smb.conf に以下を追加
作らなかったワークディレクトリの部分は削除してね。
他にも共有したいディレクトリがあったら追加してちょ。
ここではOpenVINOのサンプルとか見たかったのでoptを共有してます。

[proj]
path = /proj
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[work1]
path = /work1
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[work2]
path = /work2
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[work]
path = /work
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[NFSROOT]
path = /NFSROOT
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[opt]
path = /opt
guest ok = no
writable = yes
map archive = no
share modes = yes
dos filetimes = yes
force group = yas-i
force create mode = 0664
force directory mode = 0665

[homes]
   comment = Home Directories
   browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
;   read only = yes
    read only = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
;   create mask = 0700
    create mask = 0665

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
;   directory mask = 0700
    directory mask = 0775

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.
# Un-comment the following parameter to make sure that only "username"
# can connect to \\server\username
# This might need tweaking when using external authentication schemes
   valid users = %S

ユーザの追加と再起動

sudo smbpasswd -a $USER
sudo service smbd reload
sudo service smbd restart

NFSのインストール

別のUbuntuマシンとか、RasberryPiとファイル共有したいときに備えて設定しておく。

インストール

sudo apt install nfs-kernel-server

/etc/exportsに以下を追加

/NFSROOT 192.168.0.0/255.255.0.0(rw,sync,no_root_squash)

[!NOTE] もちろん、192.168..に割り当てられたNICが有効化されている必要がある。
デフォルトのNATだけじゃダメよ~。
VirtualBoxの設定のネットワークアダプタでホストオンリーアダプタを割り当てておけば、 同一ホストマシン上の他の仮想マシンと通信できる。
VirtualBoxの設定のネットワークアダプタでブリッジアダプタを割り当てておけば RaspberryPi等ホストマシン外のマシンとも通信できる。
ネットワークアダプタは4つまで設定できるので、両方有効化しておくことも可。

再起動

sudo /etc/init.d/nfs-kernel-server restart

exportできているか確認

sudo exportfs 

別のマシンからマウントできるか確認
IPアドレスはip addressとかifconfigで調べてちょ。

mkdir abc
sudo mount 192.168.56.101:/NFSROOT abc/
# abcの下にリモートのファイルが見えたらOK

マウスカーソルを大きくする

マウスカーソル小さくて見失う人は大きくしましょう。
最後の数字がカーソルの大きさなので、お好みのサイズで。

gsettings set org.gnome.desktop.interface cursor-size 48

または「設定」→「ユニバーサルアクセス」→「カーソルの大きさ」で選択

ファイル(nautilus)のデフォルト動作変更

ファイル(nautilus)の設定をお好みに合わせて。
ファイル(nautilus)はすべて終了しておいた方が無難。

# アドレスバーをテキスト形式にする
gsettings set org.gnome.nautilus.preferences always-use-location-entry true 

# 詳細表示をデフォルトに
gsettings set org.gnome.nautilus.preferences default-folder-viewer 'list-view' 

# 隠しファイルを表示する
# 隠しファイルの表示はちょっと場所が違う
gsettings set org.gtk.Settings.FileChooser show-hidden true

ソフトウェアの自動更新の無効化

自分のタイミングでソフトのアップデートができないのがストレスなので、以下で自動確認を停止。
もちろん、適時手動でアップデートするのを忘れずに

CTRLキーとCAPSキーを入れ替える

Virtualbox環境ではWindowsで設定したのが有効になっているので必要ないが、Native Installの場合は以下のページを参考に入れ替えを設定する。
【Ubuntu 20.04/18.04 LTS】CapsLockとControlキーを入れ替える
リンク先は「Ubuntu 20.04/18.04 LTS」となっているが、Ubuntu22.04でも同じらしい。
Native環境にインストールしてないので未確認だけど…

リブート必要だが、以下のIPv6無効化とまとめてリブートでも可。

IPv6を無効化する

IPv6動いていて何度かハマったので無効化しておく。
sysctrlで無効化する方法もあるけど、ちょっと手順が面倒なので、起動オプションで無効化してしまおう。

参考:Ubuntu 20.04 LTS Focal FossaでIPv6アドレスを無効にする方法

/etc/default/grubの以下の部分(10行目あたり)にipv6.disable=1を追加

元から設定されている”quiet splash”を削除すれば起動時のスプラッシュスクリーンが表示されず、ブートシーケンスのログが表示されるようになるので、お好みで。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ipv6.disable=1"
# または、ブートシーケンスのログを表示したい場合は以下。
# GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

これだけだとまだ設定有効にならない。
以下のコマンドでgrubメニューの更新を行う。

sudo update-grub

リブートする

リブート後、ip addressとかifconfigでIPv6のアドレスが割り当てられていないことを確認。

以上でインストールは終了


仮想マシンをクローンした後の設定

マスタイメージを残しておいて、色々な環境をお試しするには仮想マシンをクローンして使うのがおススメ。
VirtualBoxのメインウィンドウでマスタイメージの仮想マシンを右クリック→クローンを選択、名前とパスを設定し、あとはごにょごにょ…

クローンした仮想マシンを起動し、必要な変更を加える。

ネットワーク設定の変更

マシン名とか同じ名前だと色々不都合があるので、変更しておく。
他のクローン仮想環境と同時に使わないならそのままでも良いけど。
IPアドレスも固定で割り振っておくと名前が引けない時にさくっと分かってなにかと便利…なんだけど、最近はWindowsもUbuntuもRaspberryPiもmDNSがサポートされてるから自動割り当てのままでもそんなに不便はないかも。

ホスト名の変更

このコマンドで/etc/hostnameが書き換えられる。

sudo nmcli general hostname hogehoge123

この他、/etc/hosts の変更も必要

もちろん、vimとかで書き換えても可。

sudo sed -i -e 's/orghostname/hogehoge123/' /etc/hosts

接続一覧の表示

下のコマンドを実行するための接続名を確認しておく。

nmcli connection show 

HOST ONLY ADAPTERの設定変更

IPアドレスを手動割り当てに変更。

sudo nmcli connection modify "有線接続 2" ipv4.method manual ipv4.addresses "192.168.56.123/24" 
sudo nmcli connection down   "有線接続 2"
sudo nmcli connection up     "有線接続 2"

BRIDGE ADAPTERの設定変更

IPアドレスを手動割り当てに変更。

sudo nmcli connection modify "有線接続 3" ipv4.method manual ipv4.addresses "192.168.78.123/24" gw4 "192.168.78.1" ipv4.dns "192.168.78.1"
sudo nmcli connection down   "有線接続 3"
sudo nmcli connection up     "有線接続 3"

[!TIP] IPアドレスの変更をGUIで行うには以下。
システムの設定を起動(gnome-control-centerを実行)
左側のネットワークを選択し、対象のNICの設定を変更する

まとめて実行するならこちら。
ホスト名、接続名、IPアドレスなどは適宜変更。

# マシン番号の設定とホスト名の設定
number=30
new_hostname=skull${number}

# HOSTNAMEの変更
sudo nmcli general hostname ${new_hostname}
sudo sed -i -e "s/ubuntu-22.*$/${new_hostname}/" /etc/hosts

# HOST ONLY ADAPTERの設定変更
sudo nmcli connection modify "有線接続 2" ipv4.method manual ipv4.addresses "192.168.56.${number}/24"
sudo nmcli connection down   "有線接続 2"
sudo nmcli connection up     "有線接続 2"

# BRIDGE ADAPTERの設定変更
sudo nmcli connection modify "有線接続 3" ipv4.method manual ipv4.addresses "192.168.78.${number}/24" gw4 "192.168.78.1" ipv4.dns "192.168.78.1"
sudo nmcli connection down   "有線接続 3"
sudo nmcli connection up     "有線接続 3"

あとはお約束

sudo apt update
sudo apt upgrade

VirtalBoxのバージョンが変更されているときは、GuestAdditionのバージョンアップも忘れずに。