Convert Windows 7 VM from VirtualBox to Hyper-V

I used qemu utils in WSL for the disk conversion:

sudo apt install qemu-utils
qemu-img convert -f vdi -O vhdx "Windows 7.vdi" "Windows 7.vhdx"

VM in Hyper-V has to be created as Generation 1 with disk in IDE controller. The problem is that VirtualBox uses SATA driver by default. So after VM started I got BSOD 0X0000007B. I had to load PCI driver after start of Windows. To do it I have used startup repair to get into the command prompt and executed the following commands. It assumes that the original Windows system disk is mounted as D:.

reg load HKLM\OFFLINE D:\Windows\System32\Config\SYSTEM

reg add "HKLM\OFFLINE\ControlSet001\Services\atapi" /v Start /t REG_DWORD /d 0 /f
reg add "HKLM\OFFLINE\ControlSet001\Services\intelide" /v Start /t REG_DWORD /d 0 /f

reg unload HKLM\OFFLINE

MacOS lock / unlock times

You can find lock / unlock times in log using terminal. The script below searches for records in last 8 hours, but you may change it using --last parameter. See lockunlock for details.

log show --last 8h --style syslog \
  --predicate 'process == "loginwindow"' | grep -iE "user is active, releasing the activity semaphore|going inactive, create activity semaphore"

iRedMail and Dovecot fulltext search

I already have quite a large mailbox and I started running into timeout issues when searching in Roundcube mail. AI gave me some instructions for installing the dovecot-fts-xapian plugin, but I kept encountering various errors:

Warning: FTS Xapian: missing configuration - Using default values
Warning: FTS Xapian: Memory too low (text) 'std::bad_alloc'

The problem was incomplete configuration, but the AI didn’t know what to do. I found the correct instructions on GitHub.

(...)
protocols = imap pop3 sieve lmtp

mail_plugins = (...) fts fts_xapian

plugin {
    fts = xapian
    fts_xapian = verbose=0

    fts_autoindex = yes
    fts_enforced = yes

    (...)
}

service indexer-worker {
    # Increase vsz_limit to 2GB or above.
    # Or 0 if you have rather large memory usable on your server, which is preferred for performance)
    vsz_limit = 2G
    # This one must be 0
    process_limit = 0
}
(...)

Streaming music from Nextcloud

My music library is something I listen to daily, mainly while working. Years ago, I started with ownCloud Music, but I struggled with rating songs and then filtering them into playlists. I tried various players, whether based on Ampache or Subsonic, but none of them fully suited me.

Eventually, I ended up using Ample, but I ran into memory issues in the browser — during long playback sessions, the browser would start to lag and had trouble handling memory.

In the end, I created my own fork of Ample.fm, where I reworked many parts and resolved the memory issues. Another challenge was having a player for iOS, since background playback via HTML5 doesn’t work very well there — after some time, iOS simply stops the playback. So I also built my own native iOS app that works as a wrapper around Ample.fm.

So my recommendation would be:

Upgrade Debian 10 to Debian 11

I use those steps on LXC virtual in Proxmox:

  1. Make sure all packages are upgraded: apt update && apt upgrade
  2. Backup container in Proxmox
  3. Edit release version: sed -i'.bak' 's/buster/bullseye/g' /etc/apt/sources.list
  4. Fix security distribution name: sed -i 's|bullseye/updates|bullseye-security|g' /etc/apt/sources.list
  5. Update other configuration files in /etc/apt/sources.list.d/ appropriately
  6. Update packages index: apt update
  7. Do minimal system upgrade: apt upgrade --without-new-pkgs
  8. Do full upgrade: apt full-upgrade
  9. Restart the system: reboot