バックアップから仮想マシン作成 (Debian)

長年こんなことをやってます.ただし,年がら年中でなく,時々思い出したようにやるのでたいてい前のことは覚えていません.

そんなわけで自分用のメモです.

前提条件

稼働している実マシンないし仮想マシンから,定期的にrsyncにて差分もしくは完全バックアップを取っている.

まあ,完全と言っても,/dev, /tmp, /proc, /sysはたいてい外していると思います.

また,バックアップ元のマシンはSWAPはzramのみでSWAPパーティションはなく,ルートパーティションも一本でマウントするボリュームはなしです.

仮想ディスクの作成

仮想ディスクは,qemu-imgで作ります.形式はQEMU/KVMならばqcow2,VMWareならばvmdkでしょう.もちろんraw形式や他の形式でも大丈夫ですが,最終的に収まる仮想マシンのデフォルトにしておくのが無難でしょう.

qemu-img create -f qcow2 ファイル名.qcow2 40G

次にパーティションを切ります.nbdの出番です.以下はroot権限での作業になります.

modprobe nbd
qemu-nbd --connect /dev/nbd0 ファイル名.qcow2
fdisk /dev/nbd0

パーティション形式はGPTにします.EFI用のパーティション512MBを “BIOS boot” 形式にして,残りをLinux filesystemにします.

そして,mkfsでフォーマットします.

mkfs -t ext4 -j /dev/nbd0p2
mkfs -t vfat /dev/nbd0p1

引き続き,/dev/nbd0p2を/mnt/hdなどにマウントして,

rsync -artlvd --numeric-ids バックアップのディレクトリー /mnt/hd

バックアップしてない必要なディレクトリーを作ります.

cd /mnt/hd
mkdir dev tmp sys proc
chmod -v a+rwx tmp
cd
umount /mnt/hd
qemu-nbd --disconnect /dev/nbd0
rmmod nbd

仮想ディスクをブータブルに (GPT)

仮想ディスクを仮想マシンのホストで一つの仮想マシンのディスクとして登録します.次に,バックアップしたDebianと同じバージョンのインストーラーをダウンロードして,その仮想マシンのDVD/CDとして登録し,起動ディスクに指定します.

あとは,Advanced > Rescueとして,メニューに従って進めば,仕立てた仮想ディスクをルートにマウントしてくれるので,

dpkg-reconfigure grub-pc

とすれば,ブータブルになりますので,DVD/CDを外してディスクから起動させます.何かエラーが出たら修正します.

仮想ディスクをブータブルに(MBR)

仮想ディスクをGPTでなくてMBRでパーティションを切ってしまった場合,上記の方法ではうまく行かないかもしれません.この場合,筆者の標準的なパーティションはルートだけの一つになっています.

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

で,うまく行くと思います.

起こりがちなエラー

エラーとしてありがちなのは,/etc/fstabに記したルートドライブの情報が仮想マシンの仮想ディスクとマッチしないことです.その場合は,もう一度レスキューモードにして,/etc/fstabを修正したうえで,dpkg-reconfigure grub-pcをやり直します.

ネットなどについては起動してから修正できます.

案外簡単です.

不定期的でも問題ないですが.

LIRC再び (2)

自分の記事を元にLIRCに再挑戦のつもりが,あまりに設定などに違いがあるので,他所様の記事を参考に設定完了までこぎつけました.

しかし,その先がいかんです.参考にした記事はsystemdではない😅

まあでも,そこだけ気をつければ行けそうです.

systemctl status lircd
sudo systemctl stop   lircd
mode2 -d /dev/lirc1

で,なんかそれらしいものを受信するようになりました.

次は目的のリモコンのコードの解析です.

LIRC再び

非常に重要かつ現実的な問題に対処するため,LIRCを再びインストールしてみます.

直面している問題は,睡眠時にエアコンをかけっぱなしにすると,明け方冷えてくることです.たぶん日が出ると室外機に日が当たるので,温度制御に誤差が出てくるのではないかと推測しています.

まず,恐ろしく陳腐化している筆者自身が6年前にまとめたRaspberry Pi (LIRC)を参考に始めます.

受信器を電源を3.3V, GNDはGND,信号出力はGPIO 18にそれぞれ接続しています.GPIOのピンレイアウトは公式サイトを参照するのが無難でしょう.

次に,ソフトウエアの準備です.Raspberry Pi OSの場合は,

apt install lirc

でインストールできます.また,/boot/firmware/config.txtの適当な場所に,

# For LIRC
dtoverlay=gpio-ir,gpio_pin=18
dtoverlay=gpio-ir-tx,gpio_pin=17

などと記述しておきます.そして,rebootしますが,

