Les partoches fastoches ! Partitionnez la carte SD de votre Raspberry Pi sous Windows avec Minitool Partition Wizard

image_titre_boot_DD_minOn a toujours envie de savoir comment ça marche ! (pas vous ? ben qu’est-ce que vous faites là alors ? :lol: ). 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 !

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).

mbr_01

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. ptedit_01

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

.ptedit_02Si 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)

ptedit_03En cliquant sur la première partition (le 1 est en gras), vous lisez bien en bas de la fenêtre FAT32X.

ptedit_04

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 !

avertissement_pteditLa partition active

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.

types_de_partitions

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 !

avertissement_partition_wizard

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

sd_02

Faites un clic droit sur la carte SD, sélectionnez DELETE

sd_03

La carte devient unallocated (espace non alloué)

sd_04

Créer une partition principale FAT32

Clic droit sur la partie unallocated. Sélectionner create.

sd_05

Une fenêtre »Create New Partition » s’ouvre.

sd_06

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.

sd_07

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é)

sd_08

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…

sd_09Cliquez YES pour continuer.

sd_10Comme 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.

sd_11Il 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.

sd_12Partition 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.

sd_13Partition 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.

sd_14

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 :

6 réflexions au sujet de « Les partoches fastoches ! Partitionnez la carte SD de votre Raspberry Pi sous Windows avec Minitool Partition Wizard »

    1. admin

      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

      Répondre
  1. zigzig69

    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

    Répondre
    1. admin Auteur de l’article

      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

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


neuf − 1 =

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>