• Android notifications are still terrible

    I’m still missing Android notifications, Gmail this time. I asked the Claude AI for help. Check out this list of 20 options. Perhaps Android’s product has gotten too complicated? The list isn’t entirely correct and it misses a few (some are hidden in the Gmail app itself, for instance) but it gives a gist.

    What are all the settings on Android Gmail that might mean I don’t see a notification for a new email? I want all of them, a comprehensive list.

    Here’s a comprehensive list of Android Gmail settings that might prevent you from seeing notifications for new emails. Sorry for bad formatting.

    1. Notifications disabled in Gmail app:
    • Settings > [Your account] > Notifications > Notify for new messages
    1. Notification categories turned off:
    • Settings > [Your account] > Notifications > Manage notifications
    1. Sync turned off for your account:
    • Settings > [Your account] > Sync Gmail
    1. Battery optimization interfering:
    • Device Settings > Apps > Gmail > Battery > Battery optimization
    1. Do Not Disturb mode active:
    • Device Settings > Sound > Do Not Disturb
    1. App-specific notification settings in Android:
    • Device Settings > Apps > Gmail > Notifications
    1. Notification importance set to low:
    • Device Settings > Apps > Gmail > Notifications > Importance
    1. Notification channels disabled:
    • Device Settings > Apps > Gmail > Notifications > [Specific channels]
    1. Gmail app data restrictions:
    • Device Settings > Apps > Gmail > Mobile data & Wi-Fi > Background data
    1. Gmail app battery restrictions:
      • Device Settings > Apps > Gmail > Battery > Restricted
    2. Inbox categories filtering:
      • Gmail app > Menu > Settings > [Your account] > Inbox categories
    3. Priority Inbox settings:
      • Gmail app > Menu > Settings > [Your account] > Inbox type > Priority Inbox
    4. Filters or labels automatically archiving emails:
      • Check filters in desktop Gmail settings
    5. Outdated Gmail app version:
      • Google Play Store > My apps & games > Gmail > Update
    6. Android system notification settings:
      • Device Settings > Notifications > App settings > Gmail
    7. Power-saving mode active:
      • Device Settings > Battery > Power saving mode
    8. Account sync issues:
      • Device Settings > Accounts > Google > [Your account] > Sync account
    9. Airplane mode enabled:
      • Quick settings or Device Settings > Connections > Airplane mode
    10. Poor internet connection:
      • Check Wi-Fi or mobile data connectivity
    11. Gmail storage full:
      • Check available storage in Gmail account

    This list covers most settings that could affect Gmail notifications on Android. The exact names and locations of these settings may vary slightly depending on your Android version and device manufacturer.

    Would you like me to elaborate on any specific setting or provide more information?

  • Windows screenshot tools in 2024

    It’s 2024 and Windows is still bad at taking screenshots. Actually the built-in Snipping Tool is sort of OK but third party solutions are better. Also my Apple keyboard doesn’t have a Print Screen button so all the defaults are awkward for me.

    For years I’ve used Lightshot but the last release was 2009. Then I used ShareX but never liked it’s complicated UI.

    Greenshot is my new bae. It’s open source and has a good UI with some attention to usability and simplicity. There’s a simple built-in editor. I could suggest some minor UI improvements but basically it’s fine. The one feature it’s missing is WebP support but I can easily convert manually with File Converter.

    Relationship with Greenshot ended. Turns out it has a serious vulnerability over a year old that is actively being exploited. The release hasn’t been updated in 7 years. The developer keeps making noises about wanting to put out a new release but having trouble with signing keys, etc. IMHO it’s irresponsible for them to keep offering the software if they can’t fix it. I regret recommending it.

    Flameshot is also nice with a capture UI that looks like the old Lightshot UI. But there is no way to change the hotkey from PrintScreen and the three year bug report discussion left a bad taste in my mouth. In general Flameshot seems to not have quite the usability polish of Greenshot, and since I can’t even launch it with my keyboard I won’t use it.

    Flameshot’s last release was 2022. There’s been a lot of submitted improvements since then but no release on Windows.

  • Debian 12 slow login in Proxmox

    On my Proxmox 8.1.10 server if I create a privileged Debian 12 container, logins work but hang for 25 seconds before getting a shell prompt. There’s a good discussion of the problem in this forum post.

    The clue was this error in journalctl:
    Jul 28 16:43:23 transcode dbus-daemon[98]: [system] Failed to activate service 'org.freedesktop.login1': timed out (service_start_timeout=25000ms)

    Looking more closely there’s a bunch of errors in systemd-login saying it can’t start. Kind of amazed I ever get a shell.

    Unfortunately the recommended fix of setting ProtectControlGroups=no in the systemd-login definition did not work for me. Tried it, still broken.

    The other ideas discussed are an unprivileged container (can’t do) or a nested priviliged container (can’t do). There’s also a mention that Ubuntu has a special patch for systemd preventing this error. I think that’s my next step, try Ubuntu instead of Debian.

    Sometimes this computer stuff sucks.

  • Towards a Proxmox NAS

    After trying out OpenMediaVault and TrueNAS I’m still left wanting a good NAS for Proxmox. It seems odd to me that the Proxmox folks don’t have their own product. They’ve got most of the pieces already, and a similar product in Proxmox Backup Service. They also bet heavily on Ceph but that’s a high performance distributed storage system, not a simple SMB or NFS server.

    Update: HexOS might be worth keeping an eye on. It’s TrueNAS with usability stuff on top for ordinary users.

    Now I’m wondering if I should just roll my own NAS services in a container or VM. I’m kind of doing that already, it works fine. I’m not going to make a fancy GUI for it, I’ve been editing /etc/exports and /etc/samba/mb.conf for 20+ years, why stop now? Although Cockpit and the file-sharing plugin might work?

    The key thing here is Proxmox can manage ZFS itself. It seems strange to pass through disk hardware devices to a VM to have a separate kernel manage the disks when Proxmox can do it. So here’s the idea:

    1. Create a ZFS pool in Proxmox for NAS data.
    2. Create datasets for network file shares in Proxmox.
    3. Do not make filesystems or mount the network file shares in Proxmox itself
    4. Install Debian in a VM, maybe with Cockpit as a GUI.
    5. Pass the network file share datasets in as VirtIO-SCSI single disks to the VM.
    6. Configure samba and NFS in the VM to share the disks
    7. Bonus: disks can be shared on a private Proxmox-only bridged network for other guests to access them.
    8. Optional: install syncthing in the VM
    9. Optional: enable Restic backups of the file shares in the VM

    The part I’m not entirely clear about is the “VirtIO-SCSI” part. I like the idea that ZFS is in Proxmox. What I don’t know is how good performance is virtualizing it t his way. And you don’t have ZFS-level features available in the VM like snapshots and stuff, you would want to use simple ext4fs or something. (ZFS-in-ZFS is possible but can quickly cause problems.) That’s not ideal, ZFS snapshots (for instance) are great for backups. OTOH you can use Proxmox own backup software for the datasets.

    Another option would be to create and mount the filesystems in Proxmox and then pass them to all the guests with virtiofs. You wouldn’t even need SMB or NFS if you aren’t sharing data outside Proxmox! But virtiofs isn’t fully baked yet, Proxmox kinda supports it but not fully.

    I’m also not clear if a VM is necessary; you might be able to do this all in a container. In that case you’d make the filesystems and mount them in proxmox, then pass them through with a bindmount.

    I think there’s a potential product here, a new NAS operating system. Designed to be used as a VM inside Proxmox with Proxmox managing the storage. Just a small thing to publish network shares. Building a real product is a lot of work though, particularly if you want a GUI.

    But maybe I’ll make this VM for myself just as a hack. Honestly I’ve done most of the pieces in different ways already, the difference here is being more systematic with managing the storage in Proxmox. I bet in two hours I could have NFS and Samba fully set up and going.

    I wonder if this would be a good NixOS project?

  • TrueNAS Scale first impressions

    After having mixed reactions to OpenMediaVault I thought I’d give TrueNAS Scale a try as a small Network Attached Storage system to run under Proxmox. This is a first time user and a very small test, nothing serious, but I learned something. I set up a single user accessing a single SSD via SMB and NFS.

    TrueNAS is a bit confusing as a product. It’s a commercialized evolution of FreeNAS by iX Systems. It is still free and open source. TrueNAS Core was the original product and runs on FreeBSD. It’s being deprecated in favor of TrueNAS Scale running on Linux. So I’m only looking at Scale. Scale used to use Kubernetes to manage services but is migrating towards Docker instead. That’s created some drama with TrueCharts, a third party company that published a lot of popular TrueNAS Scale applications for installation. That’s over now but presumably the Docker ecosystem will substitute.

    Compared to OMV, TrueNAS makes a very good first impression as a serious, professional product. It also feels like overkill for a home setup but maybe that’s OK. The docs are quite good, succinct and thorough. I’m having a bit of trouble because the TrueNAS Core docs seem more complete but are just a little out of sync with how Scale works. Scale has its own docs but they seem a little less organized. Still the docs are great. And community support is good, lots of nice answers on Reddit and TrueNAS’ own forum.

    The initial setup experience seems faster than it was in OMV, despite TrueNAS having more complex features. Maybe that’s just because I’ve learned more about NAS setups in general, or maybe it’s because TrueNAS is nicely designed.

    Fancy features

    There’s some interesting advanced features for share types. Like early on you can designate a filesystem as case-insensitive if you’re only using it for SMB. There’s presets for multiprotocol SMB/NFS shares, for write-once-read-many SMB setups, etc. I don’t know if I need (or trust) these but it could be quite useful if they work well.

    TrueNAS has elaborate support for creating virtual machines with KVM. It also has containers, and Docker, and Core made good use of BSD jails. I don’t need any of that stuff, that’s what Proxmox is for.

    TrueNAS gives you access to ZFS snapshots. And it has cloud backup support. The latter looks more like a “replicate to cloud” feature but in combination with snapshots that could get you versioning. I didn’t explore this but it looks promising.

    TrueNAS also has an app store and a bunch of installable apps. Some seem useful to have tightly bound in your NAS: SyncThing or Nextcloud are great. Others I’d rather run in separate Proxmox guests, like Plex or a Minecraft server. Also with the TrueCharts drama the world of community contributed apps is a bit in flux, but I bet that’ll work out. Moving to Docker is a good choice.

    Complexity vs. low-spec systems

    TrueNAS really wants to be a system for enterprise bullet proof storage. It’s very good at that, if you want to spend $2000+ on a storage array I’m sure it’s your software. But I’m sitting here with a $200 mini PC and a $100 USB drive. Is TrueNAS for me? Sorta, it will work, but it will nag you.

    TrueNAS is all-in on ZFS. And it really, really doesn’t want you to lose your data. It really wants at least 2 storage disks and would be very happy to use 8 or more. It is possible to set up TrueNAS using a single disk (technically “striped mode”, but with just 1 disk). But the software complains and warns you at every opportunity that what you’re doing is not safe. Which, fair enough, but for my little home use case really it’s what I want.

    On the flip side if you want to have 2 disks and mirror them or have 8 disks and some fancy RAIDz2 setup with a separate log device, TrueNAS totally is the product for you. Which, honestly, is probably a good idea for a real storage array.

    There’s a similar nag if you try to use TrueNAS to share a USB drive. It complains “‘SSD’ is consuming USB devices ‘sdb’ which is not recommended.” Again, there’s good reasons for that but it ignores the reality of how good USB has gotten and the value in using consumer hardware for small projects. AFAICT it just complains once and you can ignore it.

    I don’t know. Overall TrueNAS still feels like overkill to me. OTOH it’s not that hard to set up and you can run it for a small storage array. So maybe it’s worth it, just ignore the extra complexity you’re not using?

  • Inside BOSGAME B100 (adding a drive)

    My Mini-PC has support for adding a SATA drive so I took a look at what’s involved. Kinda fiddly. Not as nice as the Beelink in this video where the drive cage has a SATA connector already wired to the motherboard. In the BOSGAME instead there’s a tiny 12 pin connector and the computer came with a cable to plug into that with a SATA connector on the other end. There’s a similar looking cable on Amazon so maybe this connector isn’t entirely proprietary but it is unusual. Also fragile.

  • USB speeds and bad cables

    I had a problem where copying from one USB disk to another was slow, averaging 10.5MBytes/s. The source disk seemed fast enough but while the destination should do 100 MBytes/s it was one tenth that. The problem is it was connected with a USB 2.0 cable at 480 Mbit/s. With better cables it goes fast like expected. Still I should be getting 60MBytes/s out of it, or at least over 30.

    I discovered every single USB C-to-A cable I have is USB 2.0 and limited to 480 Mbits/s. I diagnosed this with lsusb -t to see the interface speeds (480, 5000, or 10000) and hdparm -t to test throughput (100 MBytes/s or more when working well.)

    Good USB 3 C-to-A cables do exist and can do at least 5000Mbits/s but they cost more. I’m going to have to buy some. There’s no easy way to tell a slow USB 2 cable apart from a fast USB 3 cable, but usually the USB 3 Type A cables have blue connectors or are marked SS or SS+ for “SuperSpeed”.

    Update: good cables to buy

    I bought a bunch of cables on Amazon and tested them. All of these advertise 10Gbps and tested fine at 10Gb/s. They all have blue connectors but only the Monoprice cable has “10 SS” printed on the connector. I did not test the power on max charging.

    • Monoprice USB 3.1 Gen 2 cables. These are my favorite because they are well labeled. Shortest length is 3 feet.
    • LDLrui, a generic USB 3.2 Gen 2 cable. These seem to work fine and come in 1 foot length.
    • Monoprice USB 3.1 Gen 2 adapter. The only adapter I’ve seen that works at SuperSpeed in both orientations, no “flip for super speed”. No idea if that means it can’t do high power charging. Note this adapter is big, much longer than the flip-style.

    I also tried this Ugreen “up to 10Gbps” adapter. It’s one of those “flip to act differently” designs that I think are confusing. Also while I could connect at 5Gbps once, mostly it was connecting at 480Gbps no matter which of 4 orientations I tried. I’m returning them.

    Lots of detail

    Below is a deep dive on my troubleshooting and some theoretical disk speeds for consumer hardware. But first…

    Good USB C-to-A cables

    The cable matters! For some reason there’s a bunch of bad cheap C-to-A cables and adapters out there. The good ones cost more, should be marked “super speed”, and probably have blue connectors.

    SuperSpeed C-to-A cables exist from name brands like Anker or Monoprice. They cost more. I’ve ordered these and these.

    SuperSpeed C-to-A adapters are harder to find and are usually female on the USB-A end. But that’s not what I need, I need a male A plug to stick into the A receptacle on the mini-PC. There’s lots of generic adapters in this configuration but precious few name-brand ones. I ordered these from UGREEN and this Monoprice. (There’s also lots of USB 2.0 C-to-male-A adapters but that’s what I’m trying to replace!)

    I am curious about this specific C-to-A jack adapter from XAOSUN. It has a strange design, the docs say “The Type-C female port allows you to switch between USB 3.1 speed and USB 2.0 speed with a simple flip of the Type C plug.” Why would you do that?! One reviewer says “Be aware that devices like this support high-speed charging and high-data transport from USB-C to USB-A 3.0 and above are not symmetrical on the USB-C end. One side of the USB-C supports single-lane USB 3.1 Gen 2 data and low-power charging. The other side of the USB-C supports USB 2.0 data transfer and up to 100W 20V 5A charging.” So maybe that’s it? I did notice the name brand C-to-A adapters talked about maxing out at 3A. Maybe they’re trying to fake non-standard 100W charging on a USB-A port which requires weird wiring incompatible with 10Gbit/s data? Anyway “works differently when flipped” sounds like a confusing mess so I’d rather get something that just does high speed data. All my fast charging devices now are USB-C and USB-PD anyway.

    Update: almost all C-to-A small adapters have this flip-for-superspeed design. This discussion says the whole concept of C-to-A adapters is problematic.

    Disk medium, SATA, and PCIe speeds

    Modern spinning disk media can transfer at least 100MByte/s, more like 150 or even more if you have a high performance disk. SSDs are much faster, like 3000MByte/s or more.

    Older disks are interfaced via SATA. SATA 3.0, from 2008, is 6 Gbit/s = 750MByte/s. That’s faster than any spinning disk but slower than modern SSDs. New SSDs interface via M.2 / NVME which runs at PCI bus speeds. That’s very fast, even the oldest PCIe 3.0 with 4 lanes is almost 4000MBytes/s. I’m not clear on whether these SATA and PCIe speeds are shared between devices or not. In practice any PCIe interface is fast enough for any SSD and SATA is fast enough for spinning disks but not SSDs.

    Bottom line, here’s a low estimate of speeds of typical disks on modern hardware:

    • Spinning disk via SATA: 100MByte/s
    • SSD via SATA: 500MByte/s
    • SSD via M.2: 3000MByte/s

    USB 2 and USB 3 speeds

    A proper PC connects to the drives directly via SATA or M.2. But mini-PCs often use USB instead and you have a drive enclosure with SATA or M.2 input and USB output. Modern USB enclosures support at least 5Gbit/s (625MByte/s) which is just about as fast as any SATA drive (HDD or SSD) but will limit an M.2 SSD.

    USB comes in multiple flavors, this is a good reference. USB 2.0 is “high speed”, ie: slow. It means 480 Mbit/s (60 MByte/s). USB 3.0 dates to 2008 and is 5Gbit/s (625MByte/s). USB 3.1 is 10Gbit/s and USB 3.2 2×2 is 20Gbit/s. Sometimes you see USB 3 stuff advertised as “SuperSpeed” or “SuperSpeed+” but these days it’s more common to just publish the number. Everything in the last 10 years or so should be supporting at least 5Gbit/s on USB 3, 10Gbit/s is common. 20 is rare.

    Note these speeds are shared between all devices on the same USB bus. So if you have two drives plugged in to a 480Mbit/s USB bus the max throughput copying from one to the other is going to be 480 / 2 = 240Mbit/s or 30MByte/s (I think?).

    Cables also matter. I think USB-A maxes out at 10Gbps, it can’t do the x2 part required for 20Gbps. Older USB-A cables may be limited to 5Gbps. And old, cheap, or bad cables are limited to 480Mbps USB 2. Look for a blue block inside the connector, that’s the branding for at least 5Gbps. Or the words “SuperSpeed” or “SS”.

    USB-C is better. I think most USB-C cables are SuperSpeed but there are probably some cheap “charging cables” out there that aren’t.

    Unfortunately, mini-PCs mostly still have USB-A ports on them. So you need a C-to-A adapter or cable. That’s where I got in trouble, turns out a lot of those are not SuperSpeed but limited to USB 2 speeds.

    I think mixing USB 2 and USB 3 devices on the same bus is OK and that the USB 3 devices can operate at their faster speeds. Not positive though. (Reference.)

    Bottom line theoretical speeds from USB:

    • USB 2.0: 60MByte/s, half that if transferring between two drives
    • USB 3.0 5GBps: 625MByte/s
    • USB 3.1 10GBps: 1250MByte/s
    • USB 3.2 2×2 20GBps: 2500MByte/s

    In practice USB 3.1 10Gbps is faster than any SATA interface and even 5Gbps is close to SATA speeds. But USB 2.0 is slow, slower even than spinning disks. It is a bottleneck to be avoided.

    Cable testing

    I decided to try a bunch of cables with a Samsung SSD 860 EVO 1TB SSD in a UGREEN SATA enclosure. It has a USB-C port. The USB interface is 10Gbit/s, the SATA is 6Gbit/s, and this old SSD drive can do about 500MByte/s. The disk is the bottleneck then, but should be capable of 500MByte/s.

    With a USB C-to-C connection to the USB-C port on the BOSgame, lsusb -t shows 10000M speed and hdparm -t measures 500MBytes/s. Great! (I also tested a spinning rust 1TB disk at about 90MBytes/s with this same C-to-C cable. Yay!)

    With a blue USB C-to-A cable sold with a hard drive as SuperSpeed, lsusb -t shows 5000M speed and hdparm -t measures 410MBytes/s. Still quite good but it’s interesting the C-to-A connection speed is half the C-to-C and that is reflected in actual throughput. In theory 5000Mbit/s should still deliver 500Mbyte/s transfers but in practice, it gets knocked down to 410MBytes/s.

    With various other C-to-A cables: cheap ones, fancy Anker ones that are actually USB 2, the good C-to-C cable plugged into a cheap C-to-A adapter, every other cable I tried it connected at 480Mbps. And the drive measured out about 16MBytes/s. Turns out these are all USB 2.0 cables, WTF? They are garbage but I guess they are common because they are cheaper.

    I don’t understand why I’m getting 16MBytes/s with USB 2.0 connections and not the theoretical 60MBytes/s. Maybe the Mini-PC’s USB 2.0 implementation is not very good?

    Mini PC speeds

    I have a BOSGAME B100 I bought in December 2023. The Amazon marketing page picture says the USB-A ports in back are USB3.2 Gen 1*2 and the USB-A ports in front are “USB3.2 Gen 2*2”. (Note this says “*2” which I think means two ports, not the USB x2 double speed ports.) There is also a USB-C port on front. The Bosgame site spec page also says four USB 3.2 ports but it suggests the front ones are the slower 5Gbit/s and the back are 10Gbit/s. Testing confirms this is true: the back ports are 10Gbit/s, the front ports are 5Gbit. But all these ports should be USB 3 and capable of at least 5Gbit/s = 625MByte/s, faster than any 2.5″ SATA disk. (There is also room for an internal SATA drive.)

    I also bought a Beelink S12 Pro Mini PC. According to the Beelink sale page it has 4 USB3.2 Gen2(10Gbps) ports. Good! It also has room for an internal SATA drive.

    The good disk

    The USB disk I was copying from is an old WD Passport I bought in 2012 and use mostly as a backup drive. It is an honest USB 3.0 drive. lsusb -t shows 5000Mbit/s and hdparm -t tests out at about 100MB/s. I get this using either a USB-A port in the front or the back or the BOSGAME. It’s using a short cable with USB-A on one side (colored blue) and Micro USB 3.0 Micro-B connector on the drive side.

    The bad disk

    Actually no disks are bad. If I connect them with C-to-C cables, they all test at 100MBytes/s. The badness comes from the crappy C-to-A cables, not the disk.

    But the destination disk that was slow for my copy is a WD Blue 2.5″ SATA spinning disk in a cheap Orico enclosure. The disk can do up to 150MB/s and the enclosure claims 10Gbps USB 3.2 Gen2 so should not be a bottleneck. smartctl doesn’t show any obvious errors, the drive has 32,000 hours on it but no errors. It should be capable of 150MByte/s. In practice I get 100MByte/s with a good cable.

    The test disk

    Described above in cable testing: a 860 EVO in a SATA enclosure. Gets 500MBytes/s with a proper cable.

    The best disk

    I have an SSD in a UGREEN M.2 enclosure that says it does 10Gbits/s via USB-C. (The SSD itself is a 970 Evo that can do 3000MByte/s, or faster than the USB.) So I should get an honest 1250MByte/s with this device. Just for fun I tried it with a C-to-C cable. It connects at 10,000 Mbit/s. hdparm -t shows just about 1000 MBytes/s, or close to the USB speed. The SSD is capable of 3x that speed but that’s too fast for USB 3. In theory I might get double the speed if I could manage a USB 3.2 2×2 connection at 20Gbit/s.

    Observed bad copy behavior

    Notes from the slow copy using a bad C-to-A cable. I’m using rsync -a --partial --append --progress to copy a 700GB file from one USB disk to another. It’s slow, it copied at 10.5MBytes/second. the rsync outpput:

    699,404,892,160 100% 10.51MB/s 17:37:25 (xfr#1, to-chk=0/2)

    That’s terrible. Even worst case (both drives on USB 2.0) I should expect nearly three times this speed.

    Watching the rsync progress it fluctuates between 20MB/s to as slow as 2MB/s. iotop doesn’t show me anything interesting, this copy is the only major I/O.

    Linux diagnostics: USB

    The thing that got me started looking at all this in detail was this output from lsusb -t

    /:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
        |__ Port 3: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
        |__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
    /:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
        |__ Port 6: Dev 5, If 0, Class=Mass Storage, Driver=uas, 480M
        |__ Port 7: Dev 4, If 0, Class=Mass Storage, Driver=uas, 480M
        |__ Port 8: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 8: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

    That’s telling me two disks (dev 4 and dev 5) are running at 5000Mbit/s. Good! But two are running at 480Mbit/s. Bad! Even so, I should still get at least 30MByte/s (or more), but something’s not right.

    Device 5 is the slow Orico disk I’m writing to. dmesg tells me “usb 3-6: new high-speed USB device number 5 using xhci_hcd”. But lsusb says it’s running at 480Mbit, because of the bad cable.

    Device 4 is the 2.5″ SATA SSD in a Ugreen enclosure. Also connected at 480Mbit/s because of the cable.

    Note the slow disks are connected with the UAS driver. That should be good, that’s more capable than the older usb-storage driver. These enclosures are newer and support the newer UAS protocol.

    Linux diagnostics: hdparm throughput

    Not much to say here, just hdparm -t /dev/sdd is a quick test of max throughput on a disk. Something like fio is better for real disk I/O benchmarking but hdparm is useful for seeing if it’s basically working right.

  • OpenMediaVault first use thoughts

    I’m looking for a good NAS system to run inside Proxmox. Proxmox is great at managing disks but doesn’t have anything for SMB/CIFS, NFS, etc. There’s lots of ways to add a NAS as a guest system in Proxmox. TrueNAS is very popular but is complicated and overkill. So I gave OpenMediaVault a try.

    OMV is good but not great. My biggest issue is it’s not very professional, particularly when it comes to docs. Also system design. But it is a solid complete product and has a lot of plugins. There’s an active user community but often the advice you find in forum threads is pretty amateurish.

    Basic setup is straightforward but has a lot of steps. I found this guide useful. Basically you install OMV. Then to add a share you add a new drive (not the system drive), create a file system, then create shared folders in it. Then you make users (or allow guest access). Then you configure SMB or NFS or whatever to serve the share. By default the system supports NFS, Rsync, SMB/CIFS, and ssh. It all works pretty well and it’s nice having a complete product in a web GUI.

    Where things get creaky is extending it. Take backups. There’s no built-in backup system for data drives (a bit of a surprise!) There’s several plugins: rsnapshot, timeshift, borgbackup, … There’s also a “USB backup” that I can’t find any real docs for. But the description says “Automatically synchronise a shared folder to an USB/eSATA/SAS/SD device” and that leaves me wondering if they’ve confused synchronization for backups.

    Another example of sloppiness: the flashmemory plugin, an OMV extra, that replaces directories like /var/log with a folder2ram filesystem so you don’t wear out a flash drive with write amplification. Nice idea! It works fine. But if you look closely it looks like it never automatically syncs the logs to disk, so when you reboot you lose them. Maybe? I tried testing it and got inconclusive results.

    I’m also disappointed OMV doesn’t support ZFS. There is support for a plugin, and maybe that works great, but having it not in the core makes me nervous. (The outdated “not for public” docs don’t reassure!) Proxmox supports ZFS great, so one option is to have Proxmox manage the disk pool and pass through virtual disks to OMV instead of hardware devices.

    I’m using ext4fs in OMV for now. It also supports btrfs, that’s it’s fancy filesystem, but that’s not the one I’d choose.

    OTOH there’s a lot of plugins for OMV and it’s all easy to get working! Some curious omissions: there’s support for S3 and OneDrive for instance, but no generic rclone support which would support so much more. On the good side someone literally started working on a Restic backup plugin today. Does it work? Can I trust it? Probably not!

    It’s all just a bit more fast and loose than I want for a store of precious user data.

    So now I think I need to try TrueNAS again. I tried it briefly and it felt like overkill. But OMV feels like underkill, so… TrueNAS is really confusing right now though. Their old TruNAS Core FreeBSD product is being phased out with TrueNAS Scale (Debian) taking over. OK, fine. But somehow it has Kubernetes inside it? Also TrueCharts has historically been a big part of the ecosystem with their add-on apps but there’s crazy 🤡 drama there. The whole thing still feels like overkill, particularly when it comes to them having their own hypervisor features.

    I just want a nice little web UI wrapper for SMB, NFS, SFTP, and Restic.

    I pushed Claude to suggest some less well known products. It came up with Rockstor, XigmaNAS (NAS4Free), EasyNAS, and Openfiler. Also Unraid (not open source but not very expensive) or Nextcloud (does a bunch of other things I don’t need).

    Maybe I give up and just run a Debian VM with old fashioned text file configs like we’ve been doing for decades.

  • OpenMediaVault setup notes

    Setting up a little NAS with OpenMediaVault. First time user, my notes on what I did. This guide helped.

    VM configuration

    • Make a Proxmox VM with 4GB RAM, 8GB of disk, and 2 CPUs. Legacy DOS BIOS.
    • Add a USB passthrough by device ID for an external disk that’s plugged into the machine
    • Enable qemu-guest-agent (note qemu-ga won’t start and gives a confusing error in the VM without this.)

    OMV Installer

    Basic Debian installer, mostly just take defaults.

    OMV Configuration

    Configuration mostly done via OMV’s web UI. Note at first it’s only available via http:, not https:. Default login is admin / openmediavault

    • Apply system updates
    • Change time zone to UTC
    • Change the admin login password
    • ssh: add myself to ~root/.ssh/authorized_keys
    • ssh: Install Tailscale
    • Reboot OMV from the web console

    That’s a basic setup. After reboot….

    And configuring the storage disk, mostly steps in the Web GUI

    • Storage > Disks: Wipe the disk in the Web UI: I aborted this when it started doing dd if=/dev/zero. But it did something with GPT to the partition table first, so probably a good idea.
    • Storage > Smart: Set up SMART for the external hard drive on USB
    • SSH: apt install hdparm so I can test disk speed (39 MB/s for a slow external drive.)
    • Storage > File Systems: Created an ext4 filesystem on the USB disk. This took a very long time!
    • Storage > File Systems: Mounted the filesystem. It ended up under /srv
    • Storage > Shared Folders: create a shared folder named “test”. Admin and Users are read/write, Others are no access
    • Users: Create a user “nelson” with a password
    • Services > SMB/CIFS > Settings: Enable service, set Workgroup
    • Services > SMB/CIFS > Shares: add the test shared folder I created

    And using the disk from a client:

    • On Windows, open \\192.168.3.37\ and type in credentials (after a long pause)
    • On Linux, see the share with smbclient -L //192.168.3.37/
    • On Linux, mount the share
      apt install cifs-utils
      sudo mount -t cifs //server_ip/share_name /mnt/smb_share -o username=your_username,password=your_password
    • The name \\omv\ also works using the hostname omv. Also omv.local resolves as a hostname, Avahi is running.

  • Beelink N100 boot when power restored

    I got a Beelink N100 for a little server. By default if the power is cut, it doesn’t boot again when it comes back on. Annoying for a server!

    To enable it, go to the BIOS settings. Under Chipset > PCH-IO Configuration -> State after G3, set that to “S0 state”. There’s screenshots for all this in this Reddit post.

    Sure is obscure huh? Why AMI doesn’t have a simple to understand top level setting for this, I don’t know. FWIW PCH is the Platform Controller Hub, the chip (or part of CPU) that controls various parts of a PC system.

    PCH defines various power states like “full on” and “soft off”. G3 is “Mechanical OFF”, the name for there being no electricity at all. By default my Beelink goes to S5, which is “Soft Off”. So I’m telling it to go to S0 “Full On” instead after a G3 event.