VMware Fusion にUbuntu Server をインストールする手順の解説です。
VMware Fusion のインストールは「M1 MacにVMware Fusionをインストール」をご参照ください。
環境
- MacBook Pro / M1 Pro チップ (Apple Silicon)
- macOS Monterey (12.6.7)
- VMware Fusion Player (13.5.0)
- Ubuntu Server (22.04.3 LTS) – Apple Silicon (ARM64)
Ubuntu Serverのダウンロード
Ubuntu のサイトのダウンロードページにアクセスします。
- Ubuntu > Downloads > Server – Ubuntu
下にスクロールします。
(”Alternative architectures” のクリックでもよいです)
Alternative architectures のUbuntu Server for ARM のリンク”Get Ubuntu Server for ARM” をクリックします。
緑のボタン”Download Ubuntu 22.04.3 LTS” をクリックしてISOファイルをダウンロードします。
ARM64 向けのイメージファイル ubuntu-22.04.3-live-server-arm64.iso がダウンロードされました。
ダウンロードしたファイルに破損などがないか、チェックサムを確認します。
ARM64 向けのチェックサムは、ダウンロードしたファイルの検証方法が記載されたチュートリアル(以下のリンク)から辿ったページにありました。
- How to verify your Ubuntu download – Ubuntu
辿る順番は、3. Download checksums and signatures の本文中のURL(http://releases.ubuntu.com) > Ports, Unsupported, and Experimental Images for Ubuntu > 22.04.3/ > release/ の順で以下のページが表示されます。
下にスクロールすると、チェックサムSHA256SUM のリンクがあります。
“SHA256SUMS” をクリックすると複数のチェックサムがプレーンテキストで表示されました。
ARM64 向けイメージファイルのチェックサムは1行目にありました。
5702372d25111e24d59596de62ae24daef873018cbf63c9dd9ff12292a57aca9 *ubuntu-22.04.3-live-server-arm64.iso
このプレーンテキストのページはチェックサムの検証で使える形式になっているので、イメージファイルと同じ場所に保存します。
ターミナルで保存したフォルダにcd してから、下記コマンドを実行して検証します。
% shasum -c SHA256SUMS
ubuntu-22.04.3-live-server-arm64.iso: OK
2行目のようにOK と表示されていれば問題なしです。
Ubuntu Serverのインストール
1. VMware Fusion を起動
Launchpad のVMware Fusion アイコンをダブルクリックします。
2. 新しい仮想マシンの作成
VMware Fusion のウィンドウが表示されました。
左上の[+] をクリックして表示されるメニューの中から[新規…] をクリックします。
“ディスクまたはイメージからインストール” の枠内に、ダウンロードしたISO ファイルをドラッグ&ドロップします。
インストールディスクとしてドラッグ&ドロップしたISO ファイルのファイル名が表示され選択されているので、[続ける] をクリックします。
仮想マシンの概要が表示されています。
今回はこの構成のままでよいので[終了] をクリックします。
ここで、仮想マシンをファイルで保存するため、ファイル名の入力を求められます。
任意のファイル名を入力して[保存] をクリックします。
3. 仮想マシンの起動
作成した仮想マシンのウィンドウが既に開いています。
大きい再生ボタンをクリックすると、Ubuntu Server のISO ファイルを使ったインストールが開始します。
ブートローダーが起動しました。
”Try or Install Ubuntu Server” を選択してEnter キーを押下します。
- Enter せずに放置すると、ハイライトされているエントリで処理が開始されます
- キーボードとマウス操作がゲストOS 側(仮想マシン内)にある状態になるので、ホストOS 側(macOS)に戻したい場合は[control]+[command] を押下します
4. 言語 – select your language
インストーラとインストールするOS のデフォルトの言語を選択します。
“English” を選択してEnter キーを押下します。
5. インストーラの更新 – Installer update available
最新版のインストーラーに更新するか選択します。
今回は更新するので、下の[Update to the new installer] を選択してEnter キーを押下します。
6. キーボード – Keyboard configuration
使用している環境に合わせたキーボードを選択します。
今回は”Japanese” を選択します。
Layout で”Japanese” を選択すると、Variant も”Japanese” に変わりました。
下の[Done] を選択してEnter キーを押下します。
7. インストールの種類 – Choose type of install
インストールの種類を選択します。
今回は”Ubuntu Server” を選択して、[Done] でEnter キーを押下します。
- Ubuntu Server
- デフォルトの構成。快適に使えるよう厳選されたパッケージが含まれている
- Ubuntu Server (minimized)
- 最小の構成
8. ネットワーク – Network connections
ネットワークの設定をします。
VMware 上のDHCP により割り当てられたIPv4 アドレスが表示されています。
今回はこのままの状態で[Done] でEnter キーを押下します。
9. プロキシサーバ – Configure proxy
プロキシサーバの設定をします。
今回はプロキシサーバを設定しないので、このままの状態で[Done] でEnter キーを押下します。
10. ミラーサーバの設定 – Configure Ubuntu archive mirror
Ubuntu のミラーサーバの設定をします。
GeoIP で取得した位置情報を使って選ばれたミラーサーバが自動で入力されています。
今回はこのままの状態で[Done] でEnter キーを押下します。
11. ストレージ – Storage configuration
ストレージの設定をします。
今回は記憶領域全体を使うので、”Use an entire disk” が選択された状態で[Done] でEnter キーを押下します。
- LVM (論理ボリューム) を設定しない場合は、”Set up this disk as an LVM group” のチェックをOFF にします
ディスクのパーティショニングの設定をします。
パーティションのデフォルトの構成が表示されています。
今回はこのままの状態で[Done] でEnter キーを押下します。
12. インストール実行の確認 – Confirmation destructive action
インストール作業の続行でフォーマットされるのでデータが削除されてもよいのかの確認です。
[Continue] を選択してEnter キーを押下します。
13. プロファイル – Profile setup
sudo が利用できるadministrator 権限のユーザーを作成します。
- Your name
- フルネームなど (任意)
- Your servers name
- ホスト名 (hostname)
- Pick a username
- ログイン時にユーザーの識別子として入力するユーザー名
- Choose a password / Confirm your password
- ユーザーのパスワード
任意の値を入力して、[Done] でEnter キーを押下します。
14. アップグレード – Upgrade to Ubuntu Pro
Ubuntu Pro にアップグレードするかの確認です。
今回はアップグレードしないので、”Skip for now” が選択された状態で[Continue] でEnter キーを押下します。
- Ubuntu Proエンタープライズ向けサポート – Ubuntu
15. SSHサーバ – SSH Setup
OpenSSH サーバの設定をします。
今回はOpenSSH サーバをインストールするので、”Install SSH server” のチェックをON にして、[Done] でEnter キーを押下します。
- “Import SSH identity” で、プロファイルの設定で作成したユーザーのSSH 公開鍵認証に使う公開鍵をGitHub やLaunchpad から取得して登録することができるようです(今回はやりませんでした)
16. Snapパッケージ – Featured Server Snaps
追加するパッケージを選択します。
今回は追加しないので、何も選択しないで[Done] でEnter キーを押下します。
ここで、Ubuntu Server のインストールが開始されます。
インストールが完了するまで、そのまま待機します。
17. インストール完了 – Install Complete!
“Install complete!” と表示され、下に[Reboot Now] のボタンが表示されたらインストール完了です。
続けて、Ubuntu Server をインストールした仮想マシンを起動します。
[Reboot Now] を選択してEnter キーを押下します。
18. Ubuntu Server 起動・ログイン
Ubuntu Server の仮想マシンが起動します。
“Failed unmounting /cdrom” と表示されました。インストールメディアのマウント解除に失敗したようです。
とりあえずEnter キーを押下します。
“ubuntu login:” と表示されましたが、続けてログが表示されてしまいました。SSH ホスト鍵の情報があるので、初回起動時のみ表示される内容のようです。
この状態でEnter キーを押下します。
末尾に”ubuntu login:” が表示されるので、登録したユーザー名を入力しEnter キーを押下し、続けて”Password:” と表示されたらパスワードを入力してEnter キーを押下します。
Ubuntu のプロンプトの入力ができる状態になりました。ログイン成功です。
正常にインストールできているようです。
インストール直後の状態の確認
ターミナルで確認します。
$ uname -a
Linux ubuntu 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:29:11 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
$ cat /etc/default/locale
LANG=en_US.UTF-8
$ cat /etc/timezone
Etc/UTC
$ cat /etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
$ hostname
ubuntu
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:7b:b2:4c brd ff:ff:ff:ff:ff:ff
altname enp2s0
inet 192.168.156.134/24 metric 100 brd 192.168.156.255 scope global dynamic ens160
valid_lft 1636sec preferred_lft 1636sec
inet6 fe80::20c:29ff:fe7b:b24c/64 scope link
valid_lft forever preferred_lft forever
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=13.2 ms
$ cat /etc/passwd | grep ubuntu
ubuntu:x:1000:1000:ubuntu:/home/ubuntu:/bin/bash
初期設定
タイムゾーン
UTC から日本のタイムゾーンに変更します。
$ cat /etc/timezone
Etc/UTC
$ timedatectl list-timezones | grep Tokyo
Asia/Tokyo
$ sudo timedatectl set-timezone Asia/Tokyo
$ cat /etc/timezone
Asia/Tokyo
ネットワーク:ホスト名
インストール時に仮で登録していたホスト名を変更します。
$ hostname
ubuntu
$ sudo hostnamectl set-hostname d.test
$ hostname
d.test
ネットワーク:IP アドレス (IPv4)
ホストOS 側の設定ファイルでDHCP で固定アドレスが割り当てられるようにします。
ホストOS 側の作業をする為に、ゲストOS をシャットアウトします。
$ sudo shutdown -h now
ここから、ホストOS 側の作業です。
DHCP サーバの割り当て範囲を確認すると、192.168.156.128 〜 192.168.156.254 でした。
% cat /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
〜 省略 〜
subnet 192.168.156.0 netmask 255.255.255.0 {
range 192.168.156.128 192.168.156.254;
〜 省略 〜
ゲストOS に192.168.156.135 が割れ当てられるよう設定します。
MAC アドレスはip a で確認したアドレスを指定します。
% sudo vi /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
〜 省略 〜
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######
〜 末尾に下記の4行を追記する 〜
host d.test {
hardware ethernet 00:0c:29:7b:b2:4c;
fixed-address 192.168.156.135;
}
VMware Fusionのネットワークサービスを再起動します。
% cd /Applications/VMware\ Fusion.app/Contents/Library/
% sudo ./vmnet-cli --stop
Stopped DHCP service on vmnet1
Stopped DHCP service on vmnet8
Stopped NAT service on vmnet8
Stopped all configured services on all networks
% sudo ./vmnet-cli --start
Enabled hostonly virtual adapter on vmnet1
Started DHCP service on vmnet1
Started NAT service on vmnet8
Enabled hostonly virtual adapter on vmnet8
Started DHCP service on vmnet8
Started all configured services on all networks
% sudo ./vmnet-cli --status
DHCP service on vmnet1 is running
Hostonly virtual adapter on vmnet1 is disabled
DHCP service on vmnet8 is running
NAT service on vmnet8 is running
Hostonly virtual adapter on vmnet8 is disabled
Some/All of the configured services are not running
hosts に登録してホストOS からドメイン名で名前解決されるようにします。
% sudo vi /etc/hosts
〜 末尾に下記の1行を追記する 〜
192.168.156.135 d.test
ここで、ゲストOS を起動します。
設定したIP アドレスが割り当てられているか確認するため、ゲストOS でip a で確認すると、設定したアドレスが割り当てられていました。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:7b:b2:4c brd ff:ff:ff:ff:ff:ff
altname enp2s0
inet 192.168.156.135/24 metric 100 brd 192.168.156.255 scope global dynamic ens160
valid_lft 1030sec preferred_lft 1030sec
inet6 fe80::20c:29ff:fe7b:b24c/64 scope link
valid_lft forever preferred_lft forever
SSH
SSH サーバの状態と、ゲストOS のローカル環境でSSH 接続できることを確認します。
$ systemctl is-enabled ssh
enabled
$ systemctl is-active ssh
active
$ ssh ubuntu@localhost
$ exit
ホストOS 側からSSH 接続できることを確認します。
% ssh [email protected]
% exit
ファイアウォール の状態を確認し、SSH 向けポート番号22 をアクセス許可する設定を登録します。
登録したらファイアウォールを有効にします。
$ sudo ufw status verbose
Status: inactive
$ sudo ufw app list
Available applications:
OpenSSH
$ sudo ufw allow 'OpenSSH'
Rules updated
Rules updated (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
ホストOS 側からSSH 接続できることを確認します。
% ssh [email protected]
ネットワーク:ソケット
接続待ちのソケットの状態を確認します。
$ ss -lnt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
$ ss -lnu
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
UNCONN 0 0 192.168.156.135%ens160:68 0.0.0.0:*
パッケージの更新
最後にパッケージを最新に更新します。
$ sudo apt update
$ sudo apt upgrade
あとがき
一通りの作業が終わり、やり残した感があることを書いておきます。
- Ubuntu Server、今度は最小構成でインストールしてみよう
- SSH サーバの設定で公開鍵をGitHub から登録する手順をやってみたい
- ファイアウォールを有効にした後、アクセス許可していないポートがきちんとアクセス拒否できているか確認する方法をきちんと整理できていない(telnet d.test 80、nmap -p 80 d.test)
参照
- Ubuntu Server for ARM – Ubuntu
- Ubuntu Server tutorials – Ubuntu
- Screen-by-screen installer guide – Ubuntu
- Ubuntu > Downloads > Server – Ubuntu
- How to verify your Ubuntu download – Ubuntu
- These releases of Ubuntu are available – Ubuntu
- Ubuntu > releases > Ubuntu 22.04.3 LTS (Jammy Jellyfish) – Ubuntu
- Configuring storage in the Server installer – Ubuntu
- Ubuntu Proエンタープライズ向けサポート – Ubuntu