On a toujours envie de savoir comment ça marche ! (pas vous ? ben qu’est-ce que vous faites là alors ? 😆 ). Je vous propose une excursion dans l’univers du MBR et des partitions, qui vous fera découvrir comment sont gérées ces fameuses partitions.
En final, nous verrons comment créer avec un utilitaire sous Windows les partitions attendues par le Raspberry Pi lors de son démarrage.
Vous êtes prêt ? Attachez votre ceinture, on y va !
Au sommaire :
Le MBR
Le MBR (Master Boot Record) est le premier secteur d’un support de stockage, disque dur ou support amovible (Clé USB, carte SD…). Sa taille est, comme pour tous les secteurs, de 512 octets.
Qu’y a-t-il dans le MBR
Le MBR ne faisant que 512 octets, la place est comptée. On y trouve principalement le code du premier étage de boot (c’est le code exécuté par votre PC pour aller charger le deuxième étage du boot), les message d’erreur à afficher en cas de besoin, et enfin la table de partition.
Le nombre magique
Les deux derniers octets du MBR sont particuliers : C’est le code 0xAA55 (AA55 en hexadécimal). Le BIOS n’exécute le code exécutable contenu dans le MBR que si ces deux octets contiennent bien la valeur AA55. Pourquoi cette valeur me direz-vous ? Si vous convertissez 0xAA55 en binaire, vous obtenez : 1010101001010101 et il y a peu de chance que ce soit exactement cette valeur qui soit présente dans les deux derniers octets d’un secteur (regardez la succession des 1 et des 0) si ce n’est pas un secteur de boot.
Code exécutable
Lorsque le BIOS a vérifié la présence du nombre magique, il charge le code exécutable contenu dans le MBR à l’adresse mémoire 0x7C00 et l’exécute. C’est le Boot Strap Loader. Son rôle est de charger le système d’exploitation que vous avez désigné comme actif.
Messages
Les messages d’erreur permettent d’informer l’utilisateur en cas de problème au cours du boot. Sur le MBR (un peu plus bas dans la page) issu de mon disque dur, vous trouverez :
- Invalid partition table
- Error loading operating system
- Missing operating system
dans la colonne de droite, qui correspond à la traduction en ASCII des codes affichés en hexadécimal à gauche.
Table de partition
C’est un bloc de 64 octets, situés en fin du secteur de MBR, juste avant le 0xAA55. Ces 64 octets sont constitués de 4 paquets de 16 octets, chaque paquet correspondant à une partition. C’est pour quoi on ne peut créer que 4 partition principales sur un disque dur en MBR.
Un exemple de MBR
Cet exemple de MBR a été réalisé sur mon disque dur avec HxD (Voir références).
La table de partition
Au fait, une partition, qu’est ce que c’est?
Lorsque vous achetez un disque dur, disons de 1 To, et que vous l’examinez à partir de zindozs par exemple, vous voyez le 1 To disponible en un seul tenant. Cela signifie que le disque dur ne contient qu’une seule partition de la taille totale du disque.
Cependant dans certains cas, on peut souhaiter diviser le disque en différentes parties bien séparées. Ce pourrait être pour booter sur différents systèmes d’exploitation, ou pour séparer le système des données… Dans ce cas, on va diviser le disques en plusieurs parties. Chacune de ces parties est appelée une partition.
On pourrait comparer le disque dur à une pièce dans laquelle on doit ranger du matériel. Si le rangement n’a pas d’importance, on met tout en vrac dans la pièce. Si on souhaite séparer le matériel électrique du matériel de plomberie et de la documentation, on va disposer des armoires dans la pièce, chaque armoire étant destinée à accueillir un matériel spécifique. Ces armoires représentent nos partitions.
A quoi sert la table de partition ?
La table de partition est un tableau de 64 octets, séparés en 4 blocs de 16 octets. Elle est destinée à recevoir dans chaque bloc de 16 octets les informations propres à chaque partition : Son type, si elle est bootable, où elle commence et où elle finit.
On pourrait la comparer à un plan affiché à l’entrée de notre pièce, qui indiquerait l’emplacement des armoires, leur taille, et ce à quoi elles sont destinées.
La table de partition en détail
Un coup d’œil avec PTEDIT.EXE
Pour se rendre compte du contenu d’une table de partition, le logiciel PTEDIT peut vous aider.
Ci-dessus PTEDIT lancé sur ma machine identifie 3 disques durs (liste déroulante) : un de 500 Go (mon disque système), un de 2 To (mes données) et un troisième de 4 Go (la carte SD de mon Rasberry Pi). Actuellement c’est le premier disque dur qui est sélectionné et on voit les 2 partitions NTFS (type 07) la première étant bootable et correspondant à la partition primaire de 100 Mo créée par zindozs 7. La deuxième est la partition qui occupe le reste du disque de 500 Go et contient mon système
.Si on descend sur le disque 3, la carte SD du Raspberry Pi, on voit que la partition 1 est de type 0C, soit FAT32 (voir article de Wikipedia), alors que la partition 2 est de type 83 = LINUX, ce qui explique que quand vous lisez cette carte avec un système zindozs, il ne mentionne que la première partition de 55 Mo car il la reconnait et fait comme si l’autre n’existait pas… (c’est une limitation de zindozs qui ne reconnait qu’une partition sur une carte SD)
En cliquant sur la première partition (le 1 est en gras), vous lisez bien en bas de la fenêtre FAT32X.
Et en cliquant sur la deuxième partition (le 2 est en gras), vous lisez Linux native file system.
Bien entendu, cet outil permettant d’intervenir sur la table de partition pour réparer des problèmes vous permettra aussi de rendre illisibles tous les supports que vous « tripoterez »… N’intervenez qu’en plein connaissance de cause !
LA partition active (car il ne peut y en avoir qu’une !) est celle qui contient le système qui sera démarré sur votre ordinateur. Elle est indiquée dans la table de partition par l’octet 0x80 présent dans dans la colonne Boot de ptedit.exe.
Le type de partition
Le type de partition est un octet (il vaut donc de 0 à 255, soit 256 valeurs possibles). Toutes les valeurs n’ont pas été attribuées. Le tableau ci-dessous vous donne les valeurs actuelles. Cliquez sur l’image pour ouvrir un .pdf du tableau complet.
Le début de la partition
La partition débute, pour ptedit.exe, sur un cylindre, une tête et un secteur donnés. En fait la localisation se fait en LBA (Logical Block Addressing) sur les disques modernes, c’est à dire que ces informations n’ont plus rien à voir avec la réalité physique du disque.
La fin de la partition
La partition se termine, pour ptedit.exe, sur un cylindre, une tête et un secteur donnés. En fait la localisation se fait en LBA (Logical Block Addressing) sur les disques modernes, c’est à dire que ces informations n’ont plus rien à voir avec la réalité physique du disque.
Les partitions
Partitions principales ou primaires
Une partition principale est une partition de base, définie dans la table de partition. La table de partition comprenant 4 entrées (4 blocs de 16 octets), il est possible de créer au maximum 4 partitions principales. Certains systèmes d’exploitation n’acceptent de booter QUE sur des partitions principales. Il faudra donc RTFM avant de vous lancer dans un partitionnement sauvage…
Partition étendue – Lecteurs logiques
Lorsque vous avez besoin de plus de 4 partitions, il est possible de créer une ET UNE SEULE partition étendue, cette partition contenant elle même une nouvelle structure de partitions, vous permettra de créer des lecteurs logiques. Chaque lecteur logique est identifié par une lettre de l’alphabet. A et B sont réservés pour les lecteurs de disquettes, C contiendra le système d’exploitation, il vous reste les lettres de D à Z soir 23 lecteurs logiques. Attention si vous avez un lecteur de DVD, une clé USB… tenez en compte.
Finalement, je peux créer combien de partitions ?
Alors on récapitule?
Si vous créez uniquement des partitions principales : vous pouvez en créer 1, 2, 3 ou 4 (puisqu’il y a 4 entrées dans la table de partitions).
Maintenant si vous souhaitez créer une partition étendue, vous pourrez créer seulement 1, 2 ou 3 partitions primaires et une seule partition étendue.
Partitionner sa carte SD
Nous arrivons au but de cet article, préparer la carte SD pour son utilisation sur le Raspberry Pi. C’est faisable sous LINUX, mais aussi sous windows. J’ai choisi MiniTool Partition Wizard Home Edition qui a le gros avantage d’être gratuit et l’inconvénient d’être uniquement en anglais. Mais en suivant le pas-à-pas qui suit vous devriez pouvoir préparer votre carte SD.
Sauvegardez le contenu de votre carte SD
Bien entendu, comme d’habitude avant de vous lancer dans des manipulations qui pourraient être dangereuses, vous aurez procédé à une sauvegarde de vos précieuses données !
L’outil MiniTool Partition Wizard
Téléchargement
Vous pouvez télécharger Partition Wizard depuis le site de MiniTool : Cliquez sur le bouton vert Download Now. La version actuelle est la 7.8.
Vous serez renvoyé sur le site CNET pour le téléchargement. Cliquez sur « Telecharger maintenant » (NE CLIQUEZ PLUS SUR RIEN SOUS PEINE D’ÊTRE EMBARQUE DANS DES PUBS ET AUTRES…), attendez quelques instants, la fenêtre de téléchargement s’ouvre, et vous téléchargez un fichier pwhe78.exe de 14 Mo environ.
Installation
Pas de problème particulier, double cliquez sur le programme, après c’est du next, next, next…
Utilisation
Supprimer une partition
Lancez le programme Partition Wizard. J’ai choisi pour la démo d’utiliser une carte SD SAMSUNG de 2 Go. Elle est ici référencée comme Disk 3. Attention de bien repérer le disque sur lequel vous travailler, ce programme peut supprimer toutes les données d’un disque ! Disk 3 contient une seule partition de 1,9 Go.
Vous pouvez afficher les copies d’écran à leur taille réelle en cliquant dessus
Faites un clic droit sur la carte SD, sélectionnez DELETE
La carte devient unallocated (espace non alloué)
Créer une partition principale FAT32
Clic droit sur la partie unallocated. Sélectionner create.
Une fenêtre »Create New Partition » s’ouvre.
Donnez un nom à la partition si vous le souhaitez (Partition Label), j’ai mis FAT32, ensuite « Create as » choisissez Primary, « File system » choisissez FAT32, « Drive Letter » vérifier que ça n’interfère pas avec les disques présents sur votre machine, j’ai choisi M:, et laissez « Cluster Size » sur Default. Comme notre partition commence au début de la carte SD, laissez « Unallocated Space Before » à 0, puis réglez la taille de partition souhaitée « Partition Size » à 56 Mo. La zone « Unallocated Space After » indique qu’il reste 1,8 Go disponibles.
Relisez pour être sûr de ce que vous avez entré, puis validez en cliquant sur OK
La nouvelle partition apparait sur Disk 3, le reste de la carte SD est unallocated (non alloué)
Créer une partition LINUX ext4
Créez la partition LINUX de la même façon. Un message vous avertit que zindozs ne reconnait qu’une partition sur une carte SD…
Comme d’habitude, relisez avant de valider. Votre carte SD est configurée, les deux partitions apparaissent. Cependant pour l’instant cette configuration est toujours uniquement dans Partition Wizard.
Il ne reste qu’à appliquer ces choix à la carte SD : Cliquez en haut à gauche sur l’icône Apply. C’est à partir de ce moment que Partition Wizard va mettre à jour la table de partition de votre carte SD.
Partition Wizard vous demande de ne pas utiliser les options d’économie d’énergie sur votre ordinateur et de fermer toutes les applications… 2 précautions valent mieux qu’une !
Validez votre choix en cliquant sur YES.
Partition Wizard applique vos choix à la carte SD, vous pouvez suivre l’avancement des opérations.
Un petit tour sur la fenêtre Ordinateur confirmera le bon déroulement des opérations.
Et le formatage là dedans ?
Avec Partition Wizard, c’est l’utilitaire qui assure lui-même le formatage de la partition. Elle est ainsi prête à l’emploi dès que Partition Wizard a terminé de travailler. Regardez la dernière copie d’écran ci-dessus, Partition Wizard indique Format Partition…
Dans la vraie vie, la création des partitions est une chose, le formatage une autre. Sous LINUX, il faut utiliser cfdisk et mkfs pour réaliser ces opérations (voyez cet article pour plus d’infos).
Pour reprendre le comparatif avec notre pièce (le disque dur) et ses armoires (les partitions), le formatage correspond à la pose d’étagères dans les armoires, chaque étagère étant munie de boites de rangement destinées à recevoir vos données. A chaque armoire est associée un cahier qui permet de savoir où est rangée chaque chose (le répertoire principal).
Chaque système d’exploitation va donc formater la partition pour pouvoir y ranger – à sa manière – et y retrouver les données que vous lui confierez.
Le formatage va « consommer » une partie de la place disponible de la partition, pour mettre en place le répertoire et autres moyens de gestion nécessaire au système. C’est ce qui explique que la taille disponible pour les données est inférieure à la taille totale de la partition.
Conclusion
Vous l’aurez peut-être compris, la préparation de la carte SD a été le moyen d’expliquer l’organisation des disques et moyens de stockage que nous utilisons. Une bonne connaissance du fonctionnement de ces mécanismes permet de comprendre certains dysfonctionnements et d’y remédier.
Avec une carte SD prête à recevoir les fichiers de boot et le système d’exploitation de votre choix, vous pouvez commencer à expérimenter. (voir l’article sur la façon dont le Raspberry Pi boote)
Mais l’histoire ne s’arrête pas là : avec l’UEFI et le GPT (GUID Partition Table) ce sont pas moins de 128 partitions qu’il est possible de créer sur un disque…
Mais c’est une autre histoire.
Références :
- http://www.culte.org/projets/doc/bigide/node21.html
- http://www.bellamyjc.org/fr/theoriemultiboot1.html
- http://www.partitionwizard.com/free-partition-manager.html
- http://poloastucien.free.fr/raw_tuto_h.html
- http://fr.wikipedia.org/wiki/Partition_de_disque_dur
- http://thestarman.pcministry.com/asm/mbr/index.html
- http://mh-nexus.de/en/downloads.php?product=HxD
- http://g.eckenschwiller.free.fr/Ordinateur/Systeme_fichiers/codes_partitions.php
- http://www.gecif.net/articles/linux/mbr.html
- http://msdn.microsoft.com/en-us/library/windows/hardware/gg463525.aspx
Merci bien pour toute l’aide sur ce tuto, je vais effectuer les manipulations dés ce soir pour mon Raspberry 512
Bonjour
Bon amusement…
Cette préparation de la carte est faite pour une install manuelle du système. Si vous utilisez Win32diskimager ou dd sous LINUX pas besoin de tout ça.
Cordialement
François
Un grand merci pour ce tuto… je viens d’en apprendre plus en dix minutes que durant la dizaine d’heures passées sur les forums !!! 😉
Bonjour Krystos
Merci pour ce retour
C’est toujours agréable de voir que les articles servent à quelqu’un !
Cordialement
François
Bonjour,
je voulais créer des partitions sur ma carte µsd, mais je ne la voit pas
sur partition wizard, est-ce parce que mon seul lecteur de carte est
mon téléphone (même en mode lecteur de disque) ou il pourrait y
avoir une autre solution? La carte étant bien visible sous windows je
me demande si je fais une fausse manip ou si je vais devoir trouver
un adaptateur pour la carte
bonjour
C’est possible, je n’ai pas essayé avec un téléphone. J’ai un lecteur de cartes « universel » trouvé pour quelques euros sur ebay qui fonctionne très bien.
Cordialement
François
Bjr zigzig69 enfait il faut directement brancher la carte sd avec un adaptateur USB c’est a dire une clé qui a un port microsd / tflash comme cela le pc ne détectera que la carte sd etc. Je pense que c’est votre probleme.
Aurevoir 🙂
Bonjour,
Merci pour ce tuto qui me donne une piste pour mon problème.
Je viens de transformer un RPi en appareil photo couplé à un PIR (comme pour photographier les animaux sauvages en pleine nature).
Pour relever mes photo sur linux pas de problème mais mes utilisateurs (nongeek) travail sur windob 7.
Pour contrer le pb j’ai faire une troisième partition en FAT32 pour ce win… mais il ne la voit toujours pas il s’arrête à la partition boot et ne va pas chercher plus loin tout en me disant que ma carte SD et endommagée et propose naturellement de la casser.
Si quelqu’un a une idée plug&play pour nongeek je suis preneur.
Salutations,
Greg
Ps je cherche aussi a faire accepter linux à mes utilisateurs mais ça c’est un autre combat.
Je reviens sur un post de 2015, mais ça pourra aider d’autres personnes
Windows (au moins jusqu’au 7, j’ai pas vérifié sur les versions supérieures) ne voit jamais qu’une partitions sur une carte SD. Il voit bien toutes les partitions avec un disque dur externe en revanche…
Bonjour merci pour ce retour
effectivement, Windows 7 (les autres (8,9, 10, 11, 12 😉 aussi je vous rassure) ne voit que la partition FAT et ignore avec dédain la partition Linux qui est sur votre carte SD…
c’est un choix de Krosoft.
cordialement
François
Bonjour,
J’ai un Pi2 avec l’OS Raspbian et Je me demandais (je ne sais pas trop si c’est en rapport direct avec le sujet) si on pouvait accéder à la petite partition FAT32 (celle qui fait une soixantaine de Mo et que l’on voit lorsqu’on connecte la carte SD à un lecteur de cartes sous Windows) à partir de Linux ? L’idée étant de lire, à partir d’un programme compilé avec Lazarus et exécuté sous Linux après démarrage du Pi, quelques octets d’un fichier texte situé dans cette petite partition FAT32.
Cordialement
Jean-Marie
Bonjour Jean-Marie
on y accède depuis le RasPi dans /boot
c’est là que cette partition est montée
Sous Raspbian faites
cd /boot
ls -al
et vous m’en direz des nouvelles 🙂
j’utilise parfois cette méthode pour passer des infos depuis Raspbian sur la carte SD pour les relire sur une machine Windows (oui, je sais… j’ai honte !)
bonne fin d’année
cordialement
françois
Bonjour François
Bon début d’année à la framboise!
Super! c’est effectivement très simple, pas besoin de monter de volume, etc..
Merci beaucoup
Quant à Windows… vous avez raison, prenons le meilleur de chaque monde, pas d’ostracisme…
Jean-Marie
merci
bon amusement avec la framboise!
Bonsoir,
Après avoir formaté ma carte micro SD en deux partitions primaires en format fat32 et ext4, je souhaite supprimer ces deux partitions mais cela m’est impossible malgrès moults éssais : MiniTool partition wizard accepte bien de les supprimer, lance la procédure, termine cette dernière, m’indique que cela s’est produit avec succès, mais aussi tôt les partitions d’origines reviennent, c’est à s’arracher les cheveux! J’espère donc que vous m’éviterez une calvitie précoce en m’aidant à résoudre ce problème, cordialement.
Bonjour Jean
la solution radicale est SDFromatter https://www.sdcard.org/downloads/formatter_4/
vous retrouverez votre carte SD comme à la sortie du blister 🙂
cordialement
François
Il se trouve que j’ai déjà essayé cette solution, mais le logiciel ne reconnait pas ma carte ( peut-être du au format de celle ci?) , je commence à me demander si ce n’est pas dû au faite que je l’insert via son adaptateur au port carte SD de mon ordinateur portable, mais sans grande conviction.
Bonjour Jean
SDFormatter ne s’occupe pas de ce qu’il y a sur la carte, partitions ou données. J’ai déjà reformaté des tournées de cartes SD sans problème
Effectivement l’adaptateur pourrait être en cause
vous n’avez pas la possibilité de formater la carte micro SD en direct ? quelqu un pourrait vous prêter un lecteur de cartes multiformats?
cordialement
François
Bonsoir,
SDFormatter détecte enfin ma carte SD ( une fois sur 5 hélas), quand c’est le cas ce dernier m’indique qu’il y a une protection en écriture. J’ai bien sur vérifié que le bouton « lock » de adaptateur n’était pas actionné, toujours ce message m’indiquant cette protection en écriture. J’ai essayé depuis moult méthode de formatage (depuis l’utilitaire de formatage windows, depuis le gestionnaire de disque windows, depuis mon appareil photo, depuis mon portable) et je me retrouve toujours dans l’impossibilité de formater cette fdfg@ffd de carte SD.. Je commence à prendre de plus en plus au sérieux la théorie du complot des cartes SD visant à rendre fou leurs utilisateurs afin de dominer le monde.
Cordialement
Bonjour.
Quand il la voit et que vous allez dans propriété de la carte, « lecture seule » n’est pas coché à tout hasard ? C’est ce qui me viens à l’esprit, là tout de suite.
Dimos~
Superbe présentation…
J’ai « traité » une carte µSD suivant vos recommandations. Cette opératiion s’est déroukée avec succés.
Cette carte est installée sur un portable Huawei, je souhaitais transférer les applis en mémoire de l’appareil sur la partition 2 de la carte µSD, avec l’appli « LINK2SD+ ».
Celle-ci ne reconnait pas la partition 2.
Sauriez vous pourquoi?
Merci de votre réponse.
Cordialement
Gé
Bonjour Gé
bin… j’en sais rien ! La carte décrite ici est spécifiquement préparée pour le Raspberry Pi…
le huawei je ne le connais pas du tout et il est sans doute sous Android… Après qu’il lise les partitions ext4 ou pas… ? je ne sais pas non plus 🙂
Tout dépend comment est paramétré le système… Si ça trouve il ne reconnait qu’une partition FAT…
Désolé de ne pas pouvoir en dire plus
cordialement
François
Bonjour,
J’ai suivi la technique avec MiniTool afin de partitionner ma carte SD de 64 GB (oui j’ai pris large) pour mon portable (Samsung Galaxy Grand Prime).
Tout s’est bien déroulé sauf que lorsque je rallume mon portable avec la carte SD remise, il me dit toujours peu de mémoire comme si ma partition Ext4 n’existe pas, seulement ma partition FAT32. Ou alors est ce un autre problème ?
Que faire ? N’étant pas un pro de l’informatique je rame un peu..
Bonjour Antoine
voir la réponse au commentaire ci-dessus 🙂
La préparation de carte SD est décrite pour le Raspberry Pi. Je ne sais pas si les portables lisent autre chose que des partitions FAT, ni même s’ils acceptent 2 partitions…
pourquoi ne pas laisser simplement une seule partition et faire des répertoires?
cordialement
François
Bonjour François,
Merci pour cette rapide réponse 🙂
Oui je pense que c’est la meilleure solution mais comment créer des répertoires maintenant ^^ ?
Je ne suis vraiment pas calé en informatique comme je l’ai déjà dit.
Antoine.
si c’est sur le portable il faut passer par un explorateur ou un gestionnaire de fichiers
sous windows double clic sur la carteSD puis clic droit dans la fenetre > nouveau > dossier
bon courage 🙂
Ah oui d’accord tout simplement en fait ^^
Je vais tenter cette solution mais ma mémoire interne reste toujours saturée quoi que je fasse, même avec une carte SD, je crois que j’ai trouvé la (grande) faille de ce portable hélas…
Merci néanmoins de tes conseils 🙂
Ping : RaspberryPie | Pearltrees
Siper tuto, j’ai eu (avant) beaucoup de deboires en voulant agrandir ma partition fat de mon raspberry pour une appli pour laquelle la carte sd passe du pi a un zindozs?