How to fix ZFS pool not importing at boot
You have probably tried Stack Exchange and reddit at this point, so what do you have to lose?
./techtipsy Ā· ounapuu.ee [1]
Hacky solution to get zpool import tank to work on boot right away. This has been an issue that has plagued my system for months and no matter what dependencies I add in it never works, but adding a sleep as ExecStartPre did the trick.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://ounapuu.ee/posts/2021/02/01/how-to-fix-zfs-pool-not-importing-at-boot/
[2]: /thoughts/
Posts tagged: linux
All posts with the tag "linux"
127 posts
latest post 2026-04-18
Publishing rhythm
Deleting Specific Lines in a File with sed or yq ā Nick Janetakis
We
Nick Janetakis Ā· nickjanetakis.com [1]
sed can be a tricky beast, I often stumble when trying to pipe into it. Next time I need to use sed, I should reference this article by Nick Janetakis. He makes it looks much easier than my experience has been, and it appears to behave like a vim :%s/ substitution does, or a g/ g command.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://nickjanetakis.com/blog/deleting-specific-lines-in-a-file-with-sed-or-yq
[2]: /thoughts/
gistfile1.txt [1]
text
On void linux.
Under `/etc/containers/` there is a file called `registries.conf`. It is complemented by `man 5 containers-registries.conf`.
Change (for me lines 11-12) which say
[registries.search]
registries = []
to
[registries.search]
registries = ['docker.io']
(drawn from https://www.projectatomic.io/blog/2018/05/podman-tls/)
---
Without the above you wonāt be able to use basic podman functions. You might get errors like:
- Error: unable to pull fedora:28: image name provided is a short name and no search registries are defined in the registries config file.
- Error: unable to pull stripe/stripe-cli: image name provided is a short name and no search registries are defined in the registries config file.
---
Various documentation (redhat blog entries, man podman pages) say that dockerhub is a default, but without this step itās clearly not.
Good luck. Feel free to use the comment box below if you have a github account.
By default podman will not pull images from docker.io and will need setup. This guide worked for me.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:...
š ļø Installation | LazyVim
You can find a starter template for LazyVim here
lazyvim.org [1]
Lately in 2023 I have been leaning on lazyvim for my new setups where I am not necessarily ready to drop my full config. Itās been pretty solid, and comes with a very nice setup out of the box, the docs are pretty fantastic as well.
Note
This post is a thought [2]. Itās a short note that I make
about someone elseās content online #thoughts
References:
[1]: https://www.lazyvim.org/installation
[2]: /thoughts/
AUR [1].">paru is an aur helper that allows you to use a package manager to install
packages from the aur.
Whatās the Aur # [2]
The Aur is a set of community managed packages that can be installed on arch based distros.
Why a helper? # [3]
paru just makes it easy, no clone and run makepkg. You can do everything paru
can do using the built in pacman installer.
Manual Install from the Aur # [4]
You will need to manually instal pacman from the aur in order to get started.
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
Installing packages with paru # [5]
Once setup you are ready to install packages from the AUR just like the core repos.
# you can update your system using paru
paru -Syu
# you can install packages from the AUR
paru -S tailscale
paru -S prismlauncher
# even core repo packages can be installed
paru -S docker
Paru in Docker # [6]
Here is a snippet from my devtainer
dockerfile [7].
Where I use paru to install packages from the AUR inside of a dockerfile.
FROM archlinux
RUN echo '[multilib]' >> /etc/pacman.conf && \
echo 'Include = /etc/pacman.d/mirrorlist' >> /etc/pacman.conf && \
pacman --noconfirm -Sy...
useful btrfs tools
disk usage # [1]
Looking at disk usage on any of these must be done using a tool built for it if
you want an accurate measurement. General purpose tools like du will be
inaccurate as they do not count things like duplicate copies in snapshots.
⯠sudo btrfs fi usage -T /
[sudo] password for waylon:
Overall:
Device size: 465.26GiB
Device allocated: 251.06GiB
Device unallocated: 214.20GiB
Device missing: 0.00B
Device slack: 0.00B
Used: 234.44GiB
Free (estimated): 227.37GiB (min: 120.27GiB)
Free (statfs, df): 227.37GiB
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 478.88MiB (used: 0.00B)
Multiple profiles: no
Data Metadata System
Id Path single DUP DUP Unallocated Total Slack
-- -------------- --------- -------- -------- ----------- --------- -----
1 /dev/nvme1n1p2 239.00GiB 12.00GiB 64.00MiB 214.20GiB 465.26GiB -
-- -------------- --------- -------- -------- ----------- --------- -----
Total 239.00GiB 6.00GiB 32.00MiB 214.20GiB 465.26GiB 0.00B
Used 225.82GiB ...
Fix Arch Linux randomly rejecting passwords with one command. Try
āfaillock āuser $USERā to reset login counter and regain access. Quick
solution for a smooth computing"
[1]
If youāre an Arch Linux user, you may have experienced a frustrating issue
where your password is randomly not being accepted by the system. This can be a
major inconvenience and can cause a lot of frustration, especially if it
happens frequently.
The good news is that there is a simple fix for this issue. The following bash
code can be used to fix the problem:
bash faillock --user $USER
This command is used to reset the failed login count for the current user. By
running this command, you will be able to reset the systemās login counter and
regain access to your account.
Itās important to note that this command should only be used as a temporary
solution. If you find yourself frequently having to run this command, itās
likely that there is a deeper issue with your system that needs to be
addressed.
In any case, if youāre experiencing problems with your Arch Linux system not
accepting your password, give the above command a try and see if it resolves
the issue for you.
References:
[1]: https://stabl...
I recently setup some vmās on my main machine and got sick of signing in with
passwords.
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub virt
I just shared some ssh keys with myself and ran into this error telling me that
I did not set the correct permissions on my key.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0750 for '/home/waylon/.ssh/id_*******' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/waylon/.ssh/id_*******": bad Permissions
repo: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
I changed them with the following commands.
chmod 644 ~/.ssh/id_*******.pub
chmod 600 ~/.ssh/id_*******
For far too long I have had to fidget with v4l2oloopback after reboot. Iāve
had this happen on ubuntu 18.04, 22.04, and arch.
After a reboot the start virtual camera button wonāt work, It appears and is
clickable, but never turns on. Until I run this command.
sudo modprobe v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1
[1]
Today I learned that you can turn on kernel modules through some files in /etc/modules...
This is what I did to my arch system to get it to work right after boot.
echo "v4l2loopback" | sudo tee /etc/modules-load.d/v4l2loopback.conf
echo "options v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1" | sudo tee /etc/modprobe.d/v4l2loopback.conf
References:
[1]: https://stable-diffusion.waylonwalker.com/000378.373882614.webp
Setting up snapper on Arch
https://www.youtube.com/watch?v=_97JOyC1o2o
snapper
snap-pac
grub-btrfs
Note # [1]
These are mostly my notes to remind myself, Iād Highly reccomend watching
this-video [2] or reading this
arch wiki page [3]
/.snapshots already exists error # [4]
When I started running sudo snapper -c root create-config / I ran into the
following error.
[5]
Creating config failed (creating btrfs subvolume .snapshots failed since it already exists).
remove existing snapshots # [6]
sudo umount /.snapshots
sudo rm -r /.snapshots
configure snapper # [7]
sudo snapper -c root create-config /
sudo snapper -c home create-config /home
btrfs subvolumes # [8]
sudo btrfs subvolume list /
[9]
sudo btrfs subvolume delete /.snapshots
sudo mkdir /.snapshots
# [10]
# you might not see snapshots mounted yet
lsblk
# if you check fstab you will see an entry for it
cat /etc/fstab
# mount it
sudo mount -a
# now you should see /.snapshots mounted
lsblk
You should now see .snapshots in mountpoints.
[11...
The one reason I switched to arch
The community, thatās it, end of post, roll the credits.
Iām a tinkerer # [1]
I am a tinkerer, I am not going to run a stock desktop manager, mostly becuase
thatās just not how my brain works. I need to tweak everything to fit my
needs. Grantid I have not spent much time in many full fledged linux desktop
environments. They are far more customizable than windows ever will be, I
absolutely love that about them. Inevitibly I end up in a situation where I
hit a wall, it just wonāt do what I want it to do, or my lack of understanding
what came wtih it holds me back.
minimal # [2]
I love minimal installs. I love just building up my system from the bottom up
with things that I like, I understand, and that I can script.
Iām a noob # [3]
I spend a lot of my time in the terminal. Iād like to think I know how to use
a linux command line for software development really well, but there are a lot
of things that I still dont know all that well, mostly because I donāt need to.
The AUR # [5]...
https://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7
[1]
xrandr is a great cli to manage your windows in a linux distro using x11, which
is most of them. The issue is that I can never remember all the flags to the
command, and if you are using it with something like a laptop using a dock the
names of all the displays tend to change every time you redock. This makes it
really hard to make scripts that work right every time.
Homepage # [2]
Check out the
deresmos/xrandr-manager [3] for more
details on it.
installation # [4]
xrander-manager is a python cli application that is simply a nice interface
into xrandr. So you must have xrandr already installed, which is generally
just there on any x11 window manager, Iāve never had to install it.
As with any python cli that is indended to be used as a global/system level cli
application I always install them with pipx. This automates the process of
creating a virtual environment [5] for xrandr-manager for me, and does not clutter
up my system packages with its dependencies that may eventually clash with
another that I want to use.
# prereqs (xrandr, pipx)
pipx install xrandr-manager
set main monitor # [6]
First if your main display is not set to the correct monitor set your main
dis...
I really like the super clean look of no status menus, no url bar, no bookmarks
bar, nothing. Donāt get me wrong these things are useful, but honestly they
take up screen real estate and I RARELY look at them. What I really want is a
toggle hotkey. I found this one from one of DTās youtube videoās. I can now
tap xx and both the status bar at the botton and the address bar at the top
disappear.
# ~/.config/qutebrowser/config.py
config.bind("xb", "config-cycle statusbar.show always never")
config.bind("xt", "config-cycle tabs.show always never")
config.bind(
"xx",
"config-cycle statusbar.show always never;; config-cycle tabs.show always never",
)
I recently was unable to boot into my home Linux Desktop, it got stuck at
diskcheck fsck. I found that I was able to get in to a tty through a hotkey.
https://twitter.com/_WaylonWalker/status/1512281106120384519
Whatās a TTY? # [1]
Thereās probably more to it, but to me its a full screen terminal with zero
gui, not even your gui fonts. It does log into your default shell so if you
have a comfy command line setup it will be here for you even though it looks
much different without fonts and full colorspace.
Normal setup # [2]
Normally you have 6 TTYās running, the first is dedicated to your desktop
manager, which is your login screen it might be something like gdm or lightdm.
- ctrl+alt+F1: login screen
- ctrl+alt+F2: Desktop
- ctrl+alt+F3: TTY 3
- ctrl+alt+F4: TTY 4
- ctrl+alt+F5: TTY 5
- ctrl+alt+F6: TTY 6
In my case the desktop manager neverstarted, so ctrl+alt+F1 brought me into a tty.
What happened?? # [3]
Well after getting back in and having some time to reflect, I think my Desktop
manager was installed or just broken, possibly during a update I ran a few days
prior.
I tried a bunch of things like switching to lightdm, and manually running startx.
Getting ba...
Dunk [1] is a beautiful git [2] diff tool
built on top of rich [3].
Browsing through twitter the other day I discovered it through this
tweet by _darrenburns [4].
https://twitter.com/_darrenburns/status/1510350016623394817
Dunk is beta # [5]
Before I dive in deep, I do want to mention that Dunk is super new and beta at
this point. I am making it my default pager, because I know what I am doing
and can quickly shift back if I need to, no sweat. If you are a little less
comfortable with the command line, terminal, or reading any issues that might
come up, it might be best if you just pipe into Dunk when you want to use it.
The author really cautions the use of it as your default pager this early, Iām
just showing that itās possible, and Iām trying it.
He notes that it might have some issues especially with partially staged files.
try it # [6]
You can try it with pipx.
git diff | pipx run dunk
install it # [7]
If you like it, you can install it with pip or pipx, I prefer pipx for
cli applications like this.
pipx install dunk
set it as your default pager # [8]
You can configure dunk as your default pager with the command line, or
by editing your .gitconfig file.
git con...
This morning I was trying to install a modpack on my minecraft server after
getting a zip file, and its quite painful when I unzip everything in the
current directory rather than the directory it belongs in.
I had the files on a Windows Machine # [1]
So Iāve been struggling to get mods installed on linux lately and the easiest
way to download the entire pack rather than each mod one by one seems to be to
use the overwolf application on windows. Once I have the modpack I can start
myself a small mod-server by zipping it, putting it in a mod-server directory
and running a python http.server
python -m http.server
Downoading on the server # [2]
Then I go back to my server and download the modpack with wget.
wget 10.0.0.171:8000/One%2BBlock%2BServer%2BPack-1.4.zip
Unzip to the minecraft-data directory # [3]
Now I can unzip my mods into the minecraft-data directory.
unzip One+Block+Server+Pack-1.4.zip -d minecraft-data
Running the server with docker # [4]
I run the minecraft server with docker, which is setup to mount the
minecraft-data directory.
Running a Minecraft Server in Docker [5]
A bit more on that in the other post, but when I download the whole modpack
like this I ...
If you ever end up on a linux machine that just does not have enough ram to
suffice what you are doing and you just need to get the job done you can give
it some more swap. You can look up reccomendations for how much swap you
should have this is more about just trying to get your job done when you are
almost there, but running out of memory on the hardware you have.
make the /swap file # [1]
You can put this where you wish, for this example I am going to pop it into
/swap
sudo fallocate -l 4G /swap
sudo chmod 600 /swap
sudo mkswap /swap
sudo swapon /swap
make sure that your swap is on # [2]
You can make sure that your swap is working by using the free command, I like
using the -h flag to get human readable numbers.
⯠free -h
total used free shared buff/cache available
Mem: 15Gi 5.5Gi 4.9Gi 458Mi 5.2Gi 9.3Gi
Swap: 4.0Gi 0B 4.0Gi
Reclaim memory usage in Jupyter [3]
I also used this trick in this article to give my python process a bit more oompf and get it on home.
References:
[1]: #make-the-swap-file
[2]: #make-sure-that-your-swap-is-on
[3]: /reset-ipython/
yq is a command line utility for parsing and querying yaml, like jq does for json.
This is for me # [1]
I love that all of these modern tools built in go and rust, just give you a
zipped up executable right from GitHub releases, but itās not necessarily
straight forward how to install them. yq does one of the best jobs I have
seen, giving you instructions on how to get a specific version and install it.
I use a bunch of these tools, and for what its worth I trust the devs behind
them to make sure they donāt break. This so far has worked out well for me,
but if it ever doesnāt I can always pick an older version.
Just give me the latest # [2]
Since I am all trusting of them I just want the latest version. I do not want
to update a shell script with new versions, or even care about what then next
version is, I just want it. Luckily you can script the release page for the
latest version on all that I have came accross.
What is the latest # [3]
I wrote or stole, I think I wrote it, this line of bash quite awhile ago, and
it has served me well for finding the latest release for any GitHub project
using releases. Just update it with the name of the tool, org, and repo and it
wor...