Avez-vous une bonne description du processus de démarrage du Raspberry Pi et de la structure de la partition de disque?
Qu'est-ce qui est stocké sur chaque partition (et pourquoi)?
Le RPI démarre-t-il à partir de la carte SD (secteur zéro) ou le micrologiciel lit-il à partir de la structure du disque?
Je suppose qu'étant créé par NOOBS en copiant quelques fichiers sous n'importe quel O / S, le micrologiciel RPI connaît la structure du disque MS-DOS (de haut niveau) et trouve sa place dans la mémoire SD.
Je veux cloner une bonne carte SD sur une carte SD plus grande pour étendre l'espace disponible.
Puis-je créer et partitionner une nouvelle SD et simplement DD chaque partition sur le nouveau périphérique? Quelles partitions sont nécessaires?
La 'linux'
partition sur le nouveau périphérique doit être plus grande que l'original, puis étendre l'espace disque?
Peut-être cloner dans une nouvelle carte et étendre uniquement la dernière partition (p6) pour utiliser l'espace disponible, mais je ne veux pas utiliser une méthode d'essai et d'erreur, j'aimerais savoir comment et pourquoi.
Pourquoi ma question?
La plupart des cartes SD RPI ont deux partitions (fdisk), peut-être lorsqu'elles sont installées à partir d'un .img
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
Cependant, j'en ai une avec pas moins de 6 partitions, c'est la structure héritée de NOOBS.
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
Je pense que quelque chose ne va pas avec cette photo. Deux partitions W95?
Je souhaite cloner uniquement les bonnes partitions sur une nouvelle carte. Je dois beaucoup travailler sur cette SD en cours d'exécution pour tout recommencer! (BTW j'ai quelques bonnes sauvegardes).
Quelques notes.
Cloison 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
Cloison p2
mount: /dev/mmcblk0p2: can't read superblock
Cloison 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
La partition p4
n'existe pas.
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
(la vraie partition raspbian )
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
a fait) une partition étendue - dans ce cas, une partition «Linux» et c'est un conteneur pour le reste celles nécessaires au-dessus de 4 - et il existe plusieurs façons d'organiser ces partitions «logiques» à l'intérieur de la partition étendue.Réponses:
Mon résultat final pour migrer vers une carte SD plus grande sur un paramètre noobs, est le suivant.
Je sauvegarde l'image en direct d'origine sur un disque externe temporaire, partagé avec une boîte Windows, une clé USB de rechange le fera.
vous pouvez également sauvegarder avec win32DiskImager, puis, j'ai gravé l'image sur une carte SD plus grande (je suis passée de 8 à 16 Go) cette fois, en utilisant win32DiskImager.
J'ai démarré la SD nouvellement créée. À ce stade, la SD conservait toujours les mêmes partitions, primaires, étendues et logiques. Le démarrage devrait donc fonctionner en douceur.
En utilisant
Prenez une capture d'écran en direct de la table de partition actuelle à l'aide de la
p
commande.Supprimez la partition inutilisée et inutile # 3 (p3) située à la fin du «disque» physique (après la partition étendue # 2) avec
d
.Ensuite, supprimez courageusement la partition # 2 (p2), la partition logique imbriquée disparaîtra également.
Recréez la partition étendue # 2, mais maintenant, en utilisant tout l'espace disponible.
Pour recréer # 2, utilisez le même secteur d'origine de départ très précis et laissez
fdisk
vous donner le secteur de fin. Utilisezp
vérifier et que le type est de type étendu '85' et que le nouveau secteur final est en effet plus grand que l'original.Recréez les deux partitions logiques précédentes: commencez par la partition logique n ° 5 (p5); pour le secteur de départ, utilisez le secteur exact de la capture d'écran précédente, de même que le secteur de fin (ce disque logique ne grandira pas), utilisez
t
pour définir l'ID surc
(MS-DOS). Ensuite, recréez la partition # 6 (p6) avec le même secteur de départ qu'auparavant mais avec le secteur de fin sélectionné parfdisk
etp' id
83`.Vérifiez vos entrées avec
p
et si et seulement si, semble correct, écrivez simplement la table de partition avecw
sinon juste ^ C et recommencez.Redémarrez et croisez les doigts. Raspbian peut redémarrer deux fois.
Ensuite, développez simplement le système de fichiers avec
C'est le résultat final, maintenant avec 8 Go supplémentaires!
Donc, maintenant mon secteur final est de 14 442 496 au lieu de 6 840 320.
The Boot
Je sais que ce sujet est ailleurs, mais c'est bon à savoir.
Raspberry a deux processeurs embarqués: le GPU (Graphic Processing Unit) et l'ARM, chacun avec une tâche différente. Le GPU partage la mémoire avec l'ARM, un processeur RISC (Reduced Instruction Set Computer) à usage général très efficace, exécutant un jeu d'instructions standard de l'industrie. Le tout sur un BCM2835 'SoC' (System on a Chip)
Lors de la mise sous tension, le contrôle est d'abord donné au GPU, seul le noyau, à la fin du processus de démarrage, s'exécutera sur le processeur ARM.
Lors de la première étape, le GPU exécutera le micrologiciel de la ROM sur puce pour le charger
bootcode.bin
dans la mémoire cache L2 et passer le contrôle.bootcode.bin
va activer la carte SD, activer la SDRAM et utiliser la première partition MS-DOS pour rechercher, charger et exécuter «start.elf».À ce stade, les fichiers suivants sont pris en compte par
bootcode.bin
la première partition MS-DOS sur la carte SD:Il existe un bon nombre d'options personnalisables
config.txt
. Vous pouvez éditer le fichier de montage du SD sur un ordinateur externe ou simplement éditer sur une unité en cours d'exécution:Les changements typiques sur config.txt sont liés à l' overclock , au HDMI , à la taille de l'écran , à l' aspect , à la caméra , à votre adresse MAC, etc.
Comme vous pouvez le voir, la partition de démarrage désignée, où
kernel.img
démarrera est / dev / mmcblk0p6 et il s'agit de la deuxième partition requise sur votre carte SD, formatée en 'ext4' (Linux ou Id '83' dans le jargon fdisk).Enfin,
start.elf
va charger et exécuterkernel.img
, votre noyau Linux.Vous pouvez (devriez?) Mettre à jour le noyau avec
rpi-update
; sinon justeapt-get install rpi-update
).note: le
sudo
préfixe a été supprimé par souci de concision.la source
Si vous utilisez Google pour le processus de démarrage de Raspberry PI, vous en trouverez beaucoup, y compris quelle est la séquence de démarrage? (il y a eu quelques changements mineurs).
What is stored on each partition (and why)?
Cela varie en fonction de la configuration et de la distribution utilisée.Does the RPI boot from the SD card (sector zero) or the firmware reads from the disk structure?
Non.Can I create and partition a new SD and just DD each partition to the new device?
Oui. Bien qu'il soit préférable de cloner la carte et d'étendre la partition.Most RPI SD cards have two (fdisk) partitions, perhaps when installed from a .img
Alors que Raspbian le fait, la partition FAT32 commence normalement à 8192, ce qui est idéal pour les cartes SD. (Les partitions doivent être situées sur la limite du groupe de blocs d'effacement 4M.)However I have one with as many as 6 partitions, some overlapping other sectors, perhaps this is the structure when started/inherited from NOOBS.
Vous devez comprendre les partitions étendues. Essayez le wiki.la source