Virt-Manager上のOpenBSD 7.6 amd64ですが,ディスプレイ解像度が妙に高く使いづらいです.ホストよりも広く2024×2024もあります.
Xだけならxorgの設定でどうにでもなりそうですが,その前のフレームバッファコンソールの時点から高く使いづらい.
調べて修正してみました.
$ dmesg | grep ^efifb0 efifb0 at mainbus0: 2048x2048, 32bpp
Virt-Manager上のOpenBSD 7.6 amd64ですが,ディスプレイ解像度が妙に高く使いづらいです.ホストよりも広く2024×2024もあります.
Xだけならxorgの設定でどうにでもなりそうですが,その前のフレームバッファコンソールの時点から高く使いづらい.
調べて修正してみました.
$ dmesg | grep ^efifb0 efifb0 at mainbus0: 2048x2048, 32bpp
OpenBSD 7.6 amd64をLinuxのVirt-Manager上で動かしています.serialを有効にしてhostからvirsh consoleで繋げるようにしてみました.
Linux上の仮想マシン上でOpenBSDを導入しようと思ったのですが,QEMU KVM,VirtualBoxで試したところどちらもディスクへのインストール中にkernel panicになってしまいます.
OpenBSD 7.5 amd64で起こり,最近リリースされたOpenBSD 7.6 amd64で再度試して同様の動きとなりました.
今回検索して解決しました.
qemuやKVMでよく使われるqcow2イメージのマウントを行いました.
$ sudo qemu-img info /var/lib/libvirt/images/Debian.qcow2 image: /var/lib/libvirt/images/Debian.qcow2 file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 20G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false
$ sudo modprobe nbd
$ sudo qemu-nbd -c /dev/nbd0 /var/lib/libvirt/images/Debian.qcow2 $ sudo fdisk -l /dev/nbd0 ディスク /dev/nbd0: 20 GiB, 21474836480 バイト, 41943040 セクタ 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0x3c0808c8 デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ /dev/nbd0p1 * 2048 499711 497664 243M 83 Linux /dev/nbd0p2 501758 41940991 41439234 19.8G 5 拡張領域 /dev/nbd0p5 501760 41940991 41439232 19.8G 83 Linux
$ sudo kpartx /dev/nbd0 nbd0p1 : 0 497664 /dev/nbd0 2048 nbd0p2 : 0 2 /dev/nbd0 501758 nbd0p5 : 0 41439232 /dev/dm-1 2
$ sudo cryptsetup open /dev/nbd0p5 crypt Enter passphrase for /dev/nbd0p5:
$ sudo lvmdiskscan : /dev/mapper/crypt [ <19.76 GiB] LVM physical volume /dev/nbd0p5 [ <19.76 GiB] /dev/debian-vg/root [ 18.75 GiB] /dev/debian-vg/swap_1 [ 1.00 GiB] :
$ sudo mount -o ro /dev/debian-vg/root /mnt $ ls /mnt/ bin dev home initrd.img.old lib64 media opt root sbin sys usr vmlinuz boot etc initrd.img lib lost+found mnt proc run srv tmp var vmlinuz.old
$ dpkg-query -W kpartx qemu-utils fdisk cryptsetup lvm2 mount linux-image-`uname -r` cryptsetup 2:2.0.4-2 fdisk 2.32.1-0.1 kpartx 0.7.7-1 linux-image-4.18.0-1-amd64 4.18.8-1 lvm2 2.02.176-4.1 mount 2.32.1-0.1 qemu-utils 1:2.12+dfsg-3 $ lsb_release -d Description: Debian GNU/Linux unstable (sid) $ uname -m x86_64
DevuanというDebianからのフォークディストリビューションがあります.
これは脱SystemdなLinuxディストリビューションで,Raspberry Pi等のarmhfにも対応しています.そしてDebianからDevuanに移行することが出来ます.(Debian jessie -> Devuan jessie)
DebianベースのRaspbianからも同様に移行できるというmailを見かけたので試してみます.
SD cardでやったほうが手順は少ないのですが,遅いし寿命も縮むだろうしってことでイメージサイズを拡大したRaspbianを元にchroot + QEMU User EmulatorでArm以外のhostででやってみました.
以下の手順で用意したイメージを元にします.
raspbian-stretch-lite_latest.img
が元のイメージで,今回devuan_ascii.img
としてコピーしたものを使います.
$ cp ./raspbian-stretch-lite_latest.img ./devuan_ascii.img $ sudo kpartx -av ./devuan_ascii.img add map loop0p1 (253:4): 0 85045 linear 7:0 8192 add map loop0p2 (253:5): 0 8129 linear 7:0 63 $ sudo mount /dev/mapper/loop0p2 /mnt $ sudo mount /dev/mapper/loop0p1 /mnt/boot
これでQEMU User Emulatorが透過的に利用できます.
$ sudo cp -p /usr/bin/qemu-arm-static /mnt/usr/bin/
$ sudo mount --bind /dev /mnt/dev $ sudo mount --bind /dev/pts /mnt/dev/pts $ sudo mount --bind /proc /mnt/proc $ sudo chroot /mnt /bin/bash
# apt update # apt upgrade -y
Devuanリポジトリの鍵をインポートする.そのために必要なdirmngr
pkgも導入.
# apt install dirmngr # apt-key adv --recv-keys 94532124541922FB Executing: /tmp/apt-key-gpghome.zqL0gcSbes/gpg.1.sh --recv-keys 94532124541922FB gpg: key 94532124541922FB: public key "Devuan Repository (Primary Devuan signing key) <repository@devuan.org>" imported gpg: Total number processed: 1 gpg: imported: 1
Devuanのstableはjessieですが,元のRaspbianがstretchなのでそれに対応するAsciiを指定しています.
Devuan jessieを使いたい場合は,Raspbian jessieを元にするといいと思います.
Devuan | Debian |
---|---|
Jessie(stable) | Jessie(oldstable) |
Ascii(development) | Stretch(stable) |
Beowulf(-) | Buster(testing) |
Ceres(unstable) | Sid(unstable) |
# vi /etc/apt/sources.list # cat /etc/apt/sources.list|grep -v ^# deb http://mirrordirector.raspbian.org/raspbian/ stretch rpi deb http://auto.mirror.devuan.org/merged ascii main contrib non-free deb http://auto.mirror.devuan.org/merged ascii-updates main contrib non-free deb http://auto.mirror.devuan.org/merged ascii-security main contrib non-free
# apt update && apt upgrade : 274 upgraded, 7 newly installed, 0 to remove and 3 not upgraded. Need to get 115 MB of archives. After this operation, 25.0 MB disk space will be freed. Do you want to continue? [Y/n] Y : # apt dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages were automatically installed and are no longer required: bluez bluez-firmware cgmanager libcgmanager0 systemd-shim Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED: libpam-systemd mountall pi-bluetooth plymouth raspberrypi-sys-mods systemd systemd-sysv The following NEW packages will be installed: eudev libeudev1 sysvinit-core The following packages will be upgraded: init libudev1 udev 3 upgraded, 3 newly installed, 7 to remove and 0 not upgraded. Need to get 1162 kB of archives. After this operation, 9431 kB disk space will be freed. Do you want to continue? [Y/n] Y :
#念の為kpartx -d
の前にfsckしておくといいかも?
# exit $ sudo umount /mnt/proc $ sudo umount /mnt/dev/pts $ sudo umount /mnt/dev $ sudo umount /mnt/boot $ sudo umount /mnt $ sudo kpartx -d /dev/mapper/loop0p1 $ sudo kpartx -d /dev/mapper/loop0p2 $ sync
普通にddとかEtcherとかでSD cardに書き込みます.
$ time sudo dcfldd if=./devuan_ascii.img of=/dev/sdd;sync;sync 128000 blocks (4000Mb) written. 128000+0 records in 128000+0 records out real 7m13.207s user 0m0.823s sys 0m9.211s
後はRaspberry Piで起動すればOK.今回はRaspberry Pi 2 Bで試しました.
Systemdとか居ません.
RAMの利用状況はこんな感じ
$ free total used free shared buff/cache available Mem: 949584 21916 879120 188 48548 879976 Swap: 102396 0 102396
しかしneofetchとかではRaspbianのままですね.該当pkgのreinstallとかで更新できそうな気がしますが未検証.
イメージ操作めんどくさいのでdebootstrapの方が楽かもしれない?
いやそれなら公式イメージのほうがいいか