Première rédaction de cet article le 3 juin 2009
Quand on installe NetBSD, le programme d'installation s'occupe en général des détails comme le partitionnement et le formatage du disque et on a juste à suivre les indications d'un menu. Mais si on veut ajouter un disque ensuite ? C'est bien documenté. Et si ce disque est pour un autre système, par exemple Linux, parce qu'on veut héberger des machines virtuelles Xen ou bien simplement partager un disque entre deux systèmes d'exploitation qui alternent ? Alors, on trouve moins de documentation et voici donc quelques notes qui peuvent aider.
Sur un PC, le partitionnement est fait avec fdisk. Mais fdisk ne gère que les partitions dites « MBR », celles du monde PC. NetBSD (qui ne tourne pas que sur PC, bien au contraire), se fie, lui, aux disklabels, les tables qu'il a mises sur le disque. Une partition « PC » peut contenir une ou plusieurs partitions NetBSD. Avec fdisk, on découpe donc le disque du PC, c'est un découpage standard que n'importe quel système d'exploitation de PC va reconnaître. Puis, on utilise disklabel pour créer d'autres partitions dans ces partitions, ou bien simplement pour faire enregistrer les partitions de manière à ce que NetBSD les voit. Donc, pour résumer, fdisk s'occupe des partitions PC et disklabel des partitions NetBSD.
Pour fdisk, la méthode que je trouve le plus simple est la méthode
interactive avec l'option -u
. On donne le nom de
partition qu'on veut éditer (de 1 à 4 pour les quatre partitions
primaires et en partant de E0 pour les partitions étendues) et sa
taille.
Ensuite, on utilise disklabel. La méthode que je préfère est
l'édition avec l'option -e
qui lance un éditeur. On indique les
partitions NetBSD identifiées par une lettre (ici, de i à l pour mes
partitions étendues), le type (disklabel -l
pour
afficher les types possibles) et les points de départ et taille des
partitions (si on fait une partition NetBSD de chaque partition MBR,
il suffit de recopier les valeurs qu'affiche fdisk).
Après le partitionnement, le disque vu avec fdisk wd0
:
Partition table: 0: NetBSD (sysid 169) start 63, size 24386607 (11908 MB, Cyls 0-1517), Active 1: Ext. partition - LBA (sysid 15) start 24386670, size 15745833 (7688 MB, Cyls 1518-2498/33/54) 2: <UNUSED> 3: <UNUSED> Extended partition table: E0: Linux native (sysid 131) start 24386733, size 7164927 (3498 MB, Cyls 1518-1963) PBR is not bootable: All bytes are identical (0x00) E1: Linux swap or Prime or Solaris (sysid 130) start 31551723, size 530082 (259 MB, Cyls 1964-1996) PBR is not bootable: Bad magic number (0x666f) E2: Linux native (sysid 131) start 32081868, size 7164927 (3498 MB, Cyls 1997-2442) PBR is not bootable: All bytes are identical (0x00) E3: Linux swap or Prime or Solaris (sysid 130) start 39246858, size 885645 (432 MB, Cyls 2443-2498/33/54) PBR is not bootable: All bytes are identical (0x00)
Et le même, vu avec disklabel wd0
après l'édition
du disklabel (disklabel -e
lance un éditeur avec un contenu qui est très proche de celui-ci) :
16 partitions: # size offset fstype [fsize bsize cpg/sgs] a: 1043280 63 4.2BSD 1024 8192 0 # (Cyl. 0*- 1035*) b: 639072 1043343 swap # (Cyl. 1035*- 1669*) c: 24386607 63 unused 0 0 # (Cyl. 0*- 24193*) d: 40132503 0 unused 0 0 # (Cyl. 0 - 39813*) e: 6144768 1682415 4.2BSD 2048 16384 0 # (Cyl. 1669*- 7765*) f: 2458512 7827183 4.2BSD 2048 16384 0 # (Cyl. 7765*- 10204*) g: 13893138 10285695 4.2BSD 2048 16384 0 # (Cyl. 10204*- 23986*) i: 7164927 24386733 Linux Ext2 0 0 # (Cyl. 24193*- 31301*) j: 530082 31551723 swap # (Cyl. 31301*- 31827*) k: 7164927 32081868 Linux Ext2 0 0 # (Cyl. 31827*- 38935*) l: 885645 39246858 swap # (Cyl. 38935*- 39813*)
Et je peux formater ces partitions Linux avec mke2fs
(attention, pour que NetBSD puisse les monter, il faut apparemment
augmenter la taille des
inodes, par exemple avec mke2fs -I 128 /dev/wd0i
), les
monter avec mount, etc.
Voici à quoi ressemble le partitionnement avec fdisk
-u
. Ici, on va créer la quatrième partition, E3, en
indiquant son type (130 = Linux, fdisk -l
pour
avoir la liste), le bloc où elle démarre, et sa taille (ici, on prend
les valeurs par défaut) :
1: Ext. partition - LBA (sysid 15) start 24386670, size 15745833 (7688 MB, Cyls 1518-2498/33/54) 2: <UNUSED> 3: <UNUSED> Extended partition table: E0: Linux native (sysid 131) start 24386733, size 7164927 (3498 MB, Cyls 1518-1963) PBR is not bootable: All bytes are identical (0x00) E1: Linux swap or Prime or Solaris (sysid 130) start 31551723, size 530082 (259 MB, Cyls 1964-1996) PBR is not bootable: Bad magic number (0x666f) E2: Linux native (sysid 131) start 32081868, size 7164927 (3498 MB, Cyls 1997-2442) PBR is not bootable: Bad magic number (0x8fe6) First active partition: 0 Drive serial number: 1054424792 (0x3ed93ed8) Which partition do you want to change?: [none] E3 sysid: [0..255 default: 169] 130 start: [1518..2498cyl default: 39246858, 2443cyl, 19164MB] size: [0..55cyl default: 885645, 55cyl, 432MB] bootmenu: []
Question documentation, on peut noter que la documentation de NetBSD sur Cobalt, quoique touchant à un système différent est, en pratique, très bien faite.
Tous mes remerciements à Thierry Laronde pour m'avoir guidé dans cette tâche.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)