La version originale en anglais de ce document a été écrite par Ethan
Benson, et se trouve à <http://penguinppc.org/projects/yaboot/doc/mac-fdisk-basics.shtml>.
Veuillez adresser tout commentaire ou question sur le contenu de ce document
à Ethan Benson.
La traduction française a été réalisée par Etienne Herlent dans la nuit du
28 au 29 juillet 2001, avec l'aimable autorisation d'Ethan Benson.
Veuillez adresser tout commentaire portant sur la traduction à Etienne Herlent.
Ce document explique de manière basique et pas à pas comment créer des partitions avec mac-fdisk.
Si vous avez l'intention de partager le disque avec MacOS, vous devrez d'abord créer les partitions MacOS avec Outil Disque Dur. Lors de la création des partitions pour MacOS, vous devrez créer avec Outil Disque Dur une partition HFS suffisamment grande pour accueillir TOUTES les partitions que vous utiliserez avec GNU/Linux. Par exemple, si vous avez prévu 4 partitions d'un Go, vous crérez une seule partition de 4 Go. Vous détruirez cette partition avec mac-fdisk et vous crérez à sa place les partitions pour Linux. Cette partition MacOS doit être la dernière du disque.
Pour les sytèmes Newworld, vous devez avoir une partition de 800 Ko de type Apple_Bootstrap avant la première partition MacOS.
N'ESSAYEZ PAS de créer les partitions Linux avec Outil Disque Dur d'Apple !
Si vous n'avez pas l'intention de garder MacOS mais d'avoir un système et un disque uniquement pour GNU/Linux, vous devrez utiliser la commande 'i' de mac-fdisk pour supprimer la table des partitions et en créer une nouvelle qui sera vide.
De temps en temps mac-fdisk ne calcule pas correctement le nombre de blocs du disque. Quand vous utilisez la commande 'i', mac-fdisk vous proposera le nombre de blocs du disque. Assurez vous que ce nombre est correct avant de le valider.
NOTE : la version de mac-fdisk de la distribution Debian woody a été corrigée et ne présente plus ce problème. Si vous utilisez la version de mac-fdisk des disques de démarrage de la Debian woody, vous n'aurez pas besoin de trouver vous même le nombre de blocs comme décrit plus haut.
Méthode à utiliser pour déterminer le nombre de blocs du disque :
(vous pouvez passer ce paragraphe si vous utilisez mac-fdisk de la Debian
woody)
# cat /proc/partitions
repérez le périphérique que vous partitionnez, par exemple `hda' vous devriez voir quelque chose comme ceci:
... 3 0 20044080 hda ...
Notez le nombre précédent hda et multipliez le par 2, dans cet exemple vous allez obtenir 40088160 qui est le nombre de blocs de 512 octets. C'est ce nombre que mac-fdisk doit vous donner par défaut quand vous utilisez la commande 'i', si ce n'est pas le cas, entrez cette valeur vous-mêmes.
Si vous partagez le disque avec MacOS, vous devez avoir déjà créé 2 partitions HFS, la première servant à réserver de l'espace pour les partitions Linux, et la deuxième étant pour MacOS.
Note : si vous voulez installer MacOS X, vous devez utiliser Outil Disque Dur pour créer une 3e partition de type Apple_UFS, ou MacOS X. L'installateur de MacOS X utilise cette partition comme un emplacement qu'il détruira pour créer 2 partitions de boot et ensuite il recréra la partition Apple_UFS. Il est important de ne pas créer la partition Apple_UFS avant l'emplacement pour GNU/Linux car sinon la partition d'amorce de MacOS X sera avant celle de Linux.
Il n'est pas recommandé d'utiliser des partitions HFS+ pour MacOS X, car Mac OS la rendra non bootable. GNU/Linux sait lire les partitions HFS, alors qu'il ne sait pas gérer les partitions HFS+..
Tout d'abord, vous devez trouver et détruire l'emplacement que vous avez réservé pour GNU/Linux: quand vous lancez mac-fdisk vous aurez le message suivant:
Command (? for help):
la première commande à passer est la commande `p':
Command (? for help): p /dev/sdb # type name length base ( size ) system /dev/sdb1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sdb2 Apple_Driver43 Macintosh 54 @ 64 ( 27.0k) Driver 4.3 /dev/sdb3 Apple_Driver43 Macintosh 74 @ 118 ( 37.0k) Driver 4.3 /dev/sdb4 Apple_Driver_IOKit Macintosh 512 @ 192 (256.0k) Unknown /dev/sdb5 Apple_Patches Patch Partition 512 @ 704 (256.0k) Unknown /dev/sdb6 Apple_HFS untitled 194557 @ 1216 ( 95.0M) HFS /dev/sdb7 Apple_HFS untitled 2 333025 @ 195773 (162.6M) HFS /dev/sdb8 Apple_Free Extra 10 @ 528798 ( 5.0k) Free space Block size=512, Number of Blocks=528807 DeviceType=0x0, DeviceId=0x0 Drivers- 1: @ 64 for 22, type=0x1 2: @ 118 for 36, type=0xffff
Dans cet exemple, la partition réservée pour Linux est la partition de 95 Mo (c'est absurde, mais c'est seulement pour la démonstration).
Notez que les partitions 2 à 5 sont les partitions spéciales de MacOS,
elles ne sont nécessaires que si vous conservez MacOS et sont complétement
inutiles si vous supprimez MacOS (NDT : si vous réservez entièrement votre
disque à Linux, vous pouvez également supprimer ces partitions. Je n'ai aucun
problème sur mon G3/MacOS 8.6 avec des disques SCSI alors que mon 6500/MacOS
8.0 râle à chaque démarrage sous MacOS en disant que le disque IDE n'est pas
au format Macintosh).
Il est recommandé de retirer toutes ces partitions de driver si vous n'avez
pas l'intention de garder MacOS. Faites-le avec la commande 'i'.
Pour détruire la partition réservée à Linux, nous utiliserons la commande `d' et préciserons la numéro de cette partition, à savoir 6:
Command (? for help): d Partition number: 6 Command (? for help): p /dev/sdb # type name length base ( size ) system /dev/sdb1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sdb2 Apple_Driver43 Macintosh 54 @ 64 ( 27.0k) Driver 4.3 /dev/sdb3 Apple_Driver43 Macintosh 74 @ 118 ( 37.0k) Driver 4.3 /dev/sdb4 Apple_Driver_IOKit Macintosh 512 @ 192 (256.0k) Unknown /dev/sdb5 @ 704 (256.0k) Unknown /dev/sdb6 Apple_Free Extra 194557 @ 1216 ( 95.0M) Free space /dev/sdb7 Apple_HFS untitled 2 333025 @ 195773 (162.6M) HFS /dev/sdb8 Apple_Free Extra 10 @ 528798 ( 5.0k) Free space
Comme vous pouvez le constater, il y a maintenant un espace libre.
Créer la partition de démarrage (NDT : bootstrap en anglais): si vous utilisez mac-fdisk de la Debian woody, vous pouvez créer la partition au moyen de la commande 'b' qui la créera autotiquement avec la taille et le type corrects:
Command (? for help): b First block: 6P Command (? for help): p /dev/sdb # type name length base ( size ) system /dev/sdb1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sdb2 Apple_Driver43 Macintosh 54 @ 64 ( 27.0k) Driver 4.3 /dev/sdb3 Apple_Driver43 Macintosh 74 @ 118 ( 37.0k) Driver 4.3 /dev/sdb4 Apple_Driver_IOKit Macintosh 512 @ 192 (256.0k) Unknown /dev/sdb5 04 (256.0k) Unknown /dev/sdb6 Apple_Bootstrap bootstrap 1600 @ 1216 (800.0k) Unknown /dev/sdb7 Apple_Free Extra 192957 @ 2816 ( 94.2M) Free space /dev/sdb8 Apple_HFS untitled 2 333025 @ 195773 (162.6M) HFS /dev/sdb9 Apple_Free Extra 10 @ 528798 ( 5.0k) Free space
Sinon, vous devrez le faire à la main, notez que la commande 'C' n'est pas la même que la commande 'c':
Command (? for help): C First block: 6P Length in blocks: 800K Name of partition: bootstrap Type of partition: Apple_Bootstrap Command (? for help): p /dev/sdb # type name length base ( size ) system /dev/sdb1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sdb2 Apple_Driver43 Macintosh 54 @ 64 ( 27.0k) Driver 4.3 /dev/sdb3 Apple_Driver43 Macintosh 74 @ 118 ( 37.0k) Driver 4.3 /dev/sdb4 Apple_Driver_IOKit Macintosh 512 @ 192 (256.0k) Unknown /dev/sdb5 Apple_Patches Patch Partition 512 @ 704 (256.0k) Unknown /dev/sdb6 Apple_Bootstrap bootstrap 1600 @ 1216 (800.0k) Unknown /dev/sdb7 Apple_Free Extra 192957 @ 2816 ( 94.2M) Free space /dev/sdb8 Apple_HFS untitled 2 333025 @ 195773 (162.6M) HFS /dev/sdb9 Apple_Free Extra 10 @ 528798 ( 5.0k) Free space
Pour `First block:' nous avons utilisé la première partition de type Apple_Free, soit la partition 6. Vous pouvez utiliser la syntaxe `6P' pour éviter d'avoir à calculer l'offset de bloc vous-mêmes. Notez aussi que la partition Apple_Free porte maintenant le numéro 7 et est plus petite de 1600 blocs, ceci se produira à chaque fois que vous crérez de nouvelles partitions dans cet espace jusqu'à ce qu'il n'y ait plus d'espace libre et que cette partition Apple_Free n'existera tout simplement plus. Maintenant, créez les autres partitions pour GNU/Linux. L'exemple suivant n'en crée qu'une.
Command (? for help): c First block: 7P Length in blocks: 7P Name of partition: / Command (? for help): p /dev/sdb # type name length base ( size ) system /dev/sdb1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sdb2 Apple_Driver43 Macintosh 54 @ 64 ( 27.0k) Driver 4.3 /dev/sdb3 Apple_Driver43 Macintosh 74 @ 118 ( 37.0k) Driver 4.3 /dev/sdb4 Apple_Driver_IOKit Macintosh 512 @ 192 (256.0k) Unknown /dev/sdb5 Apple_Patches Patch Partition 512 @ 704 (256.0k) Unknown /dev/sdb6 Apple_Bootstrap bootstrap 1600 @ 1216 (800.0k) Unknown /dev/sdb7 Apple_UNIX_SVR2 / 192957 @ 2816 ( 94.2M) Linux native /dev/sdb8 Apple_HFS untitled 2 333025 @ 195773 (162.6M) HFS /dev/sdb9 Apple_Free Extra 10 @ 528798 ( 5.0k) Free space
Dans cet exemple, nous avons utilisé la commande 'c' au lieu de 'C'. La
différence est que 'c' ne demande pas le type de partition dont nous avons eu
besoin pour la partition spéciale de démarrage Apple_Bootstrap.
Notez également que nous avons utilisé la syntaxe 7P pour la donnée `Length
of Blocks:' ce qui signifie "utiliser tout l'espace de la partition
Apple_Free sélectionnée". Pour d'autres partitions, nous devrions utiliser la
syntaxe xyzM pour le nombre de méga-octets comme nous avons utilisé plus tôt
800K pour la partition de 800 Ko de démarrage.
Le nom de la partition n'a pas d'importance sauf pour la partition de swap où il doit être 'swap'. Je trouve pratique d'utiliser le chemin de montage comme nom de partition (NDT : moi aussi).
Quand le partitionnement vous convient, passez la commande `w' pour enregistrer les changements:
Command (? for help): w Writing the map destroys what was there before. Is that okay? [n/y]: y The partition table has been altered! SCSI device sdb: hdwr sector= 512 bytes. Sectors= 528808 [258 MB] [0.3 GB] sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8 sdb9 SCSI device sdb: hdwr sector= 512 bytes. Sectors= 528808 [258 MB] [0.3 GB] sdb: sdb1 sdb2 sdb3 sdb4 sdb5 sdb6 sdb7 sdb8 sdb9 Command (? for help):now quit mac-fdisk with the `q' command:
Command (? for help): q
Si vous n'avez pas l'intention de garder MacOS vous pouvez effacer la table des partitions comme ceci:
Command (? for help): i map already exists do you want to reinit? [n/y]: y size of 'device' is 528808 blocks: new size of 'device' is 528808 blocks Command (? for help): p /dev/sda # type name length base ( size ) system /dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sda2 Apple_Free Extra 528744 @ 64 (258.2M) Free space Block size=512, Number of Blocks=528808 DeviceType=0x0, DeviceId=0x0 Command (? for help):
Note : si mac-fdisk's ne donne pas la bonne valeur pour la taille du périphérique, entrez la bonne valeur comme décrit plus haut.
Effacer la table des partitions présente l'avantage de se débarasser de toutes les partitions spéciales de MacOS qu'Outil Disque Dur a créé, ces partitions n'étant nécessaires que lorsque l'on partage le disque avec MacOS.
Créez vos partitions comme décrit dans l'exemple précédent.
---- CHANGER L'ORDRE DES PARTITIONS ----
MacOS X utilise les partitions Apple_UFS créées par Outil Disque Dur comme une réserve, il les détruit et crée à la place 2 partitions de démarrage puis recrée la partition Apple_UFS. Vous devez toujours créer la partition réservée pour GNU/Linux avant n'importe quelle partition pour MacOS ou MacOS X mais dans le cas où vous ne le fîtes pas, voici comment corriger le problème.
Changer l'ordre des partitions est utile si vous avez par hasard créé votre partition de démarrage après vos partitions MacOS, et qu'il est trop tard pour repartitionner.
La correction est heureusement bien simple. Quand vous avez booté en GNU/Linux, lancez mac-fdisk (connu aussi sous le nom de pdisk) et utilisez la commande 'p' pour afficher la table des partitions. Déterminez le nouveau numéro de votre partition de démarrage (NDT : partition bootstrap) puis utilisez la commande 'r' pour la placer là où elle doit être. Voici un exemple :
[root@socrates /root]# mac-fdisk /dev/sda Command (? for help): p /dev/sda # type name length base ( size ) system /dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sda2 Apple_Boot MacOSX_Bootstrap 16384 @ 64 ( 8.0M) Unknown /dev/sda3 Apple_Second MacOSX_Second_stage 2048 @ 16448 ( 1.0M) Unknown /dev/sda4 Apple_HFS MacOS9 102400 @ 18496 ( 50.0M) HFS /dev/sda5 Apple_UFS MacOSX 112640 @ 120896 ( 55.0M) Unknown /dev/sda6 Apple_Bootstrap bootstrap 1600 @ 233536 (800.0k) Unknown /dev/sda7 Apple_UNIX_SVR2 GNU/Linux 293672 @ 235136 (143.4M) Linux native Block size=512, Number of Blocks=528808 DeviceType=0x0, DeviceId=0x0 Command (? for help): r Partition number: 6 New number: 2 Command (? for help): p /dev/sda # type name length base ( size ) system /dev/sda1 Apple_partition_map Apple 63 @ 1 ( 31.5k) Partition map /dev/sda2 Apple_Bootstrap bootstrap 1600 @ 233536 (800.0k) Unknown /dev/sda3 Apple_Boot MacOSX_Bootstrap 16384 @ 64 ( 8.0M) Unknown /dev/sda4 Apple_Second MacOSX_Second_stage 2048 @ 16448 ( 1.0M) Unknown /dev/sda5 Apple_HFS MacOS9 102400 @ 18496 ( 50.0M) HFS /dev/sda6 Apple_UFS MacOSX 112640 @ 120896 ( 55.0M) Unknown /dev/sda7 Apple_UNIX_SVR2 GNU/Linux 293672 @ 235136 (143.4M) Linux native Block size=512, Number of Blocks=528808 DeviceType=0x0, DeviceId=0x0 Command (? for help): w Writing the map destroys what was there before. Is that okay? [n/y]: y The partition table has been altered! SCSI device sda: hdwr sector= 512 bytes. Sectors= 528808 [258 MB] [0.3 GB] sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7 SCSI device sda: hdwr sector= 512 bytes. Sectors= 528808 [258 MB] [0.3 GB] sda: sda1 sda2 sda3 sda4 sda5 sda6 sda7 Command (? for help): q [root@socrates /root]#
Cela doit corriger le problème. Vous devrez aussi corriger le fichier
/etc/fstab si vos partitions GNU/Linux ont bougé, mais ceci
n'est pas notre propos.
Dernière mise à jour le 29/7/01.
les fichiers en téléchargement sont à ftp://ftp.linux-france.org/pub/macintosh/