docs: add all untracked content

This commit is contained in:
2026-06-28 14:43:36 +00:00
parent c1b9f197fe
commit f1adaf1941
59 changed files with 1289 additions and 0 deletions
+244
View File
@@ -0,0 +1,244 @@
---
title: Wechsel Boot von HDD On Off
description: Bootfähigkeit der HDD wechseln zwischen on und off auf dem Raspberry PI5
published: true
date: 2026-02-01T17:44:47.642Z
tags:
editor: markdown
dateCreated: 2026-02-01T17:25:50.416Z
---
# RaspberryPiBootpartition deaktivieren/aktivieren
Natürlich, Dirk — ich packe dir jetzt **alles vollständig, sauber strukturiert und dokumentiert** in **einem einzigen Paket**, damit du nie wieder etwas zusammensuchen musst.
Du bekommst:
1. **Eine vollständige MarkdownDokumentation**
2. **Eine Tabelle mit allen Dateien und Befehlen**
3. **Zwei fertige Skripte (Disable & Enable)**
4. **Erklärungen, warum das alles so funktioniert**
Alles ist reversibel, sicher und exakt auf deine RaspberryPiBootpartition zugeschnitten.
---
# 📘 **Komplette Dokumentation: RaspberryPiBootpartition deaktivieren/aktivieren**
## 🧠 Hintergrund
Der RaspberryPi bootet **nicht** über BootFlags, MBRFlags oder GPTAttribute.
Er bootet **ausschließlich über Dateinamen** auf der BootPartition (FAT32).
Wenn Dateien wie:
- `start4.elf`
- `kernel8.img`
- `config.txt`
- `cmdline.txt`
- `bootcode.bin`
vorhanden sind, erkennt die Firmware die Partition als **bootfähig**.
👉 **Wenn du diese Dateien umbenennst, wird die Platte unbootbar — vollständig reversibel.**
---
# 📁 **Liste aller bootrelevanten Dateien**
Diese Dateien/Ordner müssen umbenannt werden, wenn die Partition *maximal* deaktiviert werden soll:
- FirmwareLoader (`start*.elf`, `bootcode.bin`)
- Kernel (`kernel*.img`)
- Initramfs (`initramfs*`)
- Konfiguration (`config.txt`, `cmdline.txt`, `issue.txt`)
- GPUFirmware (`fixup*.dat`, `fixup4*.dat`)
- DeviceTreeBlobs (`bcm*.dtb`)
- OverlaysOrdner (`overlays/`)
---
# 📑 **MarkdownTabelle: Deaktivieren & Aktivieren**
```markdown
| Datei / Muster | Deaktivieren (umbenennen) | Aktivieren (zurückbenennen) |
|--------------------------|-----------------------------------------------------|------------------------------------------------------|
| bootcode.bin | mv bootcode.bin bootcode.bin.disabled | mv bootcode.bin.disabled bootcode.bin |
| start*.elf | for f in start*.elf; do mv "$f" "$f.disabled"; done | for f in start*.elf.disabled; do mv "$f" "${f%.disabled}"; done |
| start4*.elf | for f in start4*.elf; do mv "$f" "$f.disabled"; done | for f in start4*.elf.disabled; do mv "$f" "${f%.disabled}"; done |
| kernel*.img | for f in kernel*.img; do mv "$f" "$f.disabled"; done | for f in kernel*.img.disabled; do mv "$f" "${f%.disabled}"; done |
| initramfs* | for f in initramfs*; do mv "$f" "$f.disabled"; done | for f in initramfs*.disabled; do mv "$f" "${f%.disabled}"; done |
| config.txt | mv config.txt config.txt.disabled | mv config.txt.disabled config.txt |
| cmdline.txt | mv cmdline.txt cmdline.txt.disabled | mv cmdline.txt.disabled cmdline.txt |
| issue.txt | mv issue.txt issue.txt.disabled | mv issue.txt.disabled issue.txt |
| fixup*.dat | for f in fixup*.dat; do mv "$f" "$f.disabled"; done | for f in fixup*.dat.disabled; do mv "$f" "${f%.disabled}"; done |
| fixup4*.dat | for f in fixup4*.dat; do mv "$f" "$f.disabled"; done | for f in fixup4*.dat.disabled; do mv "$f" "${f%.disabled}"; done |
| bcm*.dtb | for f in bcm*.dtb; do mv "$f" "$f.disabled"; done | for f in bcm*.dtb.disabled; do mv "$f" "${f%.disabled}"; done |
| overlays/ | mv overlays overlays.disabled | mv overlays.disabled overlays |
```
---
# 🛠️ **Script 1: disable_boot.sh**
**→ macht die HDD vollständig unbootbar**
```bash
#!/bin/bash
# Deaktiviert alle Raspberry-Pi-Bootdateien durch Umbenennung
mv bootcode.bin bootcode.bin.disabled 2>/dev/null
for f in start*.elf; do mv "$f" "$f.disabled" 2>/dev/null; done
for f in start4*.elf; do mv "$f" "$f.disabled" 2>/dev/null; done
for f in kernel*.img; do mv "$f" "$f.disabled" 2>/dev/null; done
for f in initramfs*; do mv "$f" "$f.disabled" 2>/dev/null; done
mv config.txt config.txt.disabled 2>/dev/null
mv cmdline.txt cmdline.txt.disabled 2>/dev/null
mv issue.txt issue.txt.disabled 2>/dev/null
for f in fixup*.dat; do mv "$f" "$f.disabled" 2>/dev/null; done
for f in fixup4*.dat; do mv "$f" "$f.disabled" 2>/dev/null; done
for f in bcm*.dtb; do mv "$f" "$f.disabled" 2>/dev/null; done
mv overlays overlays.disabled 2>/dev/null
echo "Bootpartition wurde deaktiviert."
```
---
# 🔄 **Script 2: enable_boot.sh**
**→ stellt alles wieder her**
```bash
#!/bin/bash
# Aktiviert alle Raspberry-Pi-Bootdateien durch Rückbenennung
mv bootcode.bin.disabled bootcode.bin 2>/dev/null
for f in start*.elf.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
for f in start4*.elf.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
for f in kernel*.img.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
for f in initramfs*.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
mv config.txt.disabled config.txt 2>/dev/null
mv cmdline.txt.disabled cmdline.txt 2>/dev/null
mv issue.txt.disabled issue.txt 2>/dev/null
for f in fixup*.dat.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
for f in fixup4*.dat.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
for f in bcm*.dtb.disabled; do mv "$f" "${f%.disabled}" 2>/dev/null; done
mv overlays.disabled overlays 2>/dev/null
echo "Bootpartition wurde wieder aktiviert."
```
---
# 🧩 **Warum funktioniert das?**
- Der RaspberryPi sucht beim Booten nach **konkreten Dateinamen**.
- Wenn diese fehlen oder anders heißen → **Partition wird ignoriert**.
- Durch `.disabled` bleibt alles erhalten und ist jederzeit rückgängig machbar.
- Die Schleifen (`for f in …`) stellen sicher, dass **jede Datei einzeln** umbenannt wird.
---
Dirk, das Verhalten ist absolut logisch und du hast nichts falsch gemacht.
Der Grund, warum `chmod +x *.sh` **nicht** funktioniert hat, liegt an **Dateirechten und Besitzern**, nicht am Befehl selbst.
Ich zeige dir kurz und klar, was passiert ist.
---
# 🔍 Warum `chmod +x *.sh` NICHT funktioniert hat
Du bist als **root** unterwegs (`sudo -i`), aber die Dateien gehören:
```
piadmin piadmin
```
Das ist **kein Problem** root darf alles.
Der eigentliche Grund ist:
### 👉 Die BootPartition ist FAT32
Und FAT32 unterstützt **keine UnixDateirechte**.
Das bedeutet:
- Es gibt **kein xBit**
- Es gibt **keine echten Besitzer**
- Es gibt **keine chmodRechte**
- Alles, was du siehst (`-rw-r--r--`), ist nur **simuliert**
### Deshalb:
`chmod +x *.sh` läuft **ohne Fehler**, aber es **ändert nichts**, weil FAT32 das xBit nicht speichern kann.
---
# 🧠 Wie führst du die Skripte trotzdem aus?
Ganz einfach:
Du musst sie **explizit** mit der Shell starten:
```
bash disable_boot.sh
```
oder
```
sh disable_boot.sh
```
oder
```
/bin/bash disable_boot.sh
```
Das funktioniert IMMER, auch ohne xBit.
---
# 💡 Wenn du die Skripte wirklich ausführbar machen willst
Dann musst du sie auf ein Dateisystem kopieren, das UnixRechte unterstützt, z.B.:
- ext4
- btrfs
- xfs
Beispiel:
```
cp disable_boot.sh /home/piadmin/
cp enable_boot.sh /home/piadmin/
cd /home/piadmin
chmod +x *.sh
```
Dann kannst du sie normal starten:
```
./disable_boot.sh
```
---
# 🧩 Kurzfassung
| Ursache | Erklärung |
|--------|-----------|
| FAT32Partition | unterstützt keine chmodRechte |
| xBit kann nicht gesetzt werden | deshalb bleibt `-rw-r--r--` |
| Skripte laufen trotzdem | aber nur über `bash script.sh` |
---
Wenn du willst, kann ich dir auch ein kleines WrapperScript bauen, das die BootPartition automatisch mountet und die Skripte dort ausführt.