25-01#
stop docker daemon#
stop
systemctl disable --now docker.socket
systemctl disable --now docker.service
start
systemctl enable --now docker.socket
systemctl enable --now docker.service
fio on Lexar SSD NM620 1TB#
Hardware: ./src/25-01-lshw.txt
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
output
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
test: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [m(1)][100.0%][r=543MiB/s,w=182MiB/s][r=139k,w=46.6k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=424112: Mon Jan 13 08:43:59 2025
read: IOPS=136k, BW=533MiB/s (559MB/s)(3070MiB/5761msec)
bw ( KiB/s): min=362400, max=574160, per=100.00%, avg=545994.18, stdev=61326.23, samples=11
iops : min=90600, max=143540, avg=136498.55, stdev=15331.56, samples=11
write: IOPS=45.6k, BW=178MiB/s (187MB/s)(1026MiB/5761msec); 0 zone resets
bw ( KiB/s): min=120832, max=191488, per=100.00%, avg=182653.09, stdev=20663.38, samples=11
iops : min=30208, max=47872, avg=45663.27, stdev=5165.84, samples=11
cpu : usr=8.99%, sys=32.31%, ctx=445836, majf=0, minf=9
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=533MiB/s (559MB/s), 533MiB/s-533MiB/s (559MB/s-559MB/s), io=3070MiB (3219MB), run=5761-5761msec
WRITE: bw=178MiB/s (187MB/s), 178MiB/s-178MiB/s (187MB/s-187MB/s), io=1026MiB (1076MB), run=5761-5761msec
Disk stats (read/write):
nvme0n1: ios=761308/254528, sectors=6090464/2036728, merge=0/17, ticks=282031/65740, in_queue=347788, util=76.04%
Samsung SSD 990 EVO Plus 1TB#
hardware
product: Samsung SSD 990 EVO Plus 1TB
version: 1B2QKXG7
serial: S7U4NJ0XB47526R
capabilities: nvme nvm_express bus_master cap_list
configuration: driver=nvme latency=0 nqn=nqn.1994-11.com.samsung:nvme:990EVOPlus:M.2:S7U4NJ0XB47526R state=live
command
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
output
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.36
Starting 1 process
test: Laying out IO file (1 file / 4096MiB)
Jobs: 1 (f=1): [m(1)][-.-%][r=1365MiB/s,w=458MiB/s][r=349k,w=117k IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=7071: Mon Jan 13 15:54:53 2025
read: IOPS=328k, BW=1281MiB/s (1344MB/s)(3070MiB/2396msec)
bw ( MiB/s): min= 1161, max= 1383, per=99.96%, avg=1280.73, stdev=96.96, samples=4
iops : min=297352, max=354188, avg=327868.00, stdev=24821.66, samples=4
write: IOPS=110k, BW=428MiB/s (449MB/s)(1026MiB/2396msec); 0 zone resets
bw ( KiB/s): min=396392, max=473176, per=100.00%, avg=439448.00, stdev=33745.24, samples=4
iops : min=99098, max=118294, avg=109862.00, stdev=8436.31, samples=4
cpu : usr=18.16%, sys=72.48%, ctx=106271, majf=0, minf=9
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=785920,262656,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=1281MiB/s (1344MB/s), 1281MiB/s-1281MiB/s (1344MB/s-1344MB/s), io=3070MiB (3219MB), run=2396-2396msec
WRITE: bw=428MiB/s (449MB/s), 428MiB/s-428MiB/s (449MB/s-449MB/s), io=1026MiB (1076MB), run=2396-2396msec
Disk stats (read/write):
nvme1n1: ios=709451/237370, sectors=5675608/1898960, merge=0/0, ticks=50863/2103, in_queue=52965, util=67.55%
rsync complete machine + fix grub EFI#
https://superuser.com/a/1185401
rsync -axHAWXS --numeric-ids --info=progress2 / /media/felix/samsung990/
# mount stuff
target_dir=/media/felix/samsung990/
mount -t proc proc ${target_dir}/proc # for bash completion
mount --bind /dev ${target_dir}/dev
mount -t sysfs sysfs ${target_dir}/sys
chroot /media/felix/samsung990/
# efi
mount -t efivarfs none /sys/firmware/efi/efivars
efibootmgr
# mount /boot/efi
mount /dev/nvme1n1p1 /boot/efi/
grub-install /dev/nvme1n1
ls /boot/efi/EFI/
update-grub
mv /etc/default/grub.d/50_linuxmint.cfg /var/backups/ # overwrites GRUB_DISTRIBUTOR and GRUB_DISABLE_OS_PROBER
v /etc/default/grub # edit GRUB_DISTRIBUTOR to change name
update-grub
view /boot/grub/grub.cfg # review
Read about /etc/default/grub
:
info -f grub -n 'Simple configuration'
I believe in mise#
I love the developer experience of mise.
That’s why I am currently porting a lot of projects to use it, for example:
Python projects with Python provided by mise and integration with uv.
Terraform/OpenTofu projects
CLI tools that I use regularly (see ~/.config/mise/config.toml)
jdx puts a lot of thought into it as shown here: Supply chain security with mise and asdf plugins · jdx/mise · Discussion #4054
Hetzner DNS API#
Export Token
export HETZNER_DNS_TOKEN=
List zones:
curl -fSsL "https://dns.hetzner.com/api/v1/zones" -H "Auth-API-Token: $HETZNER_DNS_TOKEN" | jq -r '.zones | .[] | .id + " " + .name' | sort
or use felix-hetzner-dns-zones
List Records:
curl -fSsL "https://dns.hetzner.com/api/v1/records" -H "Auth-API-Token: $HETZNER_DNS_TOKEN" | jq -r '.records | .[] | .zone_id + " " + .type + " " + .name + " " +.id' | sort
or use felix-hetzner-dns-records