12 February 2025

Ensuring USB DVD order

As my USB dvd drives were being detected into a seemingly random order, I wanted to be able to control what device each was being assigned.


Adding udev rules

  • Find serials to add
    • sudo udevadm info /dev/sr0 | grep ID_SERIAL_SHORT
    • sudo udevadm info /dev/sr1 | grep ID_SERIAL_SHORT
    • sudo udevadm info /dev/sr2 | grep ID_SERIAL_SHORT
  • Create /etc/udev/rules.d/99-dvd.rules
ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="first drive serial", SYMLINK+="dvd0"

ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="second drive serial", SYMLINK+="dvd1"

ACTION="add", KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="third drive serial", SYMLINK+="dvd2"

  • Reboot or force rerunning the rules
    • sudo udevadm control --reload
    • sudo udevadm trigger
  • However, this did not work
  • Edit /etc/udev/rules.d/99-dvd.rules and remove the ACTION
KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="first drive serial", SYMLINK+="dvd0"

KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="second drive serial", SYMLINK+="dvd1"

KERNEL="sr[0-9]", ENV{ID_SERIAL_SHORT}="third drive serial", SYMLINK+="dvd2"

  • Reboot or force rerunning the rules
    • sudo udevadm control --reload
    • sudo udevadm trigger


Outcome

Success, it now creates the /dev/dvd* in a consistent order. Unfortunately, Handbrake still tries to use the /dev/sr* labels.


Appendix

Sources


14 January 2025

Recursively Mount ZFS datasets

In order to simplify mounting and unmounting my encrypted volumes, I wanted some scripts.


Recursively Mount

#!/usr/bin/env sh
dataset=$1

zfs load-key "${dataset}"
zfs list -rH -o name "${dataset}"  | xargs -L 1 zfs mount


Unmount and unload key

#!/usr/bin/env sh
dataset=$1

zfs unmount "${dataset}"
zfs unload-key "${dataset}"


Usage

# mount example
sh mount.sh storage/encrypted
Passphrase:

# unmount example
sh unmount.sh storage/encrypted


Appendix

Sources


31 December 2024

ASUS ROG Charger Dock

In order to simplify connecting my chromebook to my tv, I wanted a small dock. As Best Buy has been running sales on the ASUS ROG Charger Dock for $30, I decided to snag it.


Pros

  • Price when on sale
  • Size (about the size of a deck of cards cut in half, but twice as thick)
  • 65 Watt charging capability
  • Ports:
    • USB-C to laptop
    • USB-A
    • HDMI
  • Comes with a braided USB-C cable
  • Charges chromebook and outputs to tv with a single laptop connection


Cons

  • Limited ports (no ethernet or downstream USB-C)
  • HDMI 2.0 limits output to 4K 60Hz


Other Thoughts

  • USB-C cord was packaged with sharp bends that may lead to longevity issues


Firmware

Mine came with firmware B41 and I updated it to B59 (version 1.4.1)


Appendix

Links:


23 December 2024

Replacing drives in ZFS take two

As it had been ~3 years since the last storage upgrade and there was only about 20% free space remaining, I wanted to take advantage of Black Friday prices. From WD.com, I grabbed 2 x 16TB Red Pro drives with a 5 year warranty.


Verify the drives

  • smartctl short tests
    • smartctl -t short /dev/sdX
    • smartctl -t short /dev/sdY
  • check smartctl test status after ~5 minutes
    • smartctl -a /dev/sdX
    • smartctl -a /dev/sdY
  • badblocks
    • Does 4 iterations of a write followed by a read. For my 16TB drives, each step took ~24 hours for a total of around 8 days.
    • nohup badblocks -wsv -b 4096 /dev/sdX >16TB_serial_1.log 2>&1 &
    • nohup badblocks -wsv -b 4096 /dev/sdY >16TB_serial_2.log 2>&1 &
    • The logs will continue to grow as it runs. Mine got to 5.3MiB each for my 16TB drives after ~8 days
  • Create script to check status of verification
    • echo "" > newline.log
    • echo "cat 16TB_serial_1.log newline.log 16TB_serial_2.log newline.log" > status.sh
    • sh status.sh


