FWIW, dies läuft auf einer Arch Linux ARM-Installation, die von einem SATA startet, wo ich die SD-Karte vom RPi eingesteckt habe. Die ursprüngliche 16-GB-Karte wurde mit einem Debian-Image von Windows abgebildet. Ich hatte eine SD-Karte verwendet, die ich zufällig zur Hand hatte, aber ich möchte diese spezielle SD-Karte nicht mehr im RPi behalten:
Disk /dev/mmcblk0: 16.1 GB, 16134438912 bytes
4 heads, 32 sectors/track, 246192 cylinders, total 31512576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee283
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 155647 76800 c W95 FAT32 (LBA)
/dev/mmcblk0p2 157696 3414015 1628160 83 Linux
/dev/mmcblk0p3 3416064 3807231 195584 82 Linux swap / Solaris
Also habe ich ein Disk-Image gemacht
$ dd if=/dev/mmcblk0 of=/backup/rpiboot.bin bs=1M
15387+0 records in
15387+0 records out
16134438912 bytes (16 GB) copied, 1745.67 s, 9.2 MB/s
Ich habe die 8-GB-SD-Karte ausgetauscht. Hier ist die fdisk einer 8-GB-SD-Standardkarte dd
:
Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes
81 heads, 10 sectors/track, 19165 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 15523839 7757824 b W95 FAT32
Ich habe das Image auf das 8-GB-Laufwerk geschrieben (beachten Sie die Meldung "Kein Speicherplatz mehr auf dem Gerät").
$ dd of=/dev/mmcblk0 if=/backup/rpiboot.bin bs=1M
dd: writing ‘/dev/mmcblk0’: No space left on device
7581+0 records in
7580+0 records out
7948206080 bytes (7.9 GB) copied, 1802.52 s, 4.4 MB/s
fdisk
nachher dd
:
Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes
4 heads, 32 sectors/track, 121280 cylinders, total 15523840 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee283
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 2048 155647 76800 c W95 FAT32 (LBA)
/dev/mmcblk0p2 157696 3414015 1628160 83 Linux
/dev/mmcblk0p3 3416064 3807231 195584 82 Linux swap / Solaris
Die Partitionen sind alle gleich.
Das RPi bootet und alles scheint in Ordnung zu sein.
Ich vermute also, dass das Standard-Image nur ein 2-GB-Image ist und ich es nie so geändert habe, dass es die vollen 16 GB verbraucht. Es konnte es kopieren und dann die ersten 8 GB auf das neue Laufwerk schreiben.
Kann ich aufgrund der Art und Weise, wie ich sie geklont habe, Probleme mit dieser neuen SD-Karte feststellen? Gibt es einen besseren Weg, um damit umzugehen?
quelle
Antworten:
Ja, das ist in Ordnung, denn wie Sie vermutet haben, haben nur die ersten 2 GB tatsächliche Daten. Der Rest des Speicherplatzes (entweder die ursprünglichen 14 GB oder die jetzt 6 GB) wird nicht verwendet, sodass es keine Rolle spielt, was vorhanden ist oder nicht.
Wenn Sie sich jedoch die Mühe machen, es zu verschieben, können Sie die Hauptpartition mit fdisk vergrößern, formatieren und
cp -a
zum Kopieren der Dateien von der alten (1,6 GB) Partition auf die neue, größere Partition verwenden. Im Gegensatz zu anderen Betriebssystemen ist es Linux nicht besonders wichtig, wie Dateien im Dateisystem angeordnet sind. Solange Sie die Dateiattribute beibehalten (was auch dercp -a
Fall ist), ist dies alles, was Sie benötigen, um eine Linux-Installation von einer Partition / einem Gerät auf eine andere zu verschieben.Alternativ können Sie eine zusätzliche Partition im nicht verwendeten Speicherplatz erstellen und einbinden
/home
, sodass Sie viele Daten in Ihrem Home-Verzeichnis speichern können, ohne den vom Kernbetriebssystem verwendeten Speicherplatz zu beeinträchtigen.quelle