Prenons le cas de limbo.franciliens.net l'un de nos deux serveurs sur lequel un disque de 1 To a été rajouté récemment.
Etape simple, mais quand même indispensable :
$ dmesg | grep -i ^wd wd0 at pciide0 channel 0 drive 0: <SAMSUNG HD322GJ> wd0: 16-sector PIO, LBA48, 305245MB, 625142448 sectors wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 6 wd1 at pciide0 channel 1 drive 0: <WDC WD10EALX-009BA0> wd1: 16-sector PIO, LBA48, 953869MB, 1953525168 sectors wd1(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 6
Dans l'exemple ci-dessus, le disque wd0
est le disque système de la machine (environ 300Go reconnu par le système) tandis que le disque wd1
est le nouveau disque, d'une taille de 953Go. C'est ce deuxième disque que nous allons donc configurer.
(Ce qui suit s'applique également aux BSD autres qu'Open : FreeBSD?, NetBSD?, etc... utilisent le même système)
La principale différence entre OpenBSD? et un système de type Linux est que Linux n'a qu'un "niveau" de partitionnement, tandis qu'OpenBSD? en offre deux : les partitions proprement dites et les "slices".
Sans rentrer dans les détails, disons que les slices ne sont que des sous-partitions.
Une particularité d'OpenBSD? est que ces slices sont (pour des disques "classiques") numérotées avec des lettres et le disque lui-même avec des chiffres, en commencant par 0
. Le disque wd1
, présenté ci-dessus est donc le deuxième disque du système, le premier étant wd0
. Le premier slice (ou sous-partition) sera donc: wd1a
, alors qu'un système Linux l'indiquerait comme : hda1
(disque a, partition 1).
L'autre particularité est que, sur un disque système, OpenBSD? impose que le slice a
soit la sous-partition racine (/
) du disque, le slice b
soit la sous-partition de swap/mémoire virtuelle et le slice c
, pour des raisons historiques, représente toujours la totalité du disque. Un disque comporte donc toujours au moins une partition et un slice, le slice c
, que l'on ne peut pas effacer.
Si cela vous paraît un peu compliqué pour le moment, ce sera probablement plus clair à la fin de ce tutoriel !
Ces détails étant expliqués, nous allons donc, dans l'ordre : créer une partition OpenBSD? sur le disque, puis créer un "slice" dans cette partition, formater le système de fichiers et, enfin, monter cet espace disque sur notre système.
Pour créer une partition sous OpenBSD?, il faut utiliser le programme fdisk
et son mode interactif (bien qu'il soit possible de l'utiliser de manière non-interactive, cela dépasse le cadre de ce petit tutoriel).
Pour cela, utilisez la commande suivante en tant que root
:
# fdisk -e wd1 fdisk: 1>
L'option -e
indique évidemment qu'il faut que fdisk
fonctionne dans le mode "editeur" interactif. Sous ce mode, il suffit de taper ?
pour afficher la liste des commandes ou help
pour afficher la man page :
fdisk: 1> ? help Command help list manual Show entire OpenBSD man page for fdisk reinit Re-initialize loaded MBR (to defaults) setpid Set the identifier of a given table entry disk Edit current drive stats edit Edit given table entry flag Flag given table entry as bootable update Update machine code in loaded MBR select Select extended partition table entry MBR swap Swap two partition entries print Print loaded MBR partition table write Write loaded MBR to disk exit Exit edit of current MBR, without saving changes quit Quit edit of current MBR, saving current changes abort Abort program without saving current changes
Affichons maintenant la liste des partitions avec la commande print
:
fdisk: 1> print Disk: wd1 geometry: 121601/255/63 [1953525168 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------------- *0: EE 0 0 2 - 121601 80 63 [ 1: 1953525167 ] EFI GPT 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Nous voyons ci-dessus 4 partitions, ce qui est standard pour un disque de ce type. Elles correspondent aux partitions primaires.
Etant donné que la totalité de wd1
sera utilisée par notre système OpenBSD?, nous allons simplement modifier la première partition (la n°0) pour en faire une partition allouée au système. Pour cela, toujours sur l'utilitaire fdisk
, il est nécessaire d'utiliser la commande interactive edit
, comme suit :
fdisk: 1> edit 0 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------------- *0: EE 0 0 2 - 121601 80 63 [ 1: 1953525167 ] EFI GPT Partition id ('0' to disable) [0 - FF]: [EE] (? for help) ? Choose from the following Partition id values: 00 unused 20 Willowsoft 66 NetWare 386 A9 NetBSD 01 DOS FAT-12 24 NEC DOS 67 Novell AB MacOS X boot 02 XENIX / 27 Win Recovery 68 Novell AF MacOS X HFS+ 03 XENIX /usr 38 Theos 69 Novell B7 BSDI filesy* 04 DOS FAT-16 39 Plan 9 70 DiskSecure B8 BSDI swap 05 Extended DOS 40 VENIX 286 75 PCIX BF Solaris 06 DOS > 32MB 41 Lin/Minux DR 80 Minix (old) C0 CTOS 07 NTFS 42 LinuxSwap DR 81 Minix (new) C1 DRDOSs FAT12 08 AIX fs 43 Linux DR 82 Linux swap C4 DRDOSs < 32M 09 AIX/Coherent 4D QNX 4.2 Pri 83 Linux files* C6 DRDOSs >=32M 0A OS/2 Bootmgr 4E QNX 4.2 Sec 84 OS/2 hidden C7 HPFS Disbled 0B Win95 FAT-32 4F QNX 4.2 Ter 85 Linux ext. DB CPM/C.DOS/C* 0C Win95 FAT32L 50 DM 86 NT FAT VS DE Dell Maint 0E DOS FAT-16 51 DM 87 NTFS VS E1 SpeedStor 0F Extended LBA 52 CP/M or SysV 8E Linux LVM E3 SpeedStor 10 OPUS 53 DM 93 Amoeba FS E4 SpeedStor 11 OS/2 hidden 54 Ontrack 94 Amoeba BBT EB BeOS/i386 12 Compaq Diag. 55 EZ-Drive 99 Mylex EE EFI GPT 14 OS/2 hidden 56 Golden Bow 9F BSDI EF EFI Sys 16 OS/2 hidden 5C Priam A0 NotebookSave F1 SpeedStor 17 OS/2 hidden 61 SpeedStor A5 FreeBSD F2 DOS 3.3+ Sec 18 AST swap 63 ISC, HURD, * A6 OpenBSD F4 SpeedStor 19 Willowtech 64 NetWare 2.xx A7 NEXTSTEP FF Xenix BBT 1C ThinkPad Rec 65 NetWare 3.xx A8 MacOS X Partition id ('0' to disable) [0 - FF]: [EE] (? for help) A6 Do you wish to edit in CHS mode? [n] Partition offset: [1] Partition size: [1953525167]
On voit ci-dessus qu'on ne touche pas à la configuration du disque, en prenant les valeurs par défaut de chaque question, si ce n'est pour affecter la valeur A6
(OpenBSD?) à la partition du disque wd1
.
On vérifie le résultat de l'opération en affichant de nouveau la configuration du disque :
fdisk:*1> print Disk: wd1 geometry: 121601/255/63 [1953525168 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------------- *0: A6 0 0 2 - 121601 80 63 [ 1: 1953525167 ] OpenBSD 1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused 3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
On peut voir ci-dessus que la partition 0
est désormais configurée comme partition OpenBSD?.
On écrit ensuite la configuration sur le disque lui-même, avec :
fdisk:*1> quit Writing MBR at offset 0.
La commande fdisk
nous confirme que la configuration est écrite en MBR (Master Boot Record), ce qui la rend permanente. La partition étant maintenant configurée, passons au slice...
Pour configurer les slices d'une partition, il faut utiliser la commande disklabel
. Cette commande est beaucoup plus spartiate que la commande fdisk
et n'accepte que des lettres, au lieu de commandes entières.
De la même manière que pour fdisk
, nous allons utiliser disklabel
en mode interactif, avec l'option -E
et afficher les commandes disponibles en tapant ?
à l'invite :
# disklabel -E wd1 Label editor (enter '?' for help at any prompt) > ? Available commands: ? | h - show help n [part] - set mount point A - auto partition all space p [unit] - print partitions a [part] - add partition q - quit & save changes b - set OpenBSD boundaries R [part] - resize auto allocated partition c [part] - change partition size r - display free space D - reset label to default s [path] - save label to file d [part] - delete partition U - undo all changes e - edit drive parameters u - undo last change g [d|u] - [d]isk or [u]ser geometry w - write label to disk i - modify disklabel UID X - toggle expert mode l [unit] - print disk label header x - exit & lose changes M - disklabel(8) man page z - delete all partitions m [part] - modify partition Suffixes can be used to indicate units other than sectors: 'b' (bytes), 'k' (kilobytes), 'm' (megabytes), 'g' (gigabytes) 't' (terabytes) 'c' (cylinders), '%' (% of total disk), '&' (% of free space). Values in non-sector units are truncated to the nearest cylinder boundary.
Commençons par lister les slices déjà présents dans la partition avec la commande p
(print) :
> p OpenBSD area: 1-1953525168; size: 1953525167; free: 1953525167 # size offset fstype [fsize bsize cpg] c: 1953525168 0 unused
Nous retrouvons bien notre slice c
, qui, comme indiqué ci-dessus, revient en fait à l'intégralité de la partition.
Nous allons maintenant créer un slice a
de 250Go environ avec la commande a
(add/ajouter) suivie de la lettre identifiant le slice :
> a a offset: [1] size: [1953525167] 255G Rounding size to cylinder (16065 sectors): 534787784 FS type: [4.2BSD] Rounding size to bsize (64 sectors): 534787775
Merci de noter que, ci-dessus, les valeurs par défaut ont été systématiquement acceptée en appuyant sur la touche Entrée, à l'exception de la taille (255G
). La commande disklabel
accepte en effet les valeurs suivies de lettres (K, M, G) pour indiquer la taille totale d'un slice.
Affichons maintenant le résultat de notre ajout avec la commande p
(print/imprimer):
> p OpenBSD area: 1-1953525168; size: 1953525167; free: 1418737392 # size offset fstype [fsize bsize cpg] a: 534787775 1 4.2BSD 4096 32768 1 c: 1953525168 0 unused
On retrouve bien ci-dessus deux slices : a
, que nous allons pouvoir maintenant utiliser et c
, que nous ne modifierons pas.
Ecrivons cette configuration sur le disque, avec w
(write/écriture) et quittons disklabel
avec x
:
> w > x
Notre slice est maintenant prêt à l'utilisation...
Pour créer le système de fichiers, il faut utiliser la commande newfs
en lui indiquant le disque et le slice concerné, ainsi que le type de système de fichiers à utiliser.
Ce qui donne :
# newfs -t ffs wd1a /dev/rwd1a: 261126.8MB in 534787768 sectors of 512 bytes 321 cylinder groups of 814.44MB, 26062 blocks, 52224 inodes each super-block backups (for fsck -b #) at: 64, 1668032, 3336000, 5003968, 6671936, 8339904, 10007872, 11675840, 13343808, 15011776, 16679744, 18347712, 20015680, 21683648, 23351616, 25019584, 26687552, 28355520, 30023488, 31691456, ... etc ...
On notera ci-dessus que le système de fichiers est le FFS (Fast File System), qui est le standard BSD, ainsi que la cible de la commande, qui est bien wd1a
. Après quelques petites minutes de travail, le système de fichiers est prêt.
Commençons par créer le répertoire sur lequel le système de fichiers sera monté :
# mkdir /backup # ls -alhF / total 83580 drwxr-xr-x 16 root wheel 512B Nov 28 22:59 ./ drwxr-xr-x 16 root wheel 512B Nov 28 22:59 ../ -rw-r--r-- 1 root wheel 578B Mar 2 2011 .cshrc -rw-r--r-- 1 root wheel 468B Mar 2 2011 .profile drwxr-xr-x 2 root wheel 512B Aug 1 17:45 altroot/ drwxr-xr-x 2 root wheel 512B Nov 28 22:58 backup/ drwxr-xr-x 2 root wheel 1.0K Aug 1 17:48 bin/ -rw-r--r-- 1 root wheel 46.2K Aug 30 2011 boot -rw-r--r-- 1 root wheel 8.6M Nov 25 17:16 bsd ... etc ...
Nous pouvons ensuite monter directement le système de fichiers (disque/slice) dans ce répertoire :
# mount -v -t ffs /dev/wd1a /backup /dev/wd1a on /backup type ffs (rw, local, ctime=Wed Nov 28 22:59:21 2012)
Et vérifier ensuite qu'il apparaît bien dans la liste des systèmes de fichiers :
# df -h Filesystem Size Used Avail Capacity Mounted on /dev/wd0a 7.9G 65.9M 7.4G 1% / /dev/wd0i 15.7G 1.0G 14.0G 7% /home /dev/wd0f 7.9G 8.0M 7.5G 0% /tmp /dev/wd0d 7.9G 1.2G 6.2G 17% /usr /dev/wd0h 15.7G 1.8G 13.1G 12% /usr/local /dev/wd0j 7.9G 531M 7.0G 7% /usr/ports /dev/wd0g 7.9G 821M 6.7G 11% /usr/src /dev/wd0e 7.9G 783M 6.7G 10% /var /dev/wd0k 29.5G 10.4G 17.7G 37% /usr/local/news /dev/wd0l 171G 4.0K 162G 0% /data /dev/wd1a 253G 4.0K 240G 0% /backup
Il faut ensuite modifier le fichier de configuration /etc/fstab
comme suit, afin de rendre cette configuration permanente :
# cat /etc/fstab /dev/wd0a / ffs rw,softdep 1 1 /dev/wd0i /home ffs rw,softdep,nodev,nosuid 1 2 /dev/wd0f /tmp ffs rw,softdep,nodev,nosuid 1 2 /dev/wd0d /usr ffs rw,softdep,nodev 1 2 /dev/wd0h /usr/local ffs rw,softdep,nodev 1 2 /dev/wd0j /usr/ports ffs rw,softdep,nodev,nosuid 1 2 /dev/wd0g /usr/src ffs rw,softdep,nodev,nosuid 1 2 /dev/wd0e /var ffs rw,softdep,nodev,nosuid 1 2 /dev/wd0k /usr/local/news ffs rw,softdep,nodev 1 2 /dev/wd0l /data ffs rw,softdep,nodev,nosuid 1 2 /dev/wd1a /backup ffs rw,softdep,nodev,nosuid 1 2
Dans l'exemple ci-dessus, nous activons l'option softdep
de FFS, ce qui nous permet de bénéficier de la journalisation des opérations disque, et, donc, de meilleurs temps d'accès.
Une fois le fichier /etc/fstab
modifié, il suffit de démonter et de remonter le système de fichiers (/backup
, dans l'exemple ci-dessus) pour que la configuration soit terminée et rendue permanente.
La documentation d'OpenBSD? étant excellente, il ne faut jamais hésiter à s'y reporter :