Add the drives to the mirror

  • Attach the drives
    • zpool attach [POOLNAME] [EXISTING_DRIVE] [NEW_DRIVE_1]
    • zpool attach [POOLNAME] [EXISTING_DRIVE] [NEW_DRIVE_2]
  • Resilver both drives at once
    • resolves: (awaiting resilver) on [NEW_DRIVE_2]
    • zpool resilver [POOLNAME]
  • Check on resilver
    • zpool status [POOLNAME]
    • resilver in progress since Wed Dec 18 17:37:48 2024
    • I had 4.35TiB to resilver with an estimated runtime of around 7 hours, it ~7 hours and 45 minutes


Remove the old drives

I am planning on waiting at least 11 days to ensure the new drives are functioning as expected, but this is the step to remove them.

  • zpool detach [POOLNAME] [DISKNAME]


Expand the storage

  • zpool set autoexpand=on storage
  • reboot
  • zpool online -e storage [NEW_DRIVE_1]


Appendix

Sources


03 November 2024

Ubuntu VM add storage

Since my Ubuntu VM was running out of space, I needed to expand it.


Steps I used

  • Expand the storage in Proxmox
    • Proxmox web GUI -> Select the VM -> Hardware
    • Select the Hard Disk
    • Disk Action -> Resize
    • Type the number of GB to add -> Resize disk
  • Have the VM use the additional storage
    • Proxmox web GUI -> Select the VM -> Console
    • login
    • sudo cfdisk /dev/sda
      • sort (This should hopefully put your FreeSpace right after your Linux filesystem
      • resize
      • Write
      • Quit
    • Reboot
    • sudo resize2fs /dev/sda4


Appendix

Sources


Repair La-Z-Boy Office Chair Lumbar support

 Similar to https://www.reddit.com/r/fixit/comments/1btyyg3/lazboy_ergonamic_mesh_chair_lumbar_pad_came_off/ my lumbar support fell off on my La-Z-Boy Ergonomic Mesh Swivel Task Chair model 60021 (Joel). The lumbar support was always loose and had to constantly be readjusted to where I wanted it.


The problem

  • The single screw that holds the padding to the lumbar support arm backed all the way out which caused it to fall off.
  • There is no apparent way to easily reattach it


The solution

  1. remove the arm the padding attaches to by removing the 2 screws with an allen key
  2. separate the padding from the plastic backing by carefully pulling them apart until the 4 posts pulled out of the padding (one in each corner)
  3. attach the plastic backing to the arm using the plastic adjuster, locking washer, and screw
    • I screwed it in really tight, but if you have some thread lock you may want to use it
  4. snap the padding back onto the plastic backing by pressing it into place
  5. reattach the arm to the chair


The result

The lumbar support is reattached and now much better at staying in place (better than new)

Update: Since I did not use thread lock the lumbar support has loosened some

14 September 2024

Adding a USB card to Dell r730xd

As I was tired of being limited to just 2 USB ports, I picked up the Inateck RedComets U21 20Gbps on Prime Day for $31.99 plus tax.


Specs

  • 2 lanes of PCIe 2.0/3.0/4.0 (3.0 or 4.0 required for full speed)
  • Max combined throughput 16 Gbps
  • 10 Gbps dedicated port
    • USB-A
  • 10 Gbps split between
    • 2 x USB-A
    • 2 x USB-C


Add USB Card

  • Shutdown containers and VMs
  • Turn off the server
  • Install the USB card
    • I installed it above the 2.5" drive bays in the back in Riser 3 (Slot 6)
  • Turn on the server
  • Fix fan speed
    • apt-get install ipmitool
    • ipmitool -I lanplus -H 192.168.1.X -U root -P <password> raw 0x30 0xce 0x00 0x16 0x05 0x00 0x00 0x00 0x05 0x00 0x01 0x00 0x00
    • response:
      • 16 05 00 00 00
  • Shutdown the VM you want to add it to
  • Add the USB Card to a VM
    • Select your VM -> Hardware -> Add -> PCI Device
    • Select Raw Device -> Device: ASM2142/ASM3142 USB 3.1 Host Controller
    • Check All Functions
    • Add
  • Start the VM
  • Check that it is working
    • lsusb -t


Test a USB hard drive

  • plug in the USB hard drive
  • determine what drive letter it is:
    • ls -l /dev/disk/by-id
  • Mount it
    • sudo mount -m /dev/sdb1 /mnt/backup-plus
  • Error: unknown filesystem type 'exfat'
    • sudo apt-get install exfat-fuse
    • sudo mount /dev/sdb1 /mnt/backup-plus -t exfat-fuse


Appendix

Sources