• 1 Post
  • 10 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle

  • I cannot recommend any USB-connected drive for long-term use. (Only for portable devices that get plugged in for a little while at a time.) In the long term, any USB drive will randomly reset during periods of heavy use – including heavy writes, meaning some data will get lost.

    USB enclosures tend to just crap out completely after a year or two, if used continuously on a server. I know because I twice used 1TB external drives with OpenWRT (home router) devices. The data will be safe on the drive, but you’ll have to replace the enclosure.

    1. My first recommendation would be to look very carefully at the chassis and see if there’s any way at all to fit another SSD inside it. 2.5" SSD’s are usually thinner than 2.5" hard drives, so it may be possible, and most motherboards have more SATA ports than they need.

    Is there possibly an NVMe slot on the motherboard? Or an open PCIe slot where you could put an NVMe adapter?

    1. My second recommendation would be using a 2.5" hard drive. Newegg has a 5TB one for $135, but unfortunately that’s as large as they seem to go. It will be a bit slower than an SSD, but still probably around 150MB/s for sequential access.

    2. My third recommendation, if money is really tight, would be an additional server, with a large 3.5" hard drive. This will be a lot cheaper than an 8TB SSD, but adds complexity, electricity use, space use, and possibly fan noise.


  • This is false. X is not less secure than Wayland. It does have a different security model, which can become insecure if you misuse it. I don’t think people really care about situations where multiple user accounts access the same display.

    In my opinion, the benefits of xdotool far outweigh any benefits gained by Wayland’s security model. It’s impossible to make xdotool in Wayland, because of its security model.


  • I never got Proton working on my main distro (Debian), so I probably fall into this category. I did use Wine, but Wine is a lot harder to set up, and never ran games as well as Proton did.

    Here is my major gaming history, since I started on Linux in 2007. Yes, I really could focus on a single game for years back then.

    • 2007: Starcraft, in Wine
    • 2007: Nethack, native
    • 2011: Morrowind and Oblivion in Wine
    • 2012: Minecraft, native
    • 2014: sgt-puzzles, native
    • 2016: Steam, got hundreds of native Linux games.
    • 2017: Briefly got Steam and Path of Exile working inside a Wine instance.
    • 2022: Steam deck, with the specific purpose of being able to run Proton on it.
    • 2023: New Ubuntu installation, and Proton finally worked on my PC.

    Today, I still prefer native Linux games. I mostly only use Proton when peer pressure for a multiplayer game required it. But I never use Wine any more.



  • A couple months ago, I made a Palworld server box out of a spare motherboard assembly (mobo, processor, ram) from a computer I had recently upgraded.

    I didn’t have any spare drives lying around, so I plugged in 7 USB flash drives and made them into a RAID array. Not a true RAID array, but a BTRFS filesystem with volumes spread onto each flash drive, with the data redundancy set to raid1, and the metadata redundancy set to raid1c3.

    It worked… in the sense that I never lost any data. It certainly didn’t work in the sense of having good uptime.

    The first problem was getting it to boot right. The boot line in GRUB had “root=UUID=…” instead of a specific drive named. That is normal. However, in BTRFS multi-volume filesystems, all the volumes have the same UUID. So the initrd was only waiting for a single drive matching that UUID, then trying to mount it as the root filesystem. This failed, because the kernel had not yet set up the other 6 USB drives, and this BTRFS filesystem needs all 7 volumes present. Maybe 6, if you used the “degraded” mount option.

    The workaround was to wait for this boot process to fail, at which point you get dropped into an initrd shell. Then, you look at all the drives and make sure they’re all there. And then… I don’t exactly remember what happened next. I think it was some black magic that erases your mind in the process. I somehow got it booted from the initrd shell.

    Installing Steam and the Palworld server worked ok, and it even ran for a few hours before crashing overnight.

    The next morning, I tried rebooting it. Unfortunately, the USB drives weren’t all appearing. Turns out the motherboard had some bad USB ports, some sometimes-bad USB ports, and a maybe-bad PCIe bus, because the PCIe USB expansion card I plugged in had weird problem that it had never had before.

    I found the most reliable ports and plugged the drives in there. But you can’t just replug them in the initrd. It doesn’t have USB hotplug support. So each time it tried to boot with not all the drives there, I restarted it again until one time I finally had all the drives.

    I changed the GRUB boot line to “root=/dev/sdg1” . This made it wait for all the drives to load, in any order, and whichever one was last would be mounted as the root filesystem (but the kernel would automatically include all the others too, since they were successfully initialized).

    The bad USB ports kept bringing down the server every day or two. I bought a cheap NVMe drive and added it to the BTRFS filesystem, and then removed all the USB drives except the largest. That fixed the reliability. It’s been like that since.

    Now, to boot the server, all I have to do is change the GRUB boot line to “root=/dev/sdb1” . Since the NVMe drive is much faster than the USB drive, it always initializes first. If the initrd waits for sdb2, then it will always have both drives initialized when it tries to mount the root filesystem.

    I could add that to the grub.cfg, or come up with some other more permanent solution, but I’m not planning on rebooting this server ever again. My friends fell off Palworld, and I gave a shutdown date that’s about a week away. And the electricity is pretty reliable here.


  • Using a VPN (like Tailscale or Netbird) will make setup very easy, but probably a bit slower, because they probably connect through the VPN service’s infrastructure.

    My recommended approach would be to use a directly connected VPN, like OpenVPN, that just has two nodes on it – your VPS, and your home server. This will bypass the potentially slow infrastructure of a commercial VPN service. Then, use iptables rules to have the VPS forward the relevant connections (TCP port 80/443 for the web apps, TCP/UDP port 25565 for Minecraft, etc.) to the home server’s OpenVPN IP address.

    My second recommended approach would be to use a program like openbsd-inetd on your VPS to forward all relevant connections to your real IP address. Then, open those ports on your home connection, but only for the VPS’s IP address. If some random person tries to portscan you, they will see closed ports.




  • Yeah, Windows 7 is very old. It’s definitely a concern. I keep him highly firewalled on the network so that hopefully he won’t get hacked.

    I usually play on Debian, but when I contacted Steam for support regarding Proton, they said they only supported Ubuntu or Steam OS. Since Steam OS isn’t currently available for PC, that means Ubuntu.