Ceci est une ancienne révision du document !
Table des matières
Dernière mise-à-jour : 2020/01/30 03:36
SO208 - Gestion des Disques et le Swap
Disques
La correspondance entre les entrées du répertoire /dev et /devices est gérée par la commande devfsadm qui est lancée au démarrage du système. Cette même commande lance le démon devfsadmd. Ce démon sert aux re-configurations dynamiques des périphériques :
# ls -l /dev/dsk/c0d0s0 lrwxrwxrwx 1 root root 50 janv 3 2010 /dev/dsk/c0d0s0 -> ../../devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:a # ls -l /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:a* brw-r----- 1 root sys 102, 0 août 12 11:47 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:a crw-r----- 1 root sys 102, 0 août 25 19:29 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:a,raw
Le format de chaque ligne dans /devices est pilote@adresse:arguments.
Mode bloc
L'accès aux périphériques en mode bloc se fait via des buffers vers le noyau. Un périphérique en mode bloc peut recevoir un filesystem.
Mode raw bloc
L'accès aux périphériques en mode raw bloc ne se fait pas via des buffers vers le noyau. Un périphérique en mode raw bloc ne peut pas recevoir un filesystem.
Disquettes
Dans un système Solaris, il existe plusieurs liens dynamiques pour le même périphérique. Par exemple le lecteur de disquette est référencé par 4 liens différents :
/dev/fd0 > /dev/fd0c > /dev/diskette0 > /dev/diskette
L'accès à une disquette en mode raw bloc se fait en utilisant le fichier /dev/rdiskette.
Autres Périphériques
Les noms des fichiers spéciaux pour les autres périphériques sont :
Fichier | Description |
---|---|
/dev/rmt/* | Bandes avec rembobinage |
/dev/rmt/*n | Bandes sans rembobinage |
/dev/cua/* | Modems |
/dev/term/* | Terminaux |
/dev/pts/* | Pseudo-terminaux |
/dev/mem | Mémoire physique |
/dev/kmem | Mémoire virtuelle du noyau |
/dev/mouse | Souris |
/dev/swap | Disque swap primaire |
/dev/null | La poubelle de Solaris |
/dev/zero | Périphérique qui renvoie en lecture un octet de 0 |
/dev/dump | Périphérique vers lequel sont envoyés les dumps |
Détection automatique
Afin de procéder à une re-détection automatique des périphériques dans le système, il convient de créer le fichier /reconfigure et de redémarrer le système. Le fichier est supprimé en même temps que la reconfiguration.
Partitionnement
Lors de son installation un disque Solaris est divisé en partitions appelés :
- sections
- tranches
- slices
Le terme partition est générique. En effet lors de l'installation sur un PC, Solaris installe ses partitions dans une seule partition DOS.
En règle générale, il existe aussi une partition destinée à recevoir le swap.
Visualiser les partitions avec format
Pour visualiser les partitions, il convient d'utiliser la commande format :
# format [Entrée]
En saisissant cette commande on obtient le résultat suivant :
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0d0 <DEFAULT cyl 2085 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0 Specify disk (enter its number):
Il convient donc de choisir le disque voulu, dans notre cas le disque 0 :
Specify disk (enter its number): 0 selecting c0d0 Controller working list found [disk formatted, defect list found] Warning: Current Disk has mounted partitions. /dev/dsk/c0d0s0 is currently mounted on /. Please see umount(1M). /dev/dsk/c0d0s1 is currently used by swap. Please see swap(1M). /dev/dsk/c0d0s7 is currently mounted on /export/home. Please see umount(1M). FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program repair - repair a defective sector show - translate a disk address label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format>
Le prompt de deuxième niveau attend un choix parmi ceux proposés. Saisissez donc le choix partition pour visualiser les partitions :
format> partition PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition>
Et enfin le choix print :
partition> print Current partition table (original): Total disk cylinders available: 2085 + 2 (reserved cylinders) Part Tag Flag Cylinders Size Blocks 0 root wm 70 - 779 5.44GB (710/0/0) 11406150 1 swap wu 3 - 69 525.56MB (67/0/0) 1076355 2 backup wm 0 - 2084 15.97GB (2085/0/0) 33495525 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 home wm 780 - 2083 9.99GB (1304/0/0) 20948760 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 alternates wu 1 - 2 15.69MB (2/0/0) 32130 partition>
Par convention la partition virtuelle numéro deux correspond au disque complet vu par Solaris.
L'utilisation des partitions peut être observée en comparant la sortie de format avec celle de la commande mount :
# mount / on /dev/dsk/c0d0s0 read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=1980000 on mar. mars 17 09:23:33 2009 /devices on /devices read/write/setuid/devices/dev=45c0000 on mar. mars 17 09:23:04 2009 /system/contract on ctfs read/write/setuid/devices/dev=4600001 on mar. mars 17 09:23:04 2009 /proc on proc read/write/setuid/devices/dev=4640000 on mar. mars 17 09:23:04 2009 /etc/mnttab on mnttab read/write/setuid/devices/dev=4680001 on mar. mars 17 09:23:04 2009 /etc/svc/volatile on swap read/write/setuid/devices/xattr/dev=46c0001 on mar. mars 17 09:23:04 2009 /system/object on objfs read/write/setuid/devices/dev=4700001 on mar. mars 17 09:23:04 2009 /dev/fd on fd read/write/setuid/devices/dev=4880001 on mar. mars 17 09:23:33 2009 /tmp on swap read/write/setuid/devices/xattr/dev=46c0002 on mar. mars 17 09:23:37 2009 /var/run on swap read/write/setuid/devices/xattr/dev=46c0003 on mar. mars 17 09:23:37 2009 /export/home on /dev/dsk/c0d0s7 read/write/setuid/devices/intr/largefiles/logging/xattr/onerror=panic/dev=1980007 on mar. mars 17 09:23:57 2009
Visualiser les partitions avec prtvtoc
Solaris implémente aussi la commande prtvtoc en spécifiant le nom du disque complet en mode raw bloc :
# prtvtoc /dev/rdsk/c0d0s2 * /dev/rdsk/c0d0s2 partition map * * Dimensions: * 512 bytes/sector * 63 sectors/track * 255 tracks/cylinder * 16065 sectors/cylinder * 2087 cylinders * 2085 accessible cylinders * * Flags: * 1: unmountable * 10: read-only * * Unallocated space: * First Sector Last * Sector Count Sector * 33479460 16065 33495524 * * First Sector Last * Partition Tag Flags Sector Count Sector Mount Directory 0 2 00 1124550 11406150 12530699 / 1 3 01 48195 1076355 1124549 2 5 00 0 33495525 33495524 7 8 00 12530700 20948760 33479459 /export/home 8 1 01 0 16065 16064 9 9 01 16065 32130 48194
Les chiffres de la colonne Sector Count sont exprimés en blocs de 512 octets.
La commande format
Revenez maintenant à votre commande format :
FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program repair - repair a defective sector show - translate a disk address label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit
Dans cette liste on peut constater certains choix. Parmi les plus important on trouve :
type
Indique le fabricant et le modèle du disque courant.
format> type AVAILABLE DRIVE TYPES: 0. DEFAULT 1. other Specify disk type (enter its number)[0]: 0 selecting c0d0 Controller working list found [disk formatted, defect list found] Warning: Current Disk has mounted partitions. /dev/dsk/c0d0s0 is currently mounted on /. Please see umount(1M). /dev/dsk/c0d0s1 is currently used by swap. Please see swap(1M). /dev/dsk/c0d0s7 is currently mounted on /export/home. Please see umount(1M). format>
partition
Ce choix permet de créer ou modifier les slices :
format> partition PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk !<cmd> - execute <cmd>, then return quit partition>
current
Indique des informations sur le disque courant.
format> current Current Disk = c0d0 <DEFAULT cyl 2085 alt 2 hd 255 sec 63> /pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0 format>
format
Effectue un formatage bas niveau mais uniquement pour certains types.
format> format Cannot format this drive. Please use your Manufacturer supplied formatting utility. format>
fdisk
Ce choix n'est présent que sur des PC. Il permet de créer une partition pour Solaris :
Total disk size is 2088 cylinders Cylinder size is 16065 (512 byte) blocks Cylinders Partition Status Type Start End Length % ========= ====== ============ ===== === ====== === 1 Active Solaris2 1 2087 2087 100 SELECT ONE OF THE FOLLOWING: 1. Create a partition 2. Specify the active partition 3. Delete a partition 4. Change between Solaris and Solaris2 Partition IDs 5. Exit (update disk configuration and exit) 6. Cancel (exit without updating disk configuration) Enter Selection:
repair
Essaie de réparer un bloc défecteux.
format> repair Enter absolute block number of defect: ^C format>
show
Visualise l'adresse d'un bloc.
format> show Enter a disk block: 45 Disk block = 45 = 0x2d = (0/0/45) format>
analyze
Ce choix permet des test d'intégrité sur le disque :
format> analyze ANALYZE MENU: read - read only test (doesn't harm SunOS) refresh - read then write (doesn't harm data) test - pattern testing (doesn't harm data) write - write then read (corrupts data) compare - write, read, compare (corrupts data) purge - write, read, write (corrupts data) verify - write entire disk, then verify (corrupts data) print - display data buffer setup - set analysis parameters config - show analysis parameters !<cmd> - execute <cmd> , then return quit analyze>
verify
Affiche des informations sur le disque courant y compris la table des partitions.
format> verify Primary label contents: Volume name = < > ascii name = <DEFAULT cyl 2085 alt 2 hd 255 sec 63> pcyl = 2087 ncyl = 2085 acyl = 2 bcyl = 0 nhead = 255 nsect = 63 Part Tag Flag Cylinders Size Blocks 0 root wm 70 - 779 5.44GB (710/0/0) 11406150 1 swap wu 3 - 69 525.56MB (67/0/0) 1076355 2 backup wm 0 - 2084 15.97GB (2085/0/0) 33495525 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 home wm 780 - 2083 9.99GB (1304/0/0) 20948760 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 alternates wu 1 - 2 15.69MB (2/0/0) 32130 format>
volname
Ce choix permet de stipuler un nom de volume de 8 caractères :
format> volname Enter 8-character volume name (remember quotes)[""]:"mydisk" Ready to label disk, continue? y format>
Pour vérifier la prise en compte, choisissez de nouveau le choix verify :
format> verify Primary label contents: Volume name = < mydisk> ascii name = <DEFAULT cyl 2085 alt 2 hd 255 sec 63> pcyl = 2087 ncyl = 2085 acyl = 2 bcyl = 0 nhead = 255 nsect = 63 Part Tag Flag Cylinders Size Blocks 0 root wm 70 - 779 5.44GB (710/0/0) 11406150 1 swap wu 3 - 69 525.56MB (67/0/0) 1076355 2 backup wm 0 - 2084 15.97GB (2085/0/0) 33495525 3 unassigned wm 0 0 (0/0/0) 0 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 home wm 780 - 2083 9.99GB (1304/0/0) 20948760 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 alternates wu 1 - 2 15.69MB (2/0/0) 32130 format>
A tout moment il est possible d'exécuter une commande système sans quitter le programme format en utilisant le caractère ! :
format> !pwd / [Hit Return to continue] FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk fdisk - run the fdisk program repair - repair a defective sector show - translate a disk address label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions volname - set 8-character volume name !<cmd> - execute <cmd>, then return quit format>
<note> A l'aide du manuel et de l'Internet, expliquez les choix label, defect, backup et save. </note>
Filesystems Utilisés par Solaris
Filesystems Disques
UFS
Unix File System est le filesystem par défaut de Solaris.
HSFS
High Sierra File System est le filesystem utilisé pour le standard ISO 9660, c'est-à-dire pour les CD. Solaris support aussi les Rock Ridge Extensions ce qui implique la disponibilité de toutes les fonctions du filesystem UFS sauf celles de l'écriture et les liens physiques.
PCFS
PC File System est le filesystem permettant accès en lecture et écriture à des disquettes DOS.
UDF
Universal Disk Filesystem est le filesystem des DVD.
Filesystems Virtuels
Les filesystems virtuels sont pour la plupart des représentations en mémoire qui n'occupent aucune espace disque. En règle générale les filesystems virtuels ne nécessitent aucune intervention de l'administrateur.
CacheFS
Cache File System est utilisé pour amélioré les performances d'un filesystem NFS.
TMPFS
Temporary File System est un filesystem en mémoire. Il est donc très rapide. Ceci est le filesystem par défaut de /tmp ainsi que le swap.
LOFS
Loopback File System de dupliquer un filesystem comme s'il s'agissait d'une image dans une glace.
PROCFS
Process File System est un filesystem en mémoire. Il est donc très rapide. Ceci est le filesystem par défaut de /proc.
CTFS
ConTract File System est un filesystem spécialement conçu pour des relations entre des processus et les ressources système. Cecie est le filesystem par défaut du nouveau service SMF de Solaris 10 (Service Management Facility).
MNTFS
Ce filesystem donne un accès en lecture seule à la table des filesystems.
OBJFS
OBJect File System. Ce filesystem décrit l'état des modules du noyau. Il sert à déboguer le noyau sans y avoir accès.
SPECFS
SPECial File System. Ce filesystem fournit l'accès aux fichiers spéciaux, c'est-à-dire le répertoire /devices.
Le Swap
Solaris doit disposer d'un espace de pagination appelé le swap. Solaris utilise un type de filesystem virtuel pour le répertoire /tmp, à savoir le TMPFS. Le swap est utilisé par ce type de filesystem.
Lors de la procédure d'installation, Solaris met en place un swap de 512 Mo. Par contre la taille conseillée du swap varie avec la mémoire physique de la machine :
Mémoire Physique | Taille du swap |
---|---|
4Go | 1Go |
8Go | 2Go |
16Go et + | 4Go |
Pour visualiser l'utilisation de la mémoire virtuelle,il convient d'utiliser la commande swap avec l'option l. Saisissez donc la commande suivante :
# swap -l [Entreé]
Vous obtiendrez un résultat similaire à celui-ci :
# swap -l swapfile dev swaplo blocs libres /dev/dsk/c0d0s1 102,1 8 1076344 1076344
où :
- swapfile est le nom de la zone de swap
- dev est les numéros de majeur et de mineur expliqués dans la leçon Gestion des Paramètres du Matériel et les Ressources sous Solaris de ce cours
- swaplo est le nombre de blocs de 512 octets réservé en début de zone
- blocks est la taille de la zone de swap en blocs de 512 octets
- free est le nombre de blocs de 512 octets libres
Pour visualiser l'utilisation de la totalité de la mémoire,il convient d'utiliser la commande swap avec l'option s. Saisissez donc la commande suivante :
#swap -s [Entreé]
Vous obtiendrez un résultat similaire à celui-ci :
# swap -s total : 305820k octets alloués + 73580k réservés = 379400k utilisés, 1248404k disponibles
Il est également possible de créer un fichier de swap grâce àla commande mkfile. Saisissez la commande suivante :*
#mkfile -v 256m /swap [Entrée]
Vous obtiendrez un résultat similaire à celui-ci :
# mkfile -v 256m /swap /swap 268435456 bytes # ls -l /swap -rw------T 1 root root 268435456 mars 17 16:18 /swap
On active le fichier swap grâce à la commande swap avec l'option -a. Saisissez la commande suivante :*
#swap -a /swap [Entrée]
Vous obtiendrez un résultat similaire à celui-ci :
# swap -a /swap # swap -l swapfile dev swaplo blocs libres /dev/dsk/c0d0s1 102,1 8 1076344 1076344 /swap - 8 524280 524280
Pour activer le fichier de swap lors du démarrage de la machine,il convient d'inclure la ligne suivante dans le fichier /etc/vfstab :
/swap - - swap - no -
C'est le script /sbin/swapadd qui se charge d'activer les zones et les fichiers de swap au démarrage.
Pour supprimer votre fichier de swap, il convient d'utiliser la commande swap avec l'option -d :
# swap -d /swap # swap -l swapfile dev swaplo blocs libres /dev/dsk/c0d0s1 102,1 8 1076344 1076344
N'oubliez pas de supprimer la ligne suivante du fichier /etc/vfstab :
/swap - - swap - no -
et de supprimer le fichier disque lui-même :
# rm /swap
Références
<html> <center> Copyright © 2011-2018 I2TCH LIMITED.<br><br> </center> </html>