Gibt es eine gute Beschreibung des Raspberry Pi-Startvorgangs und der Festplattenpartitionsstruktur?
Was wird auf jeder Partition gespeichert (und warum)?
Startet das RPI von der SD-Karte (Sektor Null) oder liest die Firmware von der Festplattenstruktur?
Ich gehe davon aus, dass die RPI-Firmware, die NOOBS erstellt, indem sie einige Dateien unter einem beliebigen Betriebssystem kopiert, die MS-DOS-Festplattenstruktur (auf hoher Ebene) kennt und den Weg in den SD-Speicher findet.
Ich möchte eine gute SD-Karte auf eine größere SD-Karte klonen, um den verfügbaren Speicherplatz zu erweitern.
Kann ich eine neue SD erstellen und partitionieren und nur jede Partition auf das neue Gerät übertragen? Welche Partitionen werden benötigt?
Die 'linux'
Partition auf dem neuen Gerät ist größer als das Original und erweitert dann den Speicherplatz?
Vielleicht in eine neue Karte klonen und nur die letzte Partition (S. 6) erweitern, um den verfügbaren Speicherplatz zu nutzen, aber ich möchte keine Try-and-Error-Methode verwenden, möchte wissen, wie und warum.
Warum meine Frage?
Die meisten RPI-SD-Karten haben zwei (fdisk) Partitionen, möglicherweise wenn sie über eine .img-Datei installiert werden
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 2048 155647 153600 75M c W95 FAT32 (LBA)
/dev/mmcblk0p2 157696 15351807 15194112 7.3G 83 Linux
Ich habe jedoch eine mit bis zu 6 Partitionen. Dies ist die Struktur, die von NOOBS geerbt wurde.
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 1675781 833795 e W95 FAT16 (LBA)
/dev/mmcblk0p2 1679360 15499263 6909952 85 Linux extended
/dev/mmcblk0p3 15499264 15564799 32768 83 Linux
/dev/mmcblk0p5 1687552 1810431 61440 c W95 FAT32 (LBA)
/dev/mmcblk0p6 1818624 15499263 6840320 83 Linux
Ich denke, mit diesem Bild stimmt etwas nicht. Zwei W95-Partitionen?
Ich möchte nur die richtigen Partitionen auf eine neue Karte klonen. Ich habe zu viel Arbeit an diesem laufenden SD, um noch einmal von vorne zu beginnen! (Übrigens habe ich ein paar gute Backups).
Einige Notizen.
Trennwand p1
-rwxr-xr-x 1 root root 18K 2015-03-09 04:45 bootcode.bin
-rwxr-xr-x 1 root root 2.2K 2015-03-09 04:45 INSTRUCTIONS-README.txt
drwxr-xr-x 4 root root 32K 2015-03-09 04:45 os
...
-rwxr-xr-x 1 root root 542K 2015-03-09 04:45 recovery.elf
-rwxr-xr-x 1 root root 0 2015-03-09 04:45 RECOVERY_FILES_DO_NOT_EDIT
-rwxr-xr-x 1 root root 2.1M 2015-03-09 04:45 recovery.img
-rwxr-xr-x 1 root root 20M 2015-03-09 04:45 recovery.rfs
-rwxr-xr-x 1 root root 9.5K 2015-03-09 04:45 riscos-boot.bin
drwxr-xr-x 2 root root 8.0K 2015-12-05 18:13 System Volume Information
Trennwand p2
mount: /dev/mmcblk0p2: can't read superblock
Trennwand p3
-rw-r--r-- 1 root root 274 1969-12-31 19:18 installed_os.json
drwx------ 2 root root 12K 1969-12-31 19:00 lost+found
-rw-r--r-- 1 root root 86 1969-12-31 19:18 noobs.conf
Partition p4
existiert nicht.
Partition p5
:
-rwxr-xr-x 1 root root 9.7K 2015-12-01 20:17 bcm2708-rpi-b.dtb
...
-rwxr-xr-x 1 root root 18K 2015-12-01 20:17 bootcode.bin
-rwxr-xr-x 1 root root 120 1979-12-31 19:00 cmdline.txt
-rwxr-xr-x 1 root root 1.5K 2015-11-23 09:01 config.txt
-rwxr-xr-x 1 root root 19K 2015-10-14 05:43 COPYING.linux
...
-rwxr-xr-x 1 root root 9.5K 2015-12-01 20:17 fixup_x.dat
-rwxr-xr-x 1 root root 137 2015-02-16 09:57 issue.txt
-rwxr-xr-x 1 root root 3.9M 2015-12-01 20:17 kernel7.img
...
-rwxr-xr-x 1 root root 591K 2015-12-01 20:17 start_cd.elf
...
Partition p6
(die echte Raspbian Partition)
drwxr-xr-x 2 root root 4.0K 2015-07-28 21:40 bin
drwxr-xr-x 2 root root 4.0K 2015-02-15 09:09 boot
drwxr-xr-x 119 root root 4.0K 2015-12-23 15:36 etc
drwxr-xr-x 4 root root 4.0K 2015-12-19 20:53 home
drwxr-xr-x 15 root root 4.0K 2015-12-20 22:08 lib
drwx------ 2 root root 16K 2015-02-15 06:21 lost+found
....
drwxr-xr-x 12 root root 4.0K 2015-11-04 15:18 var
p2
hat") erweiterte Partition erstellt werden - in diesem Fall eine "Linux" -Partition und ein Container für die verbleibenden Partitionen diejenigen, die über 4 benötigt werden - und es gibt mehr als eine Möglichkeit, diese "logischen" Partitionen innerhalb der erweiterten zu organisieren.Antworten:
Mein letztes Ergebnis für die Migration auf eine größere SD-Karte mit einer Noobs-Einstellung lautet wie folgt.
Ich sichere das ursprüngliche Livebild auf einem temporären externen Laufwerk, das mit einer Windows-Box geteilt wird, ein Ersatz-Memory-Stick wird es tun.
Sie können auch mit win32DiskImager sichern. Dann habe ich das Image mithilfe von win32DiskImager auf eine größere SD-Karte gebrannt (von 8 auf 16 GB).
Ich habe die neu erstellte SD gebootet. Zu diesem Zeitpunkt behielt der SD immer noch die gleichen Partitionen, primären, erweiterten und logischen. Das Booten sollte also reibungslos funktionieren.
Verwenden
Machen Sie mit dem
p
Befehl einen Live-Screenshot der aktuellen Partitionstabelle .Löschen Sie die nicht verwendete und nicht benötigte Partition # 3 (p3) am Ende der physischen 'Festplatte' (nach der erweiterten Partition # 2) mit
d
.Wenn Sie als Nächstes Partition 2 (p2) mutig löschen, verschwindet auch die verschachtelte logische Partition.
Erstellen Sie die erweiterte Partition Nr. 2 neu, verwenden Sie jedoch jetzt den gesamten verfügbaren Speicherplatz.
Um # 2 neu zu erstellen, verwenden Sie genau denselben Start-Original-Sektor und
fdisk
geben Sie den End-Sektor an. Verwenden Siep
verify und stellen Sie sicher, dass der Typ erweitert ist, Typ '85', und dass der neue Endsektor tatsächlich größer als der ursprüngliche ist.Erstellen Sie die beiden vorherigen logischen Partitionen neu: Beginnen Sie mit der logischen Partition Nr. 5 (S. 5). Verwenden Sie für den Startsektor den exakten Sektor aus dem vorherigen Screenshot, genau wie für den Endsektor (dieser logische Datenträger wächst nicht). Verwenden Sie
t
, um die ID aufc
(MS-DOS) zu setzen. Erstellen Sie dann die Partition 6 (p6) mit demselben Startsektor wie zuvor, jedoch mit dem mitfdisk
undp' id
83 ' ausgewählten Endsektor.Überprüfen Sie Ihre Eingaben mit
p
und wenn und nur wenn, sieht ok aus, schreiben Sie einfach die Partitionstabelle mitw
ansonsten nur ^ C und starten Sie erneut.Starten Sie neu und drücken Sie die Daumen. Raspbian wird möglicherweise zweimal neu gestartet .
Dann erweitern Sie einfach das Dateisystem mit
Dies ist das Endergebnis, jetzt mit zusätzlichen 8 GB!
Also, jetzt ist mein Endsektor 14.442.496 von 6.840.320.
Das Boot
Ich weiß, dass dieses Thema woanders ist, aber das ist gut zu wissen.
Raspberry hat zwei Prozessoren an Bord: die GPU (Graphic Processing Unit) und den ARM mit jeweils unterschiedlichen Aufgaben. Die GPU teilt den Speicher mit dem ARM, einem sehr effizienten Allzweck-RISC-Prozessor (Reduced Instruction Set Computer), der einen Industriestandard-Befehlssatz ausführt. Alles auf einem BCM2835 'SoC' (System on a Chip)
Nach dem Einschalten wird die Steuerung zuerst an die GPU übergeben. Am Ende des Startvorgangs wird nur der Kernel auf dem ARM-Prozessor ausgeführt.
In der ersten Phase führt die GPU die On-Chip-ROM-Firmware aus, um sie
bootcode.bin
in den L2-Cache-Speicher zu laden und die Steuerung zu übergeben.bootcode.bin
aktiviert SD-Karte, SDRAM und verwendet die erste MS-DOS-Partition, um "start.elf" zu finden, zu laden und auszuführen.Zu diesem Zeitpunkt werden die folgenden Dateien
bootcode.bin
von der ersten MS-DOS-Partition auf der SD-Karte berücksichtigt :Es gibt eine Reihe von Optionen, die angepasst werden können
config.txt
. Sie können die Datei bearbeiten, mit der die SD auf einem externen Computer bereitgestellt wird, oder sie einfach auf einem laufenden Gerät bearbeiten:Typische Änderungen in config.txt beziehen sich auf Übertaktung , HDMI , Bildschirmgröße , Bildseitenverhältnis , Kamera , MAC-Adresse usw.
Wie Sie sehen, ist die vorgesehene Boot-Partition, auf der
kernel.img
gebootet wird, / dev / mmcblk0p6 und dies ist die zweite Partition, die auf Ihrer SD-Karte erforderlich ist und als 'ext4' formatiert ist (Linux oder Id '83' in fdisk lingo).Schließlich
start.elf
wirdkernel.img
Ihr Linux-Kernel geladen und ausgeführt .Sie können (sollten?) Den Kernel aktualisieren mit
rpi-update
; wenn nicht einfach daapt-get install rpi-update
).Hinweis: Das
sudo
Präfix wurde der Kürze halber gelöscht.quelle
Wenn Sie für Raspberry PI Boot-Prozess googeln, werden Sie viele finden, einschließlich Was ist die Startreihenfolge? (Es wurden einige kleinere Änderungen vorgenommen).
What is stored on each partition (and why)?
Dies hängt davon ab, wie es eingerichtet wurde und welche Verteilung verwendet wird.Does the RPI boot from the SD card (sector zero) or the firmware reads from the disk structure?
Nein.Can I create and partition a new SD and just DD each partition to the new device?
Ja. Möglicherweise ist es jedoch besser, die Karte zu klonen und die Partition zu erweitern.Most RPI SD cards have two (fdisk) partitions, perhaps when installed from a .img
Während dies bei Raspbian der Fall ist, startet die FAT32-Partition normalerweise bei 8192, was ideal für SD-Karten ist. (Partitionen sollten sich an der Grenze von Erase Block Group 4M befinden.)However I have one with as many as 6 partitions, some overlapping other sectors, perhaps this is the structure when started/inherited from NOOBS.
Sie müssen erweiterte Partitionen verstehen. Versuchen Sie Wiki.quelle