Warum zeigt Micro-SD-Kartenleser zwei Verzeichnisse an?
Ich habe mir kürzlich ein Raspberry Pi-Set im Internet bestellt, wo unter anderem eine 16GB Micro-SD-Karte enthalten war, auf der bereits ein OS installiert war. Nachdem dieses OS nicht funktioniert hat, wollte ich selber Raspbian auf die SD-Karte spielen und schob dazu die SD-Karte in einen Kartenleser, den ich wiederum an meinen Laptop anschloss. Nun wurde mir aber einmal das Laufwerk F: angezeigt, wo auch die Dateien von dem bereits installierten OS zu sehen waren, und einmal das Laufwerk G:, welches ich erst formatieren müsste. Nun habe ich mein eigenes OS auf das Laufwerk F: gespielt und damit funktionierte der Raspberry Pi auch. Als ich aber einen eigenen Ordner für mein eigenes Programm (200MB groß) in das Laufwerk F: kopieren wollte, wurde mir die Meldung "zu wenig Speicherplatz" angezeigt. Dann bemerkte ich, dass auf dem Laufwerk F: angeblich 20,9 MB von 40 MB bereits benutzt waren, und dass nach dem formatieren des Laufwerkes G: dort 14,5 GB von 14,5 GB frei waren. Nun zu meiner Frage: Wie kann es sein, dass die eigentlich 16MB große Micro-SD-Karte nur 40 MB groß ist, mir dafür aber ein anderes Laufwerk angezeigt wird, welches von der Speicherkapazität übereinstimmen würde? Eine Micro-SD-Karte kann doch nicht 2 Laufwerke sein. Und als ich die Karte in den Pi steckte, funktionierte dieser auch. Also wird das Laufwerk F: mit dem OS beim Bootvorgang benutzt, was ja auch so sein sollte, aber das Laufwerk F: müsste eigentlich ca 16GB groß sein, und stattdessen wird mir ein weiteres Laufwerk angezeigt. Warum? Und wie kann ich das Speicherproblem lösen?
1 Antwort
Auf der SD-Karte sind zwei Partitionen. Eine ist die Boot-Partition für den Pi, die mit dem Dateisystem FAT formatiert ist. Die kannst Du im Windows-Explorer sehen, lesen, schreiben. Die zweite Partition ist mit dem Dateisystem ext4 formatiert. Die Partition sieht Windows, kann darauf aber weder lesen, noch schreiben. Das Dateisystem ist unbekannt, deshalb sagt Dir Windows, Du sollst es formatieren. Beide Partitionen belegen aber die SD-Karte nicht komplett. Es gibt auf der Karte noch nicht zugewiesenen Speicherplatz. Hättest Du das originale Betriebssystem auf der SD-Karte gelassen (ich nehme an, das war Raspbian), hättest Du mit dem Befehl raspi-config die Partition erweitern können und sämtlichen Speicherplatz nutzen können. Durch das Formatieren der Partition wurde offenbar der gesamte Speicherplatz zugewiesen und ein Dateisystem geschrieben.
Um die Speicherkarte wieder wie ein Laufwerk zu behandeln, hilft Dir
https://www.heise.de/ct/hotline/Raspi-SD-Karte-unter-Windows-loeschen-2618228.html
oder
https://www.gieseke-buch.de/raspberrypi/sd-karte-vom-raspberry-pi-windows-vollstaendig-nutzen
Was heißt "habe ich dann das selbe Problem"? Es ist normal und gewollt, dass Raspbian mit zwei Partitionen arbeitet. Eine davon ist nicht von Windows lesbar. Das ist normal, aber kein Problem.
Ich wollte nämlich letztens meinen eigenen Ordner auf die Karte spielen, aber auf dem Teil mit der lesbaren Partition war dafür nicht genug Speicherplatz. Und als ich im raspi-config das Speichersystem erweiterte, war immer noch nicht genug Speicherplatz für den Ordner da. Wie kann ich das lösen?
Auf der Boot-Partition (diejenige, die Windows lesen kann) hat Dein Ordner nichts zu suchen. Du musst ihn auf die ext4-Partition schaufeln.
Möglichkeit 1: Du schiebst den Ordner auf einen USB-Stick. Auf dem Pi installierst Du den Treiber, um NTFS- und FAT-Medien zu lesen:
sudo apt install ntfs-3g
Wenn Du nun den USB-Stick einsteckst, wird der vielleicht schon automatisch erkannt und ins Dateisystem eingehängt. Mit
df -h
siehst Du dann ein Dateisystem /dev/sda1. In der Spalte "Eingehängt auf" siehst Du dann den Pfad, der wahrscheinlich mit /mnt anfängt. Unter diesem Pfad findest Du Deinen Ordner, denn Du dann nach /home/pi kopieren kannst.
Wenn der USB-Stick nicht automatisch eingehängt wird, musst Du das manuell machen. Erst musst Du einen sogenannten Mountpoint anlegen:
sudo mkdir -p /media/usb
Anschließend wird der USB-Stick eingehängt. Wenn der Stick mit dem Dateisystem NTFS formatiert ist:
sudo mount -t ntfs -o utf8,uid=pi,gid=pi,noatime /dev/sda1 /media/usb
Wenn der Stick mit dem Dateiystem FAT formatiert ist:
sudo mount -t vfat -o utf8,uid=pi,gid=pi,noatime /dev/sda1 /media/usb
Nun kannst Du Deinen Ordner unter /media/usb finden und nach /home/pi kopieren.
Möglichkeit 2: Du richtest auf dem Pi einen FTP- oder SFTP-Server ein und kopierst die Dateien mit einem FTP-Client, der auf Deinem Windows-Rechner installiert ist, auf den Pi.
Möglichkeit 3: Du richtest auf dem Windows-Rechner einen FTP-Server ein, installierst einen FTP-Client auf dem Pi und holst den Ordner so auf den Pi.
Möglichkeit 4: Du schiebst den Ordner auf einen (beliebigen) Webserver und holst ihn z. B. per wget auf den Pi. wget kannst Du auf dem Pi mit
sudo apt install wget
installieren.
Danke, du warst mir echt eine riesige Hilfe
Ich habe den USB-Stick in den Pi gesteckt und er wurde auch sofort erkannt, aber als ich in wieder in meinen Laptop steckte, konnte ich nicht auf ihn zugreifen, was ja auch logisch ist, da er ja nun eine Partition hat. Muss ich diese jetzt mit diskpart wieder löschen, um auf meinen Stick wieder zugreifen zu können?
Der Pi verändert den USB-Stick nicht selbstständig. Was heißt es genau, dass Du am Laptop auf den Stick nicht mehr zugreifen kannst? Bekommst Du eine Fehlermeldung?
Bevor Du den Stick vom Pi abziehst, solltest Du ihn wieder aushängen:
sudo umount /media/usb
Möglicherweise hat das abziehen vom Pi das Dateisystem beschädigt. Stecke den Stick noch mal an die Pi und repariere das Dateisystem:
sudo umount /media/usb
sudo fsck -a /dev/sda1
Und dann stecke ihn wieder an den Laptop.
Ach ja, nachdem ich selber Raspbian auf die Micro-SD-Karte gespielt habe, habe ich im raspi-config-Menü den Speicherplatz erweiter, aber es hat sich, als ich die Karte in den Kartenleser steckte, nichts geändert
Natürlich ändert sich nichts, was Du mit Windows sehen könntest. Die ext4-Partition wird erweitert. Die kann Windows nicht lesen, egal wie groß sie ist.
Vielen Dank erstmal für deine hilfreiche Antwort. Wenn ich mir jetzt eine leere, neue Micro-SD-Karte kaufe und mit Etcher das Raspbian-Image auf die SD-Karte spiele, habe ich dann das selbe Problem? Die Lösung mit diskpart hatte ich bereits versucht, aber nicht wissen dass zwei Partitionen vorliegen habe ich ausversehen beide gelöscht, und dann war die Karte unbrauchbar.