Hawk attack!

Hawk attack

Our geese defenders did a good job today, scaring off a hawk that tried to grab a chicken! Fortunately, the hawk was not successful and our guard goose was on duty to scare him off.

You can see the hawk drop the chicken on the way out (dark shape). The kids said that the goose hit the hawk when it came into the pen.

#homestead #chickens #goose

Hawk attack

Our geese defenders did a good job today, scaring off a hawk that tried to grab a chicken! Fortunately, the hawk was not successful and our guard goose was on duty to scare him off.

You can see the hawk drop the chicken on the way out (dark shape). The kids said that the goose hit the hawk when it came into the pen.

#homestead #chickens #goose

Fun with water and fixing things!

Recently, we have had two water projects to do. One was the pressure tank in the well house. The other was the dishwasher.

Last week I came home from Scouts, and Meagan told me that there was no water in the house. I went out to the well house and found a scene that looked a lot like this (after we shut off the pumps):

The exit fitting from the pump was blown out of the pump housing. Easy enough to fix. it was about 9 pm, so I had enough time to run down to Lowe’s and get parts to fix it, and I did that night. We had water again, so that was cool.

The next day things were good, until later that night, when sitting at my desk I heard a bang. Shortly after, Jarek told me that there was no water in the bathroom. I went back out to the pump house and found this:

It had failed again, the same way. Further diagnosis indicated that the pressure tank was failed, as it was not having any pressure. The pressure gauge on top of the pump had also failed. Since it never built pressure, the pump never shut off, causing heat to build up and eventually deform the PVC pipe to the point where it could blow out of the fitting.

Off to the store again to get parts, I set to work on installing a new pressure tank and hoping that the pump was still ok, as it was rather expensive to replace the pump as well.

Evan is helping me chamfer some pipes prior to gluing them up.

The system is coming along nicely, but I ran out of parts to fully get the water filtration system connected. I was able to get the bypass loop complete and restore water to the house. Off to Lowe’s once more for the rest of the parts.

Garrett went with Jarek and I. Jarek wanted to get some seeds for a gardening project of his own. Garrett got to help the checkout lady, Susan, with scanning them. He thought that was the best!

Back at the house with everything hooked up! We had a noticeable increase in water quality after putting the filter system in use.

About a week later, the dishwasher threw an error code. As you might imagine, this ranks right up there with having no water in a large family. The seven of us make just a few dishes every meal, and that becomes a problem if the dishwasher is down.

I had lots of helpers on the first day (more on that later) of diagnosis. I showed the kids the guts of the dishwasher and how to diagnose it.

I ordered a new valve, which was the most likely cause of this (IE – inlet error) failure and put it on. However, the problem still persisted. I ordered another two valves, and the next day I put the one on that came today – one is still in transit as of this writing.

However, the problem still persisted. I took the system apart again and found water in the black tube (visible above), which meant that some water was getting through, but not enough apparently.

I ended up taking the dishwasher out, turning it around, and hooking it back up so I could test. The slow trickle above was with the ‘new’ valve on. I ended up taking that valve off and putting the old valve back on, and got a much better flow rate.

I cleaned out the plastic manifold, and put everything back together, and it worked! I’m not sure what the actual problem was, but there was some obstruction somewhere that was preventing the water from filling up like it was supposed to.

Jarek helps out by reinstalling the kickplate on the dishwasher after I put it back in the cabinets.

Garrett and Randal loved playing with my sockets – they were entertained for the whole time I was working on the dishwasher today.

“Look at me mama. I tightening someting with a tool mama.”

Baby Goats

Zanzi had her babies yesterday, we woke up to find her hanging out with two new kids, both boys!

Smolder decided to leave them alone, mamma wasn’t having it.

The next day, the kids were much more active and playing around happily!

#goat #goats #homestead #homesteading #animals #livestock

Animal Chores

Did animal chores today, checking in the critters.

I moved the chickens today. They were very excited about their new pen, looking for fresh bugs and such.

