コンテンツにスキップ

Ubuntu Core メモ

カスタム版Ubuntu Core Imageを作成する(失敗)

Section titled “カスタム版Ubuntu Core Imageを作成する(失敗)”

元ネタ

公式の設定ファイルを使ってやろうとしたが断念。

Ubuntu Core 20以降はconsole-confを無効化できないというエラーが出る。

Error: Error preparing image: cannot support with UC20+ model requested customizations: console-conf disable

https://github.com/snapcore/models/raw/master/ubuntu-core-22-amd64.model

sudo ubuntu-image snap --disable-console-conf --snap=nextcloud -O nextcloud-core-22-amd64 ubuntu-core-22-amd64.model

VMWareでdd形式のイメージファイルを起動する

Section titled “VMWareでdd形式のイメージファイルを起動する”

この段落の記載は、Ubuntu Coreに限らず dd形式のイメージファイルで提供されるOSをVMware等で動作確認する際に使えるノウハウです。

イメージを変換してVMDK準備する

Section titled “イメージを変換してVMDK準備する”

https://cdimage.ubuntu.com/ubuntu-core/22/stable/current/

上記から ubuntu-core-22-amd64.img.xz をダウンロードしてvmdkに変換する。 当方はStarWind V2V Converter で変換を行い、

手元の VMware Playerで動作確認してから VMware vCenter Converter StandaloneでESXiに転送した。

qemu-img 等を使ってもいいだろう。

既存のvmdkを使用する設定で仮想マシンを作成し、変換したvmdkを指定する。

OSの種類は「Ubuntu 64ビット」CPUやメモリの割り当ては適当に。2コア、4GBあれば十分じゃね?

Ubuntu Core は Legacy BOOTに対応していないので、仮想マシンのファームウエアをUEFIに変更する。

セキュアブートやTPMはあれば使用されるがなくてもOK

既存vmdkを使用すると仮想マシンの.vmxに絶対パスが記載されトラブルの原因になるので.vmxを編集する。

ide0:0.fileName = "D:¥VM¥nextcloud-core\ubuntu-core-22-amd64.vmdk"

↓

ide0:0.fileName = "ubuntu-core-22-amd64.vmdk"

Ubuntu Core の初回起動時にデータ保存用パーティションの拡大が自動的に行われるため、vmdkの大きさを必要な大きさに変更しておく。

この辺の動きはSDカードに書き込むラズパイ用OSと同じ考えのようだ。

わかりにくい表記だが、[展開]を押すとサイズ指定ダイアログが出るので、必要なサイズを指定する。

なお、この時点ではvmdkファイルがいきなり大きくなったりしないので、多めにしておくのがいいと思われる。

vmdk-size-change1.png
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 778M 18M 761M 3% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda3 721M 75M 594M 12% /run/mnt/ubuntu-boot
/dev/sda2 1.2G 397M 785M 34% /boot/efi
/dev/sda5 250G 2.0G 235G 1% /writable
/dev/sda4 26M 44K 23M 1% /var/lib/snapd/save
tmpfs 1.9G 0 1.9G 0% /media
tmpfs 1.9G 0 1.9G 0% /mnt
tmpfs 1.9G 28K 1.9G 1% /tmp
tmpfs 1.9G 0 1.9G 0% /var/lib/sudo

RLoginで接続できないときの対処法

Section titled “RLoginで接続できないときの対処法”

Windows付属のOpenssh.exeで繋がるのにrloginで繋がらなかったためにいろいろ試行錯誤した。

Ubuntu CoreはRLoginデフォルトのSHA1署名で接続できない設定になっていることが判明したので、SHA512に変更することで接続可能になった。

なお、SSH子公開鍵はインストール開始前に登録しておかないとログインできない。

rlogin-sha512.png

当方のネットワークは一部のポート開放が制限されたネットワークで、SNIで振り分けるリバースプロキシ等の構築などもぶっちゃけ面倒なので、Cloudflare TunnelでWANからアクセスできるようにする。

snap版のパッケージもあるがコンテナ内に閉じ込められており機能が制限されていおり、デーモンの常駐などができない。

Ubuntu Coreは/homeや/etc/systemd/systemが書き込み可能になっているので、Cloudflare公式サイトから cloudflared の実行ファイルを落としてきてchmod +xすれば公式のドキュメント通りに設定することができる。

なおUbuntu Core 22にはwgetやcurlが無いのでscpで送り込む必要がある。

コンソールログインできるようにする

Section titled “コンソールログインできるようにする”

パスワードがあればコンソールログインできる模様。

ネットワークの設定ミスって締め出された時のために設定しておく

sudo passwd <SSHでログイン中のユーザー>

LXDやDockerで使用可能なブリッジアダプタを作成素すためのUbuntu Core 以外の普通のUbuntuでも通用する書き方。

すでにある設定ファイルをコピーして、名前順に並べ替えた際に後にくる名前で作成する。

横着して元のファイルをそのまま編集するとバッティングしてひどいことになるので必ず名前を変える。

おかしくなったら作った設定ファイルを消して再起動すればよし。

# This is the network config written by 'console-conf'
network:
ethernets:
ens33:
dhcp4: no
bridges:
br0:
interfaces:
- ens33
dhcp4: no
addresses:
- 192.168.100.223/24
gateway4: 192.168.100.1
nameservers:
addresses:
- 192.168.100.200
- 192.168.100.201
search:
- junk-labs.net
parameters:
forward-delay: 0
stp: no
optional: true
version: 2