7.9 KiB
title, description, published, date, tags, editor, dateCreated
| title | description | published | date | tags | editor | dateCreated |
|---|---|---|---|---|---|---|
| Wechsel Boot von HDD On Off | Bootfähigkeit der HDD wechseln zwischen on und off auf dem Raspberry PI5 | true | 2026-02-01T17:44:47.642Z | markdown | 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:
- Eine vollständige Markdown‑Dokumentation
- Eine Tabelle mit allen Dateien und Befehlen
- Zwei fertige Skripte (Disable & Enable)
- 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.elfkernel8.imgconfig.txtcmdline.txtbootcode.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
| 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
#!/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
#!/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
.disabledbleibt 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.