The geese were happy to have a fresh pool. They went for a little swim despite the hose still filling it up. Once I took those hose out, they hopped back in.

Four goats standing in a shelter. The goats wanted to file a complaint with management about the rain.

A light rain started to fall. The goats were unhappy and took cover in their shelter.

The neighborhood guinea flock did a drive by.

I was being stalked by Smolder the cat while doing chores.

I checked in on the new baby chicks, who promptly ran for cover when i peeked in.

I checked in on our new flock of baby chicks. We have some cream leg bars and silver laced wyandottes, and a couple roosters. We plan to focus on the cream leg bars and hatch some sex link chicks to sell.

We have a handful of goose eggs in the incubator as well, so we should start to see some hatching in early March if all goes well.

Adding some experimental things here for other social media sharing:

#chickens #homestead #goat #goats #chicks #babychicks

Follow us for more posts at:

https://www.patreon.com/WolfandRavenBlog
https://www.wolfandraven.blog

Feb update – AOL Crossover, Computers, and more!

3 Feb 2026

Last weekend, we had Arya’s Arrow of Light (AOL) Crossover ceremony to what I call “big” Scouts, to distinguish Cub Scouts from what used to be known as Boy Scouts, now Scouting America BSA.

Meagan brought Randal and Garrett along for a visit, and for the ceremony later that night. We were given some camp chairs that fit them just perfectly and they loved them!.

I was playing with some of my toys you can see in the background, solar panels. It was of course a cloudy day, so I wasn’t able to recharge my battery pack that I brought to power the CPAP machine. I have a couple different ways I’ve been playing with for portable power, and these camp out have been a good time to experiment with them. I also set up the Starlink for its monthly exercise and updates.

Evan having fun with his fell Cub Scouts. They were running around finding pokemon stuffed animals earlier. That afternoon, before the ceremony, there was a flag retirement ceremony that the kids were able to participate in.

The rest of the camp out photos are here: https://photos.argentwolf.org/index.php?/category/67

The cross over ceremony was that night. I will put a couple of photos below, the rest I have on the gallery here: https://photos.argentwolf.org/index.php?/category/68

Here, she has had all of her Cub Scout things removed, ready to cross the bridge into Scouting.

The Scouts of the troop have received her and now dress her in the regalia of ‘big’ Scouts.

Jarek is not pictured, but he did have a speaking role in the ceremony.

It was a good ceremony, much better than last year. Nighttime photography is always challenging, and even more so when everyone is moving and lots of things are going on. Overall, I think most of the pictures came out pretty good, I only had a few that were not usable.

Year in review post

The Year in review is coming soon ™, largely due to a couple things:

1) bathroom remodel. The upstairs bathroom needs to be fixed, so that is starting now.

2) Tax time. yay

3) Data errors in the storage pool that holds the photos.

#3 has been the big booger that I’ve been somewhat avoiding dealing with, but as of today it seems to have resolved finally. I have a file system check in progress, (a zfs scrub), and if that comes back clean, then I will proceed. Otherwise I will need to rebuild the pool which will take a few days due to its size (27 Terabytes).

In other fun, I had two other spinning disks fail and need to be replaced. I had some shenanigans with a seller who sold me a non-Americas region drive, and thus had no warranty. So back it went and I ordered another disk replacement. Apparently the AI push is causing drive and memory prices to spike, so that isn’t fun.

Social Networks

At the request of Meagan, I set up a couple social networks, a Friendica (similar to the older Facebook) instance, https://friendica.argentwolf.org and a Mastodon instance (Twitter / X), https://mastodon.argentwolf.org to play with. These are federated social media servers, called nodes, that are run independently, but can talk and share across the network to each other. That way, you can follow someone and get their feed (or block them), and not be bothered by Big Social Media’s algorithm.