lsmod | grep lirc

しても何にもありません.やはりこの6年の間にずいぶん色々変わってしまったようです.新しいドキュメントを探すことにします.

秋月電子通商で購入した, “OSRB38C9AA” .
参考にしたページ: Raspberry Piと電子工作

本稿と参考にしたページとではピン接続が異なります.

ThunderbirdがDovecotに繋がらなくなった件 (解決済み)

自前のサーバーで動くLet’s Encryptの証明書をupdateしてからどうもクライアントであるThunderbirdの挙動がおかしくなりました.

TLSのimap (=imaps)でつないでいます.ログインはできて新着メールは読めるのだけれど読んだメールをサブディレクトリーに移そうとしてもうまく操作ができません.

Appleの iOSやmacOSの “Mail” では正常に動作します.

サーバーのログを見ると,

というのがあり,たぶんこれだと思います.ネット検索した所,どうもDovecotのSSL/TLS設定が良くなかったようです.これまで,/etc/dovecot/conf.d/10-ssl.confのssl_certの設定は,

ssl_cert = </etc/letsencrypt/live/FQDN/cert.pem

としていました.これでこれまでAppleの “Mail” (iOS, macOS)もThunderbirdもつながっていましたが,

ssl_cert = </etc/letsencrypt/live/FQDN/fullchain.pem

としないといけないようです😅

これで,サーバーのDovecotのログにエラーは出ず,Thunderbirdも正常にサブフォルダーをアクセスできるようになったようではあります.

しかし,違うマシンのThunderbirdでアクセスすると見えないサブフォルダーが存在するなど今いち動作の信頼に欠けます.

Distroによっては番号が違う場合があります.

DOSBox-XでLog200

DOS用LogソフトLog200をWindowsのDOS窓以外で動かす取り組みですが,Slackware64 (AMD64)のDOSEMUのもとで,Log200を動かして,Slackware ARM (32bit)のサーバー上にあるデータファイルはNFSでアクセスしよう,ということにしました.DOSEMUはmacOS上で動くVMWare Fusionで動くSlackware64でも動きますし,そこからNFSでサーバーのディレクトリーをマウントすることもできますから,仮想マシンと実マシンのいくつかの環境からLog200を実用的に使えます

いちおうこの状態を結論としていました.

ところが先日,親切な通りすがりのかたが,DOSBox-XのDOS/VモートでLog200が動く可能性が高いとアドバイスしてくださいました.

さっそくDOSBox-Xがインストール済みなmacOS (x86_64 Sonoma 14.5, x86_64 Ventura 13.8.7)で試したところ,あっさり動きました.通りすがりのかたに教えていただいた通り,基本的に設定ファイルである “dosbox-x.conf” に,

[dosv]
dosv=jp

と書くだけで自前でDOSを用意する必要さえもありません.

macOS Ventura (x86_64 13.8.7)上で動くDOSBox-Xで動くLog200 (DOS版)

以前調べたところではDOSB0x-Xは,Debian (Raspberry Pi OS)やManjaroでは公式チャンネルからの配布はありません.代わりにFlatpakというパッケージマネージャーでインストールすることになっていて,今回あらためてインストールしたところ,日本語DOS/Vモードがちゃんと動き,Log200も問題なく動きました.

Raspberry Pi OSにインストールしたFlatpakで動くDOSBox-Xで動くLog200

Flatpakでうまく行った環境は,

  • Manjaro AMD64
  • Raspberry Pi OS (64bit)

です.あっさり書いちゃましたが,非x86のRaspberry Pi OS(Raspberry Pi 5 Model B 8GB RAM)でも簡単に,しかも実用上問題ない速度で動きました.

Raspberry Pi OSで動きますから,Debian AMD64でも間違いなく動くでしょう.

最終目標である,Slackware ARM (32bit)ですが,もちろん公式配布パッケージにDOSBox-Xは含まれていませんが,SlackBuildsにはあるので,sbopkgでインストール可能な可能性があります.一方SlackBuildsにはFlatpakもあります.

他にFlatpakで動かすアプリがいくつかあれば先にFlatpakを試す価値はありますが,いまのところDOSBox-Xだけですから,先にDOSBox-Xをsbopkgでbuildするほうがいいだろうと判断してそうしました.

で,buildできて動きました

Slarckware ARM (32bit) 15.0にsbopkgでインストールしたDOSBox-Xで動くLog200 DOS版

いよいよSlackware ARM64 15.1のリリースが待ち遠しいです.

仕立ててはいませんが,Manjaro AMD64をホストにしてSlackware64のゲストからも同様にLog200は動かせます.
MacPortsによる.
buildには少々時間がかかりますが.