docs: add all untracked content
This commit is contained in:
@@ -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
|
||||
---
|
||||
|
||||
# Raspberry‑Pi‑Bootpartition 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 Markdown‑Dokumentation**
|
||||
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 Raspberry‑Pi‑Bootpartition zugeschnitten.
|
||||
|
||||
---
|
||||
|
||||
# 📘 **Komplette Dokumentation: Raspberry‑Pi‑Bootpartition deaktivieren/aktivieren**
|
||||
|
||||
## 🧠 Hintergrund
|
||||
|
||||
Der Raspberry Pi bootet **nicht** über Boot‑Flags, MBR‑Flags oder GPT‑Attribute.
|
||||
Er bootet **ausschließlich über Dateinamen** auf der Boot‑Partition (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:
|
||||
|
||||
- Firmware‑Loader (`start*.elf`, `bootcode.bin`)
|
||||
- Kernel (`kernel*.img`)
|
||||
- Initramfs (`initramfs*`)
|
||||
- Konfiguration (`config.txt`, `cmdline.txt`, `issue.txt`)
|
||||
- GPU‑Firmware (`fixup*.dat`, `fixup4*.dat`)
|
||||
- Device‑Tree‑Blobs (`bcm*.dtb`)
|
||||
- Overlays‑Ordner (`overlays/`)
|
||||
|
||||
---
|
||||
|
||||
# 📑 **Markdown‑Tabelle: 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 Raspberry Pi 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 Boot‑Partition ist FAT32
|
||||
Und FAT32 unterstützt **keine Unix‑Dateirechte**.
|
||||
|
||||
Das bedeutet:
|
||||
|
||||
- Es gibt **kein x‑Bit**
|
||||
- Es gibt **keine echten Besitzer**
|
||||
- Es gibt **keine chmod‑Rechte**
|
||||
- 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 x‑Bit 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 x‑Bit.
|
||||
|
||||
---
|
||||
|
||||
# 💡 Wenn du die Skripte wirklich ausführbar machen willst
|
||||
|
||||
Dann musst du sie auf ein Dateisystem kopieren, das Unix‑Rechte 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 |
|
||||
|--------|-----------|
|
||||
| FAT32‑Partition | unterstützt keine chmod‑Rechte |
|
||||
| x‑Bit 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 Wrapper‑Script bauen, das die Boot‑Partition automatisch mountet und die Skripte dort ausführt.
|
||||
Reference in New Issue
Block a user