The blog (https://www.wolfandraven.blog) is also set up with this protocol, called ActivityPub. So now you can find and follow me at these places:

alan@friendica.argentwolf.org

alan@mastodon.argentwolf.org

alan@www.wolfandraven.blog (this will notify you of blog posts there)

I’ve dabbled in these before, but they didn’t seem to be ready. After Musk bought Twitter, a large number of folks left Twitter and went to the ‘fediverse’ so there has been some maturing of the platforms in the mean time.

Along with my server project, hosting isn’t free and the Social Media companies make money by selling you to advertisers. So, all in all, I don’t mind hosting these instances as it takes back control of the feed and what happens with your data.

We also had some sadness with one of our goats, Chali, who lost her baby kid over the weekend during Evan’s birthday party on Saturday.

She started having signs of giving birth, but there was a bad smell. She was a couple weeks early as well. It turned out that the baby had died some time ago, but we weren’t able to determine when that was, other than the pregnancy terminated itself.

Of course, it was on a weekend, but we were able to have a helpful goat person come out and assist us with delivering the dead kid and make sure Chali was doing ok. Thus far, no signs of any further distress.

We are expecting several of the other goats to kid in the next few weeks. Also, we will be getting in more baby chicks, likely this weekend. Hopefully the cold weather will have passed us on by and we can resume our regularly scheduled Florida weather!

Kiddos and their fort

21 Jan 2026

The year in review post is forthcoming! We’ve been swamped with life and computer issues, which I’ll get to later for those who want to nerd out with me on it.

We have a bathroom renovation coming up to address water leakage from upstairs to the dining room, so that will be fun.

In the mean time, check out the for the kids have built on their own in the back yard.

Happy Yule 2025!

Happy Yule from all of us to you! Wishing you the best in the New Year!

Our Year in Review post will be forthcoming!

-Alan

Laptop installation script/guide

Having to have access to reinstall my laptop, I’m putting this up. Mirrored Encrypted ZFS configuration.

Verify actual disks by doing ls -l on the $DISK Variable. May switch between reboots. 

DISK1=/dev/disk/by-id/nvme-CT4000P3PSSD8_2252E6966FC3
DISK2=/dev/disk/by-id/nvme-CT4000P3PSSD8_2240E671E0D3


DISK2=/dev/disk/by-id/nvme-CT4000P3PSSD8_2252E6966FC3
DISK1=/dev/disk/by-id/nvme-CT4000P3PSSD8_2240E671E0D3

HOST=fafnir
USER=alan
POOL=UbuntuZFS

blkdiscard -f $DISK1

sgdisk --zap-all $DISK1
sgdisk -n1:1M:+127M -t1:EF00 -c1:EFI $DISK1
sgdisk -n2:0:+1920M -t2:8300 -c2:Boot $DISK1
sgdisk -n3:0:+64G -t3:8200 -c3:Swap $DISK1
sgdisk -n4:0:0 -t4:BF00 -c4:Pool $DISK1
sgdisk --print $DISK1

PART1UUID='blkid -s PARTUUID -o value $DISK1-part1'
PART2UUID='blkid -s PARTUUID -o value $DISK1-part2'

blkdiscard -f $DISK2 2>/dev/null
sgdisk --zap-all $DISK2
sgdisk -n1:1M:+127M -t1:EF00 -c1:EFI -u1:$PART1UUID $DISK2
sgdisk -n2:0:+1920M -t2:8300 -c2:Boot -u2:$PART2UUID $DISK2
sgdisk -n3:0:+64G -t3:8200 -c3:Swap -u3:R $DISK2
sgdisk -n4:0:0 -t4:BF00 -c4:POOL -u4:R $DISK2


For a non-mirrored boot configuration
. Making the partitions size match to ZFS doesn't complain on the mirror creation.


blkdiscard -f $DISK2 2>/dev/null
sgdisk --zap-all $DISK2
sgdisk -n1:1M:+127M -t1:EF00 -c1:EFI -u1:R $DISK2
sgdisk -n2:0:+1920M -t2:8300 -c2:Boot -u2:R $DISK2
sgdisk -n3:0:+64G -t3:8200 -c3:Swap -u3:R $DISK2
sgdisk -n4:0:0 -t4:BF00 -c4:POOL -u4:R $DISK2


zpool create -o ashift=12 -o autotrim=on \
-O compression=lz4 -O normalization=formD \
-O acltype=posixacl -O xattr=sa -O dnodesize=auto -O atime=off \
-O encryption=aes-256-gcm -O keylocation=prompt -O keyformat=passphrase \
-O canmount=off -O mountpoint=none -R /mnt/install $POOL mirror $DISK1-part4 $DISK2-part4





zfs create -o canmount=noauto -o mountpoint=/ $POOL/root
zfs mount $POOL/root

zfs create -o canmount=noauto -o mountpoint=/home $POOL/home
zfs mount $POOL/home
zfs set canmount=on $POOL/home

zfs create -o canmount=noauto -o mountpoint=/var $POOL/var
zfs mount $POOL/var
zfs set canmount=on $POOL/var

zfs create -o canmount=noauto -o mountpoint=/var/lib $POOL/var/lib
zfs mount $POOL/var/lib
zfs set canmount=on $POOL/var/lib


replicant data sets are for data that is replicated elsewhere (e.g. Dropbox or Nextcloud) or not desired to be in the home directory

zfs create -o canmount=noauto -o mountpoint=/mnt/replicant $POOL/replicant
zfs mount $POOL/replicant
zfs set canmount=on $POOL/replicant

zfs create -o canmount=noauto -o mountpoint=/mnt/replicant/Dropbox $POOL/replicant/Dropbox
zfs mount $POOL/replicant/Dropbox
zfs set canmount=on $POOL/replicant/Dropbox

zfs create -o canmount=noauto -o mountpoint=/mnt/replicant/Nextcloud $POOL/replicant/Nextcloud
zfs mount $POOL/replicant/Nextcloud
zfs set canmount=on $POOL/replicant/Nextcloud

zfs create -o canmount=noauto -o mountpoint=/mnt/replicant/storage $POOL/replicant/storage
zfs mount $POOL/replicant/storage
zfs set canmount=on $POOL/replicant/storage

yes | mkfs.ext4 $DISK1-part2
mkdir /mnt/install/boot

mount $DISK1-part2 /mnt/install/boot/

mkfs.msdos -F 32 -n EFI -i 4d65646f $DISK1-part1
mkdir /mnt/install/boot/efi

mount $DISK1-part1 /mnt/install/boot/efi

apt update
apt install --yes debootstrap
debootstrap noble /mnt/install/

echo $HOST > /mnt/install/etc/hostname
sed "s/ubuntu/$HOST/" /etc/hosts > /mnt/install/etc/hosts
cp /etc/netplan/*.yaml /mnt/install/etc/netplan/

mount --rbind /dev /mnt/install/dev
mount --rbind /proc /mnt/install/proc
mount --rbind /sys /mnt/install/sys
chroot /mnt/install /usr/bin/env \
DISK1=$DISK1 DISK2=$DISK2 HOST=$HOST USER=$USER \
bash --login


Inside CHROOT

locale-gen --purge "en_US.UTF-8"
update-locale LANG=en_US.UTF-8 LANGUAGE=en_US
dpkg-reconfigure --frontend noninteractive locales

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

apt update
apt install --yes --no-install-recommends \
linux-image-generic linux-headers-generic \
zfs-initramfs \
cryptsetup \
keyutils \
grub-efi-amd64-signed \
shim-signed \
zstd

echo "swap $DISK1-part3 /dev/urandom \
swap,cipher=aes-xts-plain64,size=256,plain" >> /etc/crypttab

echo "swap $DISK2-part3 /dev/urandom \
swap,cipher=aes-xts-plain64,size=256,plain" >> /etc/crypttab

cat /etc/crypttab


echo "PARTUUID=$(blkid -s PARTUUID -o value $DISK1-part2) /boot ext4 noatime,nofail,x-systemd.device-timeout=5s 0 1" >> /etc/fstab
echo "PARTUUID=$(blkid -s PARTUUID -o value $DISK1-part1) \
/boot/efi vfat noatime,nofail,x-systemd.device-timeout=5s 0 1" >> /etc/fstab
echo "/dev/mapper/swap none swap defaults 0 0" >> /etc/fstab


cat /etc/fstab


/etc/init.d/cryptdisks restart && sleep 5
swapon -a

echo "vm.swappiness=10" >> /etc/sysctl.conf
echo "vm.min_free_kbytes=1048576" >> /etc/sysctl.conf

echo "fs.inotify.max_user_watches = 524288" >> /etc/sysctl.conf
echo "
HandleLidSwitch=ignore" >> /etc/systemd/logind.conf
update-initramfs -c -k all

update-grub
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Ubuntu \
--recheck --no-floppy


We need to install the Desktop first to be able to add the repo:

apt install ubuntu-desktop



Add a couple essential tools:


add-apt-repository universe
add-apt-repository restricted
add-apt-repository multiverse
apt update
bash-completion \
nano \
curl \
gparted \
smartmontools \
sanoid \
plocate


apt dist-upgrade --yes

mkdir /etc/sanoid
wget -O /etc/sanoid/sanoid.defaults.conf https://github.com/jimsalterjrs/sanoid/blob/master/sanoid.defaults.conf
wget -O /etc/sanoid/sanoid.conf https://github.com/jimsalterjrs/sanoid/blob/master/sanoid.conf


adduser --disabled-password --gecos '' $USER
usermod -a -G adm,cdrom,dip,lpadmin,plugdev,sudo $USER
echo "$USER ALL=NOPASSWD:ALL" > /etc/sudoers.d/$USER
passwd $USER




wget -O- http://packages.medo64.com/keys/medo64.asc | sudo tee /etc/apt/trusted.gpg.d/medo64.asc
echo "deb http://packages.medo64.com/deb stable main" | sudo tee /etc/apt/sources.list.d/medo64.list
apt update
apt install -y syncbootpart
syncbootpart

dd if=$DISK1-part1 of=$DISK2-part1
dd if=$DISK1-part2 of=$DISK2-part2
update-grub


exit

Out of CHROOT

sync
umount /mnt/install/boot/efi
umount /mnt/install/boot
mount | grep -v zfs | tac | awk '/\/mnt/ {print $3}' | xargs -i{} umount -lf {}
zpool export -a

reboot

Post install setup:

wget -O dropbox.deb https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_2025.05.20_amd64.deb

sudo dpkg -i dropbox.deb
rm dropbox.deb


wget -O vivaldi.deb https://downloads.vivaldi.com/stable/vivaldi-stable_7.5.3735.62-1_amd64.deb
sudo dpkg -i vivaldi.deb
rm vivaldi.deb

wget -O ~/Appimages/nextcloud.AppImage https://download.nextcloud.com/desktop/releases/Linux/Nextcloud-3.17.0-x86_64.AppImage
chmod +x ~/Appimages/nextcloud.AppImage

After recovering the .ssh folder, run
ssh-add
to import identities.

Signal Messenger:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg;
cat signal-desktop-keyring.gpg | sudo tee /usr/share/keyrings/signal-desktop-keyring.gpg > /dev/null

# 2. Add our repository to your list of repositories:
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' |\
sudo tee /etc/apt/sources.list.d/signal-xenial.list

# 3. Update your package database and install Signal:
sudo apt update && sudo apt install signal-desktop

#Mattermost Desktop
curl -fsS -o- https://deb.packages.mattermost.com/setup-repo.sh | sudo bash
sudo apt update && sudo apt install mattermost-desktop

SuperMicro IMPI View
IMPI View
https://www.supermicro.com/en/support/resources/downloadcenter/smsdownload?category=IPMI



Master PDF:

Dungeon Draft
Wonder Draft

Zoom

sudo apt install keepassxc evolution vlc gimp imagemagick nautilus-nextcloud nautilus-image-converter plocate libfuse2

Nomachine
https://www.nomachine.com

Fix wireplumber issue:

sudo apt install libcamera-ipa pipewire-libcamera