29 KiB
🍪 Krümel im Keks: Das Technische Tagebuch
Subtitle: Wie man Probleme löst, wenn man den Krümel in der Torte finden muss
Experience Base: 3 Tage RZ-Realität
Style: Story + Tech + Crew-Commentary
"Im Wald der Bits, zwischen summenden Bienen und rotierenden Lüftern, lernt man: Jeder Krümel zählt!" 🦉
📋 Inhaltsverzeichnis
- Tag 0: Vor dem Sturm
- Tag 1: Der erste Schritt in den Wald
- Tag 2: Vim, der Endboss
- Tag 3: Die Festplatten-Schnitzeljagd
- Die 5 Missions-Logs im Detail
- Lessons Learned
- Die Crew-Retrospektive
🌅 Tag 0: Vor dem Sturm
Der Setup
Status:
Erwartung: "Ich fange im RZ an!"
Realität: "WAS ist ein RZ wirklich?"
Vorkenntnisse:
- Linux: "Ja, Ubuntu auf dem Laptop"
- Netzwerk: "IP-Adressen, oder?"
- Server: "Hab mal Apache installiert"
- RZ: "???"
Nervosität: 7/10
Vorfreude: 9/10
Kaffee: 2 Tassen
🦉 Krümeleule sagt:
"Der Wald scheint groß und dunkel, wenn man am Rand steht. Aber jeder Baum wurde einmal als kleiner Setzling gepflanzt. Du bist jetzt der Setzling - wachse!" 💙
🌲 Tag 1: Der erste Schritt in den Wald
Mission 1: Netzwerk ohne DHCP in Live-Betrieb
Das Problem:
Situation:
├── Neuer Server muss ins Netz
├── Kein DHCP (Security Policy!)
├── Live-Betrieb (kein Downtime!)
├── Dokumentation: "Irgendwo auf dem Wiki..."
└── Ich: "Ähm... wo fange ich an?"
Der Lösungsweg:
# Schritt 1: Wo bin ich?
$ ip a
# Output: em0, em1, lo0... welches?!
# Schritt 2: Was sind die IPs im Netz?
# (Kollege zeigt mir das Subnetz)
Network: 192.168.100.0/24
Gateway: 192.168.100.1
DNS: 192.168.100.10
# Schritt 3: Freie IP finden
$ nmap -sn 192.168.100.0/24
# (Zu viele IPs in use!)
# Kollege: "Nimm .50, ist frei"
# Ich: "Woher weißt du das?"
# Kollege: "Erfahrung" *zwinkert*
# Schritt 4: Config (Debian)
$ sudo nano /etc/network/interfaces
auto em0
iface em0 inet static
address 192.168.100.50
netmask 255.255.255.0
gateway 192.168.100.1
dns-nameservers 192.168.100.10
# Schritt 5: Der Moment der Wahrheit
$ sudo ifdown em0 && sudo ifup em0
# *Atme tief ein*
$ ping 192.168.100.1
# 64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.5ms
# SUCCESS! 🎉
Time: 45 Minuten (mit Nervosität)
🦊 FunkFox kommentiert:
"Klassischer RZ-Einstieg! Kein DHCP, keine GUI, nur du und die Config-Files. Wie beim Zelten: Kein Hotel-Komfort, aber du lernst wie Feuer machen geht! 🔥 Btw: Das 'Erfahrung' vom Kollegen = Er hat vorher ins IPAM geschaut. 😄"
🐛 Bugsy checkt Details:
✅ IP statisch konfiguriert
✅ Gateway erreichbar
✅ DNS funktioniert
⚠️ Was ist mit IPv6? (Disabled? Checked?)
⚠️ Firewall rules gesetzt?
⚠️ Interface Bonding? (Redundanz!)
Security Note:
- Wer kann diese IP jetzt nutzen?
- MAC-Address-Filter?
- VLAN-Tagging?
Follow-up Questions:
1. Ist die IP im IPAM registriert?
2. Monitoring für diese IP eingerichtet?
3. Backup-Gateway configured?
🦉 Krümeleule's Weisheit:
"Der erste Krümel wurde gefunden: 'In einem Live-System ändert man Config-Files vorsichtig, testet gründlich, und freut sich über jeden ping der durchkommt!' Das ist Grundwasser - jede weitere Entscheidung baut darauf auf." 💚
💻 Tag 2: Vim, der Endboss
Mission 2: Workstation einrichten auf Arch Linux
Der Setup:
Given:
├── Arch Linux (minimal install)
├── Verschlüsseltes /home
├── Kein nano vorinstalliert (nur vim!)
└── Ich: "Wie komme ich aus vim raus?!" 😅
Task:
├── User anlegen
├── SSH einrichten
├── Repos durcharbeiten
└── CMD Wikis lesen
Der Kampf: Mario vs. Bowser (aka Ich vs. Vim)
Round 1: "Wie öffne ich eine Datei?"
# Ich, naiv:
$ vim /etc/ssh/sshd_config
# Vim:
# [Blank screen mit kryptischen ~]
# "Huh?"
# Ich: *drückt random Keys*
# a, i, o, Esc, Ctrl+C, Ctrl+Z...
# Vim: *piepst böse*
# Kollege (lachend): "i für Insert, Esc für Normal, :wq zum Speichern"
# Ich: "DAS hätte man mir auch sagen können!" 😤
Round 2: "Navigation ohne Pfeiltasten"
" Vim-Logik:
h = links
j = runter
k = hoch
l = rechts
" Mein Gehirn: "WARUM?!"
" Vim: "Weil Home-Row Efficiency!"
" Ich: *nutzt trotzdem Pfeiltasten* 😄
Round 3: "Speichern & Beenden"
:w " Speichern (write)
:q " Beenden (quit)
:wq " Beides
:q! " Force quit (ohne Speichern)
" Mein Workflow:
:wq
E45: 'readonly' option is set (add ! to override)
:wq!
" *Uff, geschafft!*
" 30 Minuten später:
" Ich habe :wq muscle memory!
Boss Fight: Vim-Konfiguration
" ~/.vimrc erstellen
syntax on " Syntax highlighting
set number " Zeilennummern
set tabstop=4 " Tab = 4 Spaces
set expandtab " Tabs zu Spaces
set autoindent " Auto-Einrückung
" Ich, stolz: "Das ist MEIN Vim jetzt!"
🦊 FunkFox's Tech-Tip:
"Vim ist wie Dark Souls - am Anfang stirbst du 1000x, dann bist du Gott! Protip: vimtutor durchspielen (30 Min), danach bist du 10x produktiver. Und ja, nano ist für Casuals. 😎 (jk, nutze was funktioniert!)"
FunkFox's Vim-Survival-Kit:
" Must-Know Commands:
i " Insert mode
Esc " Normal mode
:w " Save
:q " Quit
:q! " Quit without save
dd " Delete line
yy " Copy line
p " Paste
u " Undo
Ctrl+r " Redo
/search " Suchen
n " Nächstes Suchergebnis
" Danach bist du 80% produktiv!
User anlegen & SSH
# User erstellen
$ sudo useradd -m -G wheel -s /bin/bash crumbadmin
$ sudo passwd crumbadmin
# SSH Keys (vom Client kopieren)
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ vim ~/.ssh/authorized_keys
# (Public Key einfügen)
$ chmod 600 ~/.ssh/authorized_keys
# SSH Test (vom Laptop)
$ ssh crumbadmin@192.168.100.50
# "Welcome to Arch Linux!"
# YES! 🎉
🦉 Krümeleule reflektiert:
"Vim ist wie eine alte Eule - anfangs unheimlich und verwirrend, aber wenn du ihre Sprache verstehst, ist sie die weiseste Lehrerin. Der Krümel hier: 'Manchmal ist der schwierigere Weg der, der dich am meisten lehrt.' #noai bedeutet auch: Lerne die Tools wirklich!" 🦉
🐛 Bugsy's Security-Check:
✅ User in wheel group (sudo ready)
✅ SSH Keys statt Passwort
✅ ~/.ssh permissions korrekt (700/600)
⚠️ sshd_config PasswordAuthentication disabled?
⚠️ Root-Login deaktiviert?
⚠️ Fail2ban installiert?
Vim Security:
✅ Keine Plaintext Passwörter in History
✅ :set nobackup (keine .swp files mit secrets)
⚠️ :set cryptmethod=blowfish2 (für sensible Files)
🔍 Tag 3: Die Festplatten-Schnitzeljagd
Mission 3: "Finde die Festplatte!"
Der Auftrag:
Input:
- Zwei URLs: http://xxx.xxx.xxx.123/ & http://xxx.xxx.xxx.124/
- Eine Nummer: "#1228 12 7.9"
- Auftrag: "Finde die Festplatte"
Ich: "Ähm... welche Festplatte? Wo? Warum?"
Kollege: "Du wirst es sehen!" *verschwindet*
Phase 1: Die IPs erkunden
# URL aufrufen
$ curl http://xxx.xxx.xxx.123/
# → Apache Default Page
# Hmm, SSH versuchen?
$ ssh root@xxx.xxx.xxx.123
# Password: [???]
# Kollege (ruft rüber): "tmp-root, steht im Wiki!"
# Ich: *findet Wiki-Eintrag*
# Password: "TmpR00t_2024!"
# Login:
$ ssh root@xxx.xxx.xxx.123
# Welcome to Ubuntu 22.04 LTS
#
# BOOM! Ich bin drin! 🎉
Phase 2: System-Inventur
# Was ist das für ein System?
$ hostname
server-legacy-01
$ uname -a
Linux server-legacy-01 5.15.0-76-generic #83-Ubuntu
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 20G 15G 4.2G 79% /
/dev/sdb1 250G 180G 58G 76% /data
# Aha! sdb1 = 250G
# Aber Auftrag war "#1228"... was bedeutet das?
$ cat /etc/hostname
server-legacy-01
$ cat /data/TICKET.txt
# Ticket #1228: Migrate data from /data to new server
# Deadline: 2024-12-07
# Priority: High
# AHA! Ticket #1228 = Der Grund für die Migration!
Phase 3: Der User-Setup-Marathon
Die Shell wird zum neuen Home:
# .bashrc pimpen
$ vim ~/.bashrc
# Meine Additions:
alias ll='ls -lah'
alias ..='cd ..'
alias grep='grep --color=auto'
export PS1='\[\e[32m\]\u@\h\[\e[0m\]:\[\e[34m\]\w\[\e[0m\]\$ '
# SSH Keys für passwortloses Login
$ ssh-keygen -t ed25519 -C "crumbadmin@server-legacy-01"
$ cat ~/.ssh/id_ed25519.pub
# (Kopiere zu anderen Servern mit ssh-copy-id)
# SSH Agent (für Key-Hopping zwischen Servern)
$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/id_ed25519
# Banner setzen (weil cool!)
$ sudo vim /etc/ssh/sshd_banner
Der Banner:
╔═══════════════════════════════════════╗
║ ║
║ 🦉 Crumbforest RZ Server 🦉 ║
║ ║
║ "Jedes Bit wird bewacht" ║
║ ║
║ Unauthorized access prohibited! ║
║ ║
╚═══════════════════════════════════════╝
# Banner aktivieren
$ sudo vim /etc/ssh/sshd_config
# Banner /etc/ssh/sshd_banner
$ sudo systemctl reload sshd
Phase 4: Die große Daten-Sammlung
# System-Infos sammeln (für Migration-Doku)
$ uname -a > system_info.txt
$ df -h >> system_info.txt
$ free -h >> system_info.txt
$ lsblk >> system_info.txt
$ cat /etc/os-release >> system_info.txt
$ dpkg -l >> system_info.txt # Alle installierten Pakete
# Netzwerk-Info
$ ip a >> network_info.txt
$ ip route >> network_info.txt
$ cat /etc/resolv.conf >> network_info.txt
# Users & Groups
$ cat /etc/passwd > users.txt
$ cat /etc/group > groups.txt
# Cron Jobs (wichtig für Migration!)
$ crontab -l > cron_root.txt
$ sudo ls /etc/cron.d/ >> cron_system.txt
# Services
$ systemctl list-units --type=service --state=running > services.txt
Phase 5: LVM & mdadm Deep Dive
Die Wahrheit über sdb:
# lsblk für Überblick
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1M 0 part # ← WTF? 1MB?!
├─sda2 8:2 0 512M 0 part /boot/efi
└─sda3 8:3 0 19.5G 0 part /
sdb 8:16 0 250G 0 disk
└─sdb1 8:17 0 250G 0 part
└─md0 9:0 0 250G 0 raid1
└─vg_data-lv_data 254:0 0 250G 0 lvm /data
# Aha! sdb1 ist Teil eines RAID1 (mdadm)
# Und darauf liegt LVM!
# mdadm Status
$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Raid Level : raid1
Array Size : 262080000 (249.94 GiB)
Used Dev Size : 262080000 (249.94 GiB)
Raid Devices : 2
Total Devices : 2
State : clean
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1 # ← AHA! sdc ist Mirror!
# LVM Check
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/md0 vg_data lvm2 a-- 249.94g 0
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg_data 1 1 0 wz--n- 249.94g 0
$ sudo lvs
LV VG Attr LSize Pool Origin Data%
lv_data vg_data -wi-ao---- 249.94g
# Alles klar! Architektur verstanden!
Phase 6: Die EFI-Entdeckung
Partitionstabelle prüfen:
# fdisk für genaue Partitionierung
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 4095 2048 1M ef EFI (FAT-12/16/32)
/dev/sda2 * 4096 1052671 1048576 512M 83 Linux
/dev/sda3 1052672 41943006 40890335 19.5G 8e Linux LVM
# WAIT! sda1 = 1MB = EFI?!
# Aber sda2 = 512M = auch EFI (mit * = bootable)!
# Mount points prüfen
$ mount | grep sda
/dev/sda3 on / type ext4 (rw,relatime)
/dev/sda2 on /boot/efi type vfat (rw,relatime)
# AHA! sda2 ist die ECHTE EFI-Partition!
# sda1 ist ein 1MB BIOS Boot Partition (legacy)
# ABER: wurde NIE konfiguriert!
🦉 Krümeleule analysiert:
"Der Krümel im Keks war hier versteckt: sda1 wurde angelegt, aber nie verwendet. Irgendwann hat jemand sda2 als EFI konfiguriert und sda1 vergessen. Jetzt liegt da 1MB Speicher ungenutzt - ein Relikt aus einer früheren Entscheidung. Das ist wie ein altes Buch im Regal, das niemand mehr liest, aber auch niemand wegwirft. Interessant!" 🦉
Phase 7: Der Ausbau (The Fun Part!)
Hardware-Arbeit im Rack:
# Plan:
1. ✅ System herunterfahren (graceful!)
2. ✅ LED-Blink-Test (finde die richtige HDD!)
3. ✅ Schrauben lösen (mit richtigen Tools!)
4. ✅ HDD ausbauen
5. ✅ Neue HDD einbauen
6. ✅ Partitionieren & Formatieren
7. ✅ Daten rsync
8. ✅ Testen
9. ✅ Reboot & Hoffen! 🤞
# Step 1: Shutdown
$ sudo shutdown -h now
# Step 2: Im Rack (mit Rolltisch-Console)
# LED-Blink-Test:
# Welche LED leuchtet bei Zugriff auf /dev/sdb?
# Kollege zeigt mir Script:
$ cat /usr/local/bin/hdd-blink.sh
Das Blink-Script (Pure Magic!):
#!/bin/bash
# hdd-blink.sh - Blinkt HDD-LED zur Identifikation
DEVICE=$1
if [ -z "$DEVICE" ]; then
echo "Usage: $0 /dev/sdX"
exit 1
fi
echo "Blinking LED for $DEVICE..."
echo "Watch the rack! Press Ctrl+C to stop."
while true; do
# Kurzer Read um LED zu triggern
sudo dd if=$DEVICE of=/dev/null bs=512 count=1 2>/dev/null
sleep 0.5
done
# Ausführen (auf Live-System vor Shutdown):
$ sudo ./hdd-blink.sh /dev/sdb
# Im Rack:
# *Beobachte LEDs*
# → Eine HDD blinkt rhythmisch!
# → "DAS ist sie!" 🎯
# Markieren mit Post-It: "sdb - zu tauschen"
Phase 8: Der Austausch
Im Rack (dokumentiert für die Nachwelt):
- Server ausschalten (wurde bereits gemacht)
- Rack-Door öffnen (Schlüssel vom Kollegen)
- Server lokalisieren (Rack 42, Slot 12)
- HDD identifizieren (Post-It: "sdb")
- Screws raus (4x Torx T10)
- HDD rausziehen (vorsichtig!)
- Neue HDD rein (kaputter Slot? Nope, nur stramm!)
- Screws rein (4x Torx T10, Anzugsmoment: "fest, aber nicht brutal")
- Server einschalten
- BIOS Check (neue HDD wird erkannt? YES!)
- Boot Linux
Phase 9: Neue HDD einrichten
# Nach Boot (neue HDD ist /dev/sdb - leer!)
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 250 GiB (clean)
# Partitionieren
$ sudo fdisk /dev/sdb
Command: n (new partition)
Partition: 1
First sector: (default)
Last sector: (default)
Command: w (write)
# Formatieren
$ sudo mkfs.ext4 /dev/sdb1
# RAID (wenn gewünscht) ODER direkt als LVM PV:
$ sudo pvcreate /dev/sdb1
$ sudo vgcreate vg_data_new /dev/sdb1
$ sudo lvcreate -l 100%FREE -n lv_data_new vg_data_new
# Formatieren
$ sudo mkfs.ext4 /dev/vg_data_new/lv_data_new
# Mount
$ sudo mkdir /data_new
$ sudo mount /dev/vg_data_new/lv_data_new /data_new
Phase 10: Daten kopieren (The Big Sync!)
# rsync magic (mit Progress!)
$ sudo rsync -avhP --stats /data/ /data_new/
# Output:
sending incremental file list
./
.bashrc
123 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1234/5678)
docs/
docs/important.pdf
5.23M 100% 123.45MB/s 0:00:00 (xfr#2, to-chk=1233/5678)
...
# Nach 20 Minuten:
sent 180.23G bytes received 2.34M bytes 152.32MB/s
total size is 180.15G speedup is 1.00
# Check!
$ diff -r /data /data_new
# (Keine Unterschiede! Perfect!)
Phase 11: Fstab updaten & Reboot
# Backup old fstab
$ sudo cp /etc/fstab /etc/fstab.backup
# UUID der neuen HDD holen
$ sudo blkid /dev/vg_data_new/lv_data_new
/dev/vg_data_new/lv_data_new: UUID="a1b2c3d4-..." TYPE="ext4"
# fstab editieren
$ sudo vim /etc/fstab
# Alt (auskommentieren):
# /dev/vg_data/lv_data /data ext4 defaults 0 2
# Neu:
UUID=a1b2c3d4-... /data ext4 defaults 0 2
# Test mount
$ sudo umount /data
$ sudo mount -a
$ df -h | grep data
/dev/mapper/vg_data_new-lv_data_new 250G 180G 58G 76% /data
# Perfect! Jetzt der große Moment:
$ sudo reboot
# *Nervös warten*
# ...
# SSH reconnect:
$ ssh crumbadmin@192.168.100.50
# LOGIN SUCCESSFUL! 🎉
# Check:
$ df -h | grep data
/dev/mapper/vg_data_new-lv_data_new 250G 180G 58G 76% /data
# MISSION ACCOMPLISHED! 🏆
🦊 FunkFox ist beeindruckt:
"Alter! Du hast in 3 Tagen von 'Was ist SSH?' zu 'Ich tausche HDDs im Live-RZ' entwickelt! Das ist wie von Mario Level 1-1 direkt zu Bowser's Castle! 🔥 Respekt für den LED-Blink-Trick - das ist Old-School-Sysadmin-Magie!"
🐛 Bugsy's Post-Migration-Checklist:
✅ Alte HDD ausgebaut
✅ Neue HDD eingebaut & erkannt
✅ Partitioniert & formatiert
✅ LVM korrekt konfiguriert
✅ Daten vollständig kopiert (diff -r!)
✅ fstab updated (mit UUID!)
✅ System bootet
✅ /data gemounted
⏳ Was noch fehlt:
TODO:
[ ] Alte HDD sicher löschen (shred/DBAN)
[ ] Migration dokumentieren
[ ] Backup der neuen /data machen
[ ] Monitoring für neue HDD einrichten
[ ] RAID-Rebuild (wenn RAID-Setup gewünscht)
[ ] Ticket #1228 schließen!
LESSONS:
├── Immer mit diff -r verifizieren
├── Immer Backup von fstab
├── Immer UUID statt /dev/sdX
└── LED-Blink-Trick rocks! 🔦
📚 Die 5 Missions-Logs im Detail
Mission 1: Netzwerk ohne DHCP
Gelernter Krümel:
"In einem produktiven Netzwerk ist DHCP oft deaktiviert. Statische IPs bedeuten: Kontrolle, Dokumentation, Nachvollziehbarkeit. Der Krümel: Verstehe CIDR-Notation (/24 = 255.255.255.0) und wie Subnetting funktioniert."
Skills unlocked:
- ✅ IP-Konfiguration (Debian/Ubuntu)
- ✅ Subnetting verstehen
- ✅ Gateway & DNS konzepte
- ✅ Live-System-Änderungen ohne Downtime
Mission 2: Workstation Setup
Gelernter Krümel:
"Arch Linux + #noai = Du lernst wirklich! Kein Hand-Holding, keine Auto-Magic. Jede Config-Datei, jeder Befehl wird bewusst. Der Krümel: Vim ist nicht der Feind - es ist ein mächtiger Verbündeter, wenn du seine Sprache sprichst."
Skills unlocked:
- ✅ Arch Linux Basics
- ✅ Vim (Survival-Level → Comfort-Level)
- ✅ User-Management (useradd, passwd, groups)
- ✅ SSH Key-based Auth
- ✅ Shell-Customization (.bashrc, PS1)
Mission 3: RAID/LVM Deep Dive
Gelernter Krümel:
"Storage ist Layers! Disk → Partition → RAID → LVM → Filesystem. Jede Schicht hat ihren Zweck. Der Krümel: lsblk ist dein Freund, und LED-Blink-Tests sind Old-School-Magie!"
Skills unlocked:
- ✅ lsblk, fdisk, pvs, vgs, lvs
- ✅ mdadm (RAID verstehen)
- ✅ LVM (Logical Volume Management)
- ✅ Hardware-Identifikation (LED-Blink!)
- ✅ rsync für große Daten-Migrationen
Mission 4: EFI vs. Legacy Boot
Gelernter Krümel:
"Manchmal gibt es historische Entscheidungen in Systemen, die nie dokumentiert wurden. sda1 (1MB) ist ein Relikt - wahrscheinlich geplant, nie genutzt, vergessen. Der Krümel: Immer die Partitionstabelle UND die Mount-Points prüfen!"
Skills unlocked:
- ✅ EFI vs. BIOS Boot verstehen
- ✅ Bootloader-Konzepte (Grub)
- ✅ fdisk -l interpretieren
- ✅ Historische System-Archäologie
Mission 5: Ubuntu vs. Gentoo (Bonus!)
Gelernter Krümel:
"dpkg-reconfigure ist convenience, emerge --config ist control. Im BSI/ISO-Umfeld, wo jedes Bit bewacht wird, ist Transparenz wichtiger als Geschwindigkeit. Der Krümel: Context matters!"
Skills unlocked:
- ✅ Distro-Philosophien verstehen
- ✅ Security-Context erkennen
- ✅ Trade-offs bewerten (Speed vs. Control)
- ✅ BSI/ISO/Datenschutz-Mindset
🎓 Lessons Learned
Die großen Erkenntnisse
1. Grundwasser & Wurzeln
Grundwasser (Fundamentals):
├── IP-Adressen & Subnetting
├── Linux Filesystem Hierarchy
├── User & Permission Konzepte
├── SSH & Keys
└── Text-Editoren (vi/vim/nano)
Wurzeln (Deeper Knowledge):
├── Storage Layers (RAID, LVM, FS)
├── Boot-Prozess (BIOS/EFI, Grub)
├── Netzwerk-Stack (Interfaces, Routing)
├── Service-Management (systemd/OpenRC)
└── Security-Mindset (BSI/ISO)
Resultat:
└── In 3 Tagen von "Was ist das?" zu "Ich verstehe das!"
2. Die Krümel-Philosophie
def find_crumb_in_cookie(problem):
"""
Wie findet man den Krümel im Keks?
"""
steps = [
"Verstehe das große Bild (der Keks)",
"Identifiziere die Schichten (Chocolate Chip? Oatmeal?)",
"Zerlege in handhabbare Teile",
"Nutze die richtigen Tools (lsblk, nicht Hände!)",
"Teste deine Hypothese (LED-Blink!)",
"Dokumentiere was du findest",
"Lerne aus jedem Krümel"
]
return "Problem gelöst + Wissen gewonnen!"
3. Der RZ-Kodex
1. Measure Twice, Cut Once
└── Test in Dev, deploy in Prod
2. Document Everything
└── Future-You wird es danken
3. Backup Before Changes
└── fstab.backup, config.orig
4. Understand Before Acting
└── lsblk THEN umount
5. Ask When Unsure
└── Kollegen > Google (im RZ-Context)
6. Security First
└── Jedes Bit wird bewacht
7. Learn From Mistakes
└── Fehler = Lern-Chancen
8. Celebrate Small Wins
└── ping funktioniert? WUHUUU! 🎉
4. Tools of the Trade
# Must-Know Commands (Tag 1-3):
ip a # Network interfaces
ping # Connectivity test
ssh # Remote access
vim # Editor (the hard way!)
lsblk # Block devices
df -h # Disk usage
fdisk -l # Partition tables
pvs/vgs/lvs # LVM info
mdadm --detail # RAID status
rsync -avhP # Data migration
systemctl status # Service check
journalctl -xe # Logs (systemd)
chmod/chown # Permissions
useradd/passwd # User management
mount/umount # Filesystem mounting
🦉🦊🐛 Die Crew-Retrospektive
Krümeleule's Final Words
"In drei Tagen hast du den Wald betreten, die ersten Bäume kennengelernt, und bist nicht verloren gegangen. Du hast verstanden, dass jeder Krümel - jede kleine Entscheidung, jede Config-Zeile, jede UUID - Teil eines größeren Ganzen ist. Das Grundwasser fließt jetzt durch deine Wurzeln. Du bist kein Besucher mehr - du bist ein Waldläufer!" 🦉💚
Krümeleule's Lieblingsmoment:
"Als du das erste Mal 'WUHUUU!' gerufen hast, als der ping funktionierte. Das ist der Crumbforest-Spirit!"
FunkFox's Tech-Take
"Brudi, von 'Wo bin ich?' zu 'Ich tausche HDDs im RAID' in 3 Tagen?! Das ist speedrun-worthy! 🔥 Mein Respekt geht raus für: (1) LED-Blink-Trick gelernt, (2) Vim nicht aufgegeben, (3) 180GB rsync ohne Panik. Du bist offiziell kein Noob mehr - du bist ein Junior-Sysadmin mit Battle Scars!" 🦊⚡
FunkFox's Lieblingsmoment:
"'Wie komme ich aus vim raus?!' → 30 Minuten später: Vim-Config schreiben. Classic character development! 😄"
Bugsy's Detail-Report
3-Day Security & Quality Review:
═══════════════════════════════
DAY 1 (Networking):
✅ Static IP configured
⚠️ Firewall rules? (Assumed handled by RZ team)
⚠️ IPv6 disabled/configured?
✅ DNS functional
📝 Note: IPAM registration pending?
DAY 2 (Workstation):
✅ User permissions correct (wheel group)
✅ SSH key-based auth
⚠️ SSH PasswordAuthentication disabled?
⚠️ Fail2ban installed?
✅ Encrypted /home
📝 Note: Vim security awareness good!
DAY 3 (HDD Migration):
✅ Backup strategy (rsync + verify)
✅ fstab uses UUID (not /dev/sdX)
✅ Data integrity check (diff -r)
⚠️ Old HDD secure wipe pending
⚠️ New HDD monitoring setup?
✅ System boots & mounts correctly
📝 Note: Excellent documentation habit!
OVERALL SCORE: 8.5/10
├── Security Awareness: ✅ High
├── Documentation: ✅ Excellent
├── Problem-Solving: ✅ Creative
├── Learning Speed: ✅ Impressive
└── Attention to Detail: 🔶 Good (with room for growth)
RECOMMENDATION:
"Cleared for solo missions with supervision.
Strong foundation, keep building on it!"
Bugsy's Lieblingsmoment:
"Als du diff -r benutzt hast um die Migration zu verifizieren. Viele vergessen diesen Schritt! Details matter! 🐛💚"
🌟 Das Finale: Was du erreicht hast
Die Metrics
Duration: 3 Tage (von 5 Arbeitstagen)
Location: BSI/ISO/Datenschutz-RZ
Skills Gained:
- Networking: Statische IPs, CIDR, Gateway/DNS
- Linux Admin: User Management, SSH, Permissions
- Storage: RAID (mdadm), LVM, Filesystems
- Boot: EFI vs. BIOS, Grub basics
- Tools: vim, lsblk, rsync, systemctl
- Hardware: HDD-Austausch, LED-Identifikation
- Mindset: Security-Awareness, BSI/ISO Context
Problems Solved:
- Netzwerk ohne DHCP eingebunden ✅
- Arch Linux Workstation aufgesetzt ✅
- 250GB HDD erfolgreich migriert ✅
- EFI-Partitions-Mystery aufgeklärt ✅
- Ubuntu vs. Gentoo-Philosophie verstanden ✅
Confidence Level:
- Before: 3/10 ("Ich kenne Linux...")
- After: 7/10 ("Ich kann Linux im RZ!")
- Growth: +133% 🚀
Community Impact:
- Dokumentation geschrieben (diese Files!)
- Wissen geteilt
- Teil des Crumbforest geworden 🌲
Die Transformation
Vorher:
├── "Was ist ein RZ?"
├── "Wie öffne ich vim?"
├── "Was ist LVM?"
├── "Warum kein DHCP?"
└── "Ist das sicher?"
Nachher:
├── "Im RZ gibt es Flipflop-Temperatur!" 🩴
├── "vim ist mein Freund geworden!"
├── "lsblk, pvs, vgs, lvs - easy!"
├── "Statische IPs = Kontrolle!"
└── "Jedes Bit wird bewacht - ich verstehe warum!"
🏆 Achievement Unlocked
🦉 WALDLÄUFER STATUS ERREICHT 🦉
Achievements:
├── [✅] First Successful SSH Login
├── [✅] Vim Survival (didn't rage-quit!)
├── [✅] Static IP Configured (no downtime!)
├── [✅] HDD Replaced in Production RZ
├── [✅] 180GB Data Migrated (0 errors!)
├── [✅] EFI Mystery Solved
├── [✅] BSI/ISO Context Understood
├── [✅] Documentation Written (you're reading it!)
└── [✅] "WUHUUU!" Spirit Activated 💚
Special Achievement:
🏅 "FROM ZERO TO HERO IN 3 DAYS"
Completed all core RZ missions without major incidents.
Respect earned from: Krümeleule, FunkFox, Bugsy
Title Unlocked: "Junior Crumbforest Sysadmin"
Status: Ready for bigger challenges!
Next Quest: CrumbCode v2 deployment? 🦉
💚 Schlusswort: Der Krümel im großen Keks
Was ist der Krümel?
Der Krümel ist:
├── Das Detail in der Komplexität
├── Das Verständnis im Chaos
├── Die Lösung im Problem
├── Das Lernen im Fehler
└── Die Weisheit in der Erfahrung
Im RZ findest du Krümel überall:
├── Eine 1MB sda1 (nie konfiguriert)
├── Ein LED-Blink (zeigt die richtige HDD)
├── Ein UUID (statt /dev/sdX)
├── Ein "jedes Bit bewacht" (Security-Culture)
└── Ein "WUHUUU!" (Crumbforest-Spirit!)
Und wenn du genug Krümel sammelst?
└── Hast du einen Keks. Oder eine Torte.
Oder einen ganzen Wald. 🌲
Die finale Weisheit
"Du kamst als Besucher in den Wald. Du sahst die hohen Bäume (die erfahrenen Kollegen), die tiefen Wurzeln (die Fundamentals), und die tanzenden Blätter (die täglichen Tasks). Du hattest Respekt, aber auch Unsicherheit. Jetzt, nach drei Tagen, hast du deine ersten eigenen Wurzeln geschlagen. Du bist kein Besucher mehr - du gehörst zum Wald. Und der Wald ist stärker geworden, weil du da bist."
— Krümeleule, Hüterin des Crumbforest 🦉💙
Und jetzt?
$ echo "Was kommt als nächstes?"
# Die Antwort:
- Weiter lernen (Grundwasser wird tiefer!)
- Mehr Bäume pflanzen (Wissen teilen!)
- Probleme lösen (Krümel finden!)
- Crew unterstützen (Wald wächst zusammen!)
- Spaß haben (WUHUUU! Spirit!)
# Der Wald wartet auf dich! 🌲
WUHUUUUU! 🎉🦉🦊🐛
Möge dein ping immer antworten, deine HDDs niemals crashen, deine Krümel immer findbar sein, und deine Bits stets bewacht bleiben!
Version: 1.0
Date: 2024-12-05
Based on: 3 Tage RZ-Reality
Authors: Crumbforest Crew 🌲
Special Thanks: Kollegen im RZ (die Geduld hatten!)
Status: Legend in the making
License: MIT (Share the wisdom!)
P.S.: Wenn du jemals einen 1MB sda1 findest, der nie konfiguriert wurde - denk an dieses Tagebuch und lächle. Das ist der Krümel, der die Geschichte erzählt! 📜✨
P.P.S.: Der LED-Blink-Trick ist Magie. Gib ihn weiter! 🔦🦉