メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

M1 Macの仮想マシンでUbuntu

 M1 Mac速いけどまだ足りない…

M1 Chip搭載のMacbookProを入手して、いろいろとテストしている。

確かに速い!メモリ8GBで苦しいんじゃ?と思ったけど全然そんなことないし、Intelの16GB相当と言えるような感じ。

バッテリーの持ちも本当に良いし、ZoomやSkypeを使うときはメインマシンとなっている。

さて、今回はこれまでx86対応が遅れている箇所を検証してみた。


目的はM1 Mac上に仮想環境を構築し、その中でLinuxを動作させること。

VirtualBoxが動作しないので、他に方法はないのかと探してみると、OpenSource Base(QEMUを使用したもの)で、UTMというのが存在することがわかった。



しばらく、OSXから離れていたので、情報不足でした。
そこで、こいつを使用して構築を試みる。

intel系のコードの場合、rosset2が変換して動かすものの、初期変換に時間がかかることと、ドライバ等は正常動作しないことが多い。

仮想マシンは、M1のnativeで動作させたいので、以下の方針で進める。

  • 仮想マシンはArm64 CPUとする
  • OSは、Arm64に対応したもの
  • できれば、使い慣れているUbuntuもしくは他のLinux
色々と探してみると、すでに同じ構成でのレポートがあった。
参考にしたのは、「第672回 UTMを使ってM1 Mac上でUbuntuを動かす」だ。


UTMのインストール

これは、どのインストール方法を選択するかで、変わってくる。自分のマシンはHomebrewを導入済みなので、当然brewでインストールする。
(https://github.com/utmapp/UTM/releases/tag/v2.1.2)

$ brew update
$ arch -arm64 brew upgrade
$ arch -arm64 brew install --cask utm

何の問題もなく進む。
brewを使用していない人は、dmgを落とすか、AppleStoreで有料購入できるらしい。

仮想マシンの構築

さて、UTMを起動して、仮想マシンを作成する。
メモリは8GBしかないので、とりあえず3GB割り当てることにした。
Ubuntu程度なら、2GBでも充分動くけど、快適に動かせるように少し余分に…。

UbuntuのISOイメージはArm64のサーバ版を落とす。
(ubuntu-20.04.2-live-server-arm64.iso2)

Arm64のDesktop版は存在していないようなので、あとから日本語関係、デスクトップ関係を入れることにする。

光学ドライブの設定だけ、最初戸惑ったが、Removable Driveを選択さえすれば大丈夫。
電源を入れると、見慣れたBoot画面が続きCUIでのインストールができる。

設定項目は、GUIとそれほど変わらないし、Server版を入れたことがあれば、戸惑うところはない。
インストールが完了して、ログインできれば最初のステップは完了。

デスクトップ環境の構築

ログイン後、そのまま以下を実行。

$ sudo apt install tasksel
$ sudo tasksel install ubuntu-desktop

これで、作業完了。
先のサイトでは途中で止まったりすることがあるとのことだが、何の問題もなく完了した。

このまま再起動する。


しばらくすれば(ほんの数秒だけど…)いつもの見慣れたログイン画面が表示される。
ここまで来れば、もうしめたもの。楽勝です。


あとは、細かな設定を行えば完了。(図はすでに日本語環境導入済み)
  • タイムゾーンの設定
  • 日本語環境の導入
  • 必要なアプリケーションのインストール

問題点

  • GPUが機能しない
    • まぁ、開発に使うのであれば全く問題ない速度で描画できている。
    • ゴリゴリにゲームを行いたい人には、厳しいかも…。
  • ネットワークがNATしかない
    • bridgeが使用できれば楽なんだけど、仕方ない。
    • サーバとして使用するならポートフォワードを設定してやることで、一応利用できる。
    • クライアントとして使うだけならNATで問題なし。
  • 一部のキーが効かない
    • これは、本当に困った(後述)

と、いくつか問題点はあるが、大きく問題になるのは最後のキーバインドがおかしいことだ。
それ以外は、使い方の問題でなんとかできる部分なので、注意すれば良いだけだ。

キーバインドを変更する

まず、一番の問題は、パイプ[|]が効かないこと。
コマンド操作するのに、これがなければ意味がない。
もちろん、毎度temporarily fileに落として、それを喰わせることで、なんとか回避はできる場合もあるが…。

2つ目は、[_]が効かないこと。
これは、ファイル名や変数名に多用するので、使えないのは厳しい。
とりあえず、ホスト側とゲスト側のクリップボードは共有されるので、一旦Mac側でコピーして、貼り付ければ入力できなくはないが、不便すぎる。

まずは、調査から…。

$ xev

で反応を見る。
すると、[¥]キーは、[⌘command]キーと同一の扱いになっているようだ。
[ろ]キーは完全に無視されている。

一応、キー設定の問題かもと思い、対応しそうなキーボードを全て試したがダメだった。

$ sudo dpkg-reconfigure keyboard-configuration

続いて、X環境で切り替えられないかと思い、キーボードのレイアウトを変更してみる。
もう、手当たり次第設定し確認し、試してみたが…。
$ setxkbmap -print -verbose 10
$ setxkbmap -layout jp
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook78
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook79
$ setxkbmap -model apple_laptop
$ setxkbmap -model apple
$ setxkbmap -print -verbose 10
$ setxkbmap -model macbook79
$ setxkbmap -print -verbose 10
$ setxkbmap -layout jp
$ setxkbmap -print -verbose 10

まったくだめだ…。

で、あちこち探してみるが、もっとも関係ありそうなのがQemuのバージョンによる不具合らしい。UTMが使用しているQemuのバージョンが上がれば自然に解消しそうだ。
とはいえ、キーが使えないのは不便なので、どこかに割り当てることにする。

キーバインドの変更

xevで調べているときに、shift+[0]に「~」が割り当てられていた。
キートップ上は何も割り当てがないはずなのに…。
しかも、shift+[^]にも「~」の割り当てがあるので、ダブっている。

そこで、shift+[^]を押したときに、[|]を出力するように変更する。
もう一つの、[_]は、空いているキーがないので、shift+spaceに割り当てることにした。

$ xmodmap -pke > .XmodmapNow

と、現在の設定を一旦ファイルに吐き出す。
これを、参考にエディタで編集して読み込ませれば、完了。

$ nano .Xmodmap
と親近ファイルを作成し、先のファイルを参考に関連する項目を作成する。

keycode  21 = asciicircum bar equal plus
keycode  65 = space underscore space

最終的には、上記の2項目のみで完了。

$ xmodmap .Xmodmap

と実行することで、設定が反映される。
これを、手入力するのはだるいので、key.shに書き込んで実行させることにした。

本当は起動時に実行させても良いのだけど、今後バージョンが変わることを期待して、必要に応じて実行することに…。
まあ、1度実行するだけなので、手間ではない。

これで、仮想マシンないのCUIでも気持ちよくコマンド入力ができるし、エディタでも入力ができるようになった。

使用感

ちなみに、仮想マシンの操作感は、びっくりするぐらい快適。
メインマシンのUbuntu(仮想ではなく直インストール)で使用しているマシンより、早く感じる部分もあって少々驚いている。

MacOSを入れなくても、Arm版をそのまま入れれば、驚くほど快適になりそうで、その誘惑にいつまで我慢できるか…。



コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