Guide d'utilisation de mac-fdisk.


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/

 

Retour à GNU Linux sur Macintosh