TUTORIEL HARDWARE     Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Documentation protégée par licence copyleft - tous droits inversés (Voir détail en fin de document)






 1 : DETECTION COMPOSANTS HARDWARE     Précédent   Suivant   Sommaire   Préc.page.lue   Accueil




 1.1 : dmidecode Décodeur table DMI (SMBIOS)   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil




 1.1.1 : Exemples d'utilisation de dmidecode   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

# dmidecode 2.9
SMBIOS 2.4 present.
43 structures occupying 1128 bytes.
Table at 0x000F0000.

Handle 0x0000, DMI type 0, 19 bytes
BIOS Information
        Vendor: Phoenix Technologies, LTD
        Version: 6.00 PG
        Release Date: 05/11/2007
        Address: 0xE0000
        Runtime Size: 128 kB
        ROM Size: 1024 kB
        Characteristics:
                ISA is supported
                PCI is supported
                PNP is supported
                APM is supported
                BIOS is upgradeable
                BIOS shadowing is allowed
                ESCD support is available
                Boot from CD is supported
                Selectable boot is supported
                BIOS ROM is socketed
                EDD is supported
                5.25"/360 KB floppy services are supported (int 13h)
                5.25"/1.2 MB floppy services are supported (int 13h)
                3.5"/720 KB floppy services are supported (int 13h)
                3.5"/2.88 MB floppy services are supported (int 13h)
                Print screen service is supported (int 5h)
                8042 keyboard services are supported (int 9h)
                Serial services are supported (int 14h)
                Printer services are supported (int 17h)
                CGA/mono video services are supported (int 10h)
                ACPI is supported
                USB legacy is supported
                LS-120 boot is supported
                ATAPI Zip drive boot is supported

Handle 0x0001, DMI type 1, 25 bytes
System Information
        Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD
        Product Name: MS-7235
        Version: REV:1.1
        Serial Number:  
        UUID: Not Present
        Wake-up Type: Power Switch

Handle 0x0002, DMI type 2, 8 bytes
Base Board Information
        Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD
        Product Name: MS-7235
        Version: REV:1.1
        Serial Number:  

Handle 0x0003, DMI type 3, 13 bytes
Chassis Information
        Manufacturer:  
        Type: Desktop
        Lock: Not Present
        Version:  
        Serial Number:  
        Asset Tag:  
        Boot-up State: Unknown
        Power Supply State: Unknown
        Thermal State: Unknown
        Security Status: Unknown

Handle 0x0004, DMI type 4, 32 bytes
Processor Information
        Socket Designation: Socket 775
        Type: Central Processor
        Family: Other
        Manufacturer: Intel
        ID: F6 06 00 00 FF FB EB BF
        Version: Intel(R)
        Voltage: 1.3 V
        External Clock: 266 MHz
        Max Speed: 3066 MHz
        Current Speed: 2400 MHz
        Status: Populated, Enabled
        Upgrade: ZIF Socket
        L1 Cache Handle: 0x000A
        L2 Cache Handle: 0x000B
        L3 Cache Handle: Not Provided
...........
.....................




 1.2 : lshw Liste composants HW   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: (1)
Updated: 27 February 2008
Sommaire

 




NAME   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw - list hardware  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw [ -version ]

lshw [ -help ]

lshw [ -X ]

lshw [ -html | -short | -xml | -businfo ] [ -class class ... ] [ -disable test ... ] [ -enable test ... ] [ -sanitize ] [ -numeric ] [ -quiet ]

 




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw is a small tool to extract detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc. on DMI-capable x86 or IA-64 systems and on some PowerPC machines (PowerMac G4 is known to work).

It currently supports DMI (x86 and IA-64 only), OpenFirmware device tree (PowerPC only), PCI/AGP, CPUID (x86), IDE/ATA/ATAPI, PCMCIA (only tested on x86), SCSI and USB.

-version
Displays the version of lshw and exits.
-help
Displays the available command line options and quits.
-X
Launch the X11 GUI (if available).
-html
Outputs the device tree as an HTML page.
-xml
Outputs the device tree as an XML tree.
-short
Outputs the device tree showing hardware paths, very much like the output of HP-UX's ioscan.
-businfo
Outputs the device list showing bus information, detailing SCSI, USB, IDE and PCI addresses.
-class class
Only show the given class of hardware. class can be found using lshw -short or lshw -businfo.
-C class
Alias for -class class.
-enable test
-disable test
Enables or disables a test. test can be dmi (for DMI/SMBIOS extensions), device-tree (for OpenFirmware device tree), spd (for memory Serial Presence Detect), memory (for memory-size guessing heuristics), cpuinfo (for kernel-reported CPU detection), cpuid (for CPU detection), pci (for PCI/AGP access), isapnp (for ISA PnP extensions), pcmcia (for PCMCIA/PCCARD), ide (for IDE/ATAPI), usb (for USB devices),scsi (for SCSI) or network (for network interfaces detection).
-quiet
Don't display status.
-sanitize
Remove potentially sensible information from output (IP addresses, serial numbers, etc.).
-numeric
Also display numeric IDs (for PCI and USB devices).
 



BUGS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw currently does not detect Firewire(IEEE1394) devices.

Not all architectures supported by GNU/Linux are fully supported (e.g. CPU detection).

"Virtual" SCSI interfaces used for SCSI emulation over IDE are not reported correctly yet.  




NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw must be run as super user or it will only report partial information.  




FILES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

/usr/local/share/pci.ids
/usr/share/pci.ids
/etc/pci.ids
/usr/share/hwdata/pci.ids
A list of all known PCI ID's (vendors, devices, classes and subclasses).
/proc/bus/pci/*
Used to access the configuration of installed PCI busses and devices.
/proc/ide/*
Used to access the configuration of installed IDE busses and devices.
/proc/scsi/*, /dev/sg*
Used to access the configuration of installed SCSI devices.
/dev/cpu/*/cpuid
Used on x86 platforms to access CPU-specific configuration.
/proc/device-tree/*
Used on PowerPC platforms to access OpenFirmware configuration.
/proc/bus/usb/*
Used to access the configuration of installed USB busses and devices.
/sys/*
Used on 2.6 kernels to access hardware/driver configuration information.
 



EXAMPLES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw -short
Lists hardware in a compact format.
lshw -class disk -class storage
Lists all disks and storage controllers in the system.
lshw -html -class network
Lists all network interfaces in HTML.
lshw -disable dmi
Don't use DMI to detect hardware.
 



SEE ALSO   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

/proc/*, linuxinfo(1), lspci(8), lsusb(8)  




COPYING   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) version 2.  




AUTHOR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lshw is maintained by Lyonel Vincent <lyonel@ezix.org>.  




OTHER INFO   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

The webpage for lshw is at
 <URL:http://lshw.org/>





 1.2.1 : Exemples d'utilisation de lshw   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Liste simple de tous les composants
# lshw -short
H/W path                 Device      Class          Description
===============================================================
                                     system         MS-7235
/0                                   bus            MS-7235
/0/0                                 memory         128KiB BIOS
/0/4                                 processor      Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
/0/4/a                               memory         32KiB L1 cache
/0/4/b                               memory         4MiB L2 cache
/0/4/0.1                             processor      Logical CPU
/0/4/0.2                             processor      Logical CPU
/0/1f                                memory         4GiB System Memory
/0/1f/0                              memory         1GiB DIMM Synchronous
/0/1f/1                              memory         1GiB DIMM Synchronous
/0/1f/2                              memory         1GiB DIMM Synchronous
/0/1f/3                              memory         1GiB DIMM Synchronous
/0/100                               bridge         82P965/G965 Memory Controller Hub
/0/100/1                             bridge         82P965/G965 PCI Express Root Port
/0/100/1/0                           display        NV44 [GeForce 6200 TurboCache(TM)]
/0/100/1a                            bus            82801H (ICH8 Family) USB UHCI Controller #4
/0/100/1a/1              /dev/usb3   bus            UHCI Host Controller
/0/100/1a.1                          bus            82801H (ICH8 Family) USB UHCI Controller #5
/0/100/1a.1/1            /dev/usb4   bus            UHCI Host Controller
/0/100/1a.7                          bus            82801H (ICH8 Family) USB2 EHCI Controller #2
/0/100/1a.7/1            /dev/usb1   bus            EHCI Host Controller
/0/100/1a.7/1/4          scsi8       storage        Flash Disk
/0/100/1a.7/1/4/0.0.0    /dev/sde    disk           4213MB SCSI Disk
/0/100/1a.7/1/4/0.0.0/1  /dev/sde1   volume         979MiB EXT3 volume
/0/100/1a.7/1/4/0.0.0/2  /dev/sde2   volume         3038MiB Linux filesystem partition
/0/100/1b                            multimedia     82801H (ICH8 Family) HD Audio Controller
/0/100/1c                            bridge         82801H (ICH8 Family) PCI Express Port 1
/0/100/1c/0                          storage        JMB361 AHCI/IDE
/0/100/1c/0.1            scsi6       storage        JMB361 AHCI/IDE
/0/100/1c/0.1/0.0.0      /dev/cdrom  disk           DVD-RW  DVR-115D
/0/100/1d                            bus            82801H (ICH8 Family) USB UHCI Controller #1
/0/100/1d/1              /dev/usb5   bus            UHCI Host Controller
/0/100/1d.1                          bus            82801H (ICH8 Family) USB UHCI Controller #2
/0/100/1d.1/1            /dev/usb6   bus            UHCI Host Controller
/0/100/1d.2                          bus            82801H (ICH8 Family) USB UHCI Controller #3
........................
..................................
/1                       pan0        network        Ethernet interface

Liste simple avec «bus info»
# lshw -businfo
Bus info          Device      Class          Description
========================================================
                              system         MS-7235
                              bus            MS-7235
                              memory         128KiB BIOS
cpu@0                         processor      Intel(R) Core(TM)2 CPU          6600  @ 2.40GHz
                              memory         32KiB L1 cache
                              memory         4MiB L2 cache
                              processor      Logical CPU
                              processor      Logical CPU
                              memory         4GiB System Memory
                              memory         1GiB DIMM Synchronous
                              memory         1GiB DIMM Synchronous
                              memory         1GiB DIMM Synchronous
                              memory         1GiB DIMM Synchronous
pci@0000:00:00.0              bridge         82P965/G965 Memory Controller Hub
pci@0000:00:01.0              bridge         82P965/G965 PCI Express Root Port
pci@0000:01:00.0              display        NV44 [GeForce 6200 TurboCache(TM)]
pci@0000:00:1a.0              bus            82801H (ICH8 Family) USB UHCI Controller #4
usb@3             /dev/usb3   bus            UHCI Host Controller
pci@0000:00:1a.1              bus            82801H (ICH8 Family) USB UHCI Controller #5
usb@4             /dev/usb4   bus            UHCI Host Controller
pci@0000:00:1a.7              bus            82801H (ICH8 Family) USB2 EHCI Controller #2
usb@1             /dev/usb1   bus            EHCI Host Controller
usb@1:4           scsi8       storage        Flash Disk
scsi@8:0.0.0      /dev/sde    disk           4213MB SCSI Disk
scsi@8:0.0.0,1    /dev/sde1   volume         979MiB EXT3 volume
scsi@8:0.0.0,2    /dev/sde2   volume         3038MiB Linux filesystem partition
pci@0000:00:1b.0              multimedia     82801H (ICH8 Family) HD Audio Controller
pci@0000:00:1c.0              bridge         82801H (ICH8 Family) PCI Express Port 1
pci@0000:02:00.0              storage        JMB361 AHCI/IDE
pci@0000:02:00.1  scsi6       storage        JMB361 AHCI/IDE
scsi@6:0.0.0      /dev/cdrom  disk           DVD-RW  DVR-115D
.....................
...............................

Liste détaillée des composants de la classe «storage»
# lshw -class storage
  *-usb                   
       description: Mass storage device
       product: Flash Disk
       vendor: USB 2.0
       physical id: 4
       bus info: usb@1:4
       logical name: scsi8
       version: 1.00
       serial: xxxxxxxxxxxxxxxxxxx
       capabilities: usb-2.00 scsi emulated scsi-host
       configuration: driver=usb-storage maxpower=100mA speed=480.0MB/s
  *-storage
       description: SATA controller
       product: JMB361 AHCI/IDE
       vendor: JMicron Technologies, Inc.
       physical id: 0
       bus info: pci@0000:02:00.0
       version: 02
       width: 32 bits
       clock: 33MHz
       capabilities: storage pm pciexpress ahci_1.0 bus_master cap_list
       configuration: driver=ahci latency=0 module=ahci
  *-ide
       description: IDE interface
       product: JMB361 AHCI/IDE
       vendor: JMicron Technologies, Inc.
       physical id: 0.1
       bus info: pci@0000:02:00.1
       logical name: scsi6
       version: 02
       width: 32 bits
       clock: 33MHz
       capabilities: ide pm bus_master cap_list emulated
       configuration: driver=pata_jmicron latency=0 module=pata_jmicron
  *-ide:0
       description: IDE interface
       product: 82801H (ICH8 Family) 4 port SATA IDE Controller
       vendor: Intel Corporation
       physical id: 1f.2
       bus info: pci@0000:00:1f.2
       logical name: scsi2
       logical name: scsi3
       version: 02
       width: 32 bits
       clock: 66MHz
       capabilities: ide pm bus_master cap_list emulated
       configuration: driver=ata_piix latency=0
  *-ide:1
       description: IDE interface
       product: 82801H (ICH8 Family) 2 port SATA IDE Controller
       vendor: Intel Corporation
       physical id: 1f.5
       bus info: pci@0000:00:1f.5
       logical name: scsi4
       logical name: scsi5
       version: 02
       width: 32 bits
       clock: 66MHz
       capabilities: ide pm bus_master cap_list emulated
       configuration: driver=ata_piix latency=0




 1.3 : lspci Liste périphériques PCI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lspci   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel de l'administrateur Linux (8)
Updated: 10 avril 2008
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lspci - Lister tous les périphériques  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lspci [options]  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lspci est un utilitaire permettant d'afficher des informations sur les bus PCI du système ainsi que sur les périphériques qui y sont connectés.

Par défaut, une briève liste des périphériques est affichée. Utilisez les options décrites plus loin pour obtenir soit une sortie plus volubile, soit une sortie conçue pour être analyser par d'autres programmes.

Si vous avez l'intention de signaler des bogues dans les pilotes de périphériques PCI ou sur lspci lui-même, merci de bien vouloir inclure la sortie de la commande lspci -vvx ou même mieux lspci -vvxxx (toutefois, voir les remarques plus loin).

Certaines parties de la sortie, particulièrement dans les modes hautement volubiles, ne sont probalement intelligibles que pour des hackers PCI expérimentés. Pour la définition exacte des champs, veuillez consulter soit les spécifications PCI, soit les fichiers d'inclusion header.h et /usr/include/linux/pci.h.

L'accès à certaines parties de la configuration PCI est réservé au superutilisateur sur la plupart des systèmes. Aussi, les fonctionnalités de lspci disponibles aux utilisateurs normaux sont limitées. Toutefois, lspci fait de son mieux pour afficher le maximum d'informations disponibles marquant les autres avec le texte <access denied> (accès refusé).  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

 




Modes d'affichage de base   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-m

Vider les données du périphérique PCI au format rétro-compatible lisible par un mécanisme. Voir les détails plus loin.

-mm

Vider les données du périphérique PCI au format lisible par un mécanisme pour une analyse facile dans des scripts.

Voir les détails plus loin.

-t

Afficher un diagramme sous forme d'arbre contenant tous les bus, ponts, périphériques et connexions entre eux.

 



Options d'affichage   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-v

Mode volubile. Afficher des informations détaillées sur tous les périphériques.

-vv

Mode très volubile. Afficher plus de détails.

Ce niveau inclut tout ce qui est considéré comme utile.

-vvv

Mode encore plus volubile. Afficher tout ce que l'on puisse analyser, même si cela ne semble pas intéressant pour tout le monde (par exemple, les régions de mémoire non définies).

-k

Afficher les pilotes du noyau gérant chaque périphérique et également les modules du noyau capables de le gérer. Activée par défaut lorsque l'option -v est fournie dans le mode normal de sortie. (Actuellement, ne fonctionne que sur les noyaux Linux 2.6 et suivants.)

-x

Afficher un vidage hexadécimal de la partie standard de l'espace de configuration (les 64 ou 128 premiers octets des ponts CardBus).

-xxx

Afficher un vidage hexadécimal de l'espace complet de configuration PCI. Cette option n'est disponible qu'au superutilisateur car plusieurs périphériques plantent lorsqu'on essaye de lire certaines parties de leur espace de configuration (ce comportement ne viole probablement pas la norme PCI, mais c'est pour le moins très stupide). Toutefois, de tels périphériques sont rares, ne vous en inquiétez donc pas plus que ça.

-xxxx

Afficher un vidage hexadécimal de l'espace étendu (4096 octets) de configuration PCI disponible sur les bus PCI-X 2.0 et PCI Express.

-b

Vue focalisée sur les bus.

Afficher tous les numéros d'interruption (IRQ) et les adresses telles qu'elles sont vues par les cartes du bus PCI plutôt que comme le noyau les voit.

-D

Toujours afficher les numéros de domaine PCI. Par défaut, lspci les supprime sur les machines qui n'ont que le domaine 0.

 



Options pour contrôler la résolution des identifiants en noms   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-n

Afficher les codes périphériques et vendeurs PCI sous forme de nombre plutôt que d'aller les chercher dans la liste des identifiants PCI.

-nn

Afficher les codes périphériques et vendeurs PCI sous forme de nombre et de noms.

-q

Utiliser le DNS pour interroger la base de données centrale des identifiants PCI si un périphérique n'a pas été trouvé dans le fichier pci.ids local. Si la requête DNS réussit, le résultat est mis en cache dans ~/.pciids-cache et sera reconnu dans les appels ultérieurs, même si l'option -q n'est pas fournie. Merci de bien vouloir utiliser cette option dans des scripts automatisés avec parcimonie afin d'éviter la surchage des serveurs de base de données.

-qq

Identique à -q, sauf que le cache local est réinitialisé.

-Q

Interroger la base de données centrale même pour les entrées reconnues localement. Utilisez cette option si vous suspectez que l'entrée affichée est fausse.

 



Options de sélection des périphériques   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]

Montrer seulement les périphériques du domaine indiqué (si votre machine possède plusieurs ponts d'hôtes, soit ils peuvent partager le même numéro de bus, soit chacun d'eux peut s'adresser un domaine PCI ; les domaines sont numérotés de 0 à ffff), du bus indiqué (0 à ff), de l'emplacement indiqué (0 à 1f) et de la fonction indiquée (0 à 7). Chaque élément de l'adresse du périphérique peut être omis ou défini à « * », les deux signifiant « toute valeur ». Par exemple, « 0: » signifie tous les périphériques du bus 0, « 0 » signifie toutes les fonctions du périphérique 0 de tous les bus, « 0.3 » sélectionne la troisième fonction du périphérique 0 sur tous les bus et « .4 » montre seulement la quatrième fonction de chaque périphérique.

-d [<vendor>]:[<device>]

Sélectionner les périphériques dont les identifiants de vendeur et de périphérique sont fournis.

Les deux identifiants doivent être indiqués sous forme hexadécimale et peuvent être omis ou définis à « * », les deux signifiant « toute valeur ».

 



Autres options   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-i <file>

Utiliser le fichier <file> comme liste des identifiants PCI plutôt que le fichier /usr/share/hwdata/pci.ids. (Ndt : l'emplacement peut varier suivant les distributions).

-p <file>

Utiliser le fichier <file> pour la correspondance des identifiants PCI gérés par les modules du noyau. Par défaut, lspci utilise /lib/modules/kernel_version/modules.pcimap. Cela ne s'applique qu'aux systèmes Linux ayant de récents outils de modules.

-M

Invoquer le mode de correspondance de bus qui effectue un balayage exhaustif de tous les périphériques PCI, y compris ceux se trouvent derrière des ponts mal configurés, etc. Cette option n'est disponible qu'au superutilisateur et ne donnent des résultats significatifs que si elle est utilisée avec le mode d'accès matériel direct (autrement, les résultats sont identiques aux modes normaux d'affichage, modulo les bogues de lspci). Veuillez noter que le mappeur de bus ne prend pas en charge les domaines PCI et balaie seulement le domaine 0.

--version

Afficher la version de lspci. Cette option doit être utilisée seule.

 



Options d'accès PCI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les utilitaires PCI utilisent la bibliothèque PCI pour dialoguer avec les périphériques PCI (voir pcilib(7) pour plus de détails). Vous pouvez utiliser les options suivantes pour influer sur son comportement :

-A <method>

La bibliothèque prend en charge plusieurs méthodes d'accès au matériel PCI. Par défaut, elle utilise la première méthode d'accès disponible, mais vous pouvez utilisez cette option pour outrepasser cette décision. Voir -A help pour une liste des méthodes disponibles et leurs descriptions.

-O <param>=<value>

Le comportement de la bibliothèque est contrôlé par plusieurs paramètres nommés.

Cette option permet de définir la valeur de n'importe lequel des paramètres.

Utilisez -O help pour une liste des paramètres connus et leurs valeurs par défaut.

-H1

Utiliser l'accès matériel direct via le mécanisme 1 de configuration Intel (c'est un raccourci pour -A intel-conf1).

-H2

Utiliser l'accès matériel direct via le mécanisme 2 de configuration Intel (c'est un raccourci pour -A intel-conf2).

-F <file>

Plutôt que d'accéder vraiment au matériel, lire la liste des périphériques et les valeurs de leurs registres de configurations à partir du fichier fourni produit par une exécution précédente de lspci -x. Cela est très pratique pour l'analyse des rapports de bogues fournis par les utilisateurs car vous pouvez afficher la configuration matérielle de quelle façon que vous le voulez sans embêter l'utilisateur en lui réclamant plus de vidage.

-G

Accroître le niveau de débogage de la bibliothèque.

 



SORTIE LISIBLE PAR DES MÉCANISMES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Si vous avez l'intention de traiter automatiquement la sortie de lspci, veuillez utiliser l'un des formats de sortie lisible par un mécanisme (-m, -vm, -vmm) décrits dans cette section. Tous les autres formats sont succeptibles d'être modifiés entre deux versions de lspci. Tous les nombres sont toujours affichés sous forme hexadécimale. Si vous voulez traiter les identifiants numériques plutôt que les noms, veuillez ajouter l'option -n  




Format simple (-m)   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Dans le format simple, chaque périphérique est décrit sur une seule ligne, formatée sous forme de paramètres appropriés à leurs passages à un script shell, c'est-à-dire des valeurs séparées par espaces, entourées de guillemets et protégées si nécessaire. Certains arguments sont positionnels : emplacement (slot), classe, nom du vendeur, nom du périphérique, nom du vendeur du sous-système et nom du sous-sytème (les deux derniers arguments sont vides si le périphérique n'a pas de sous système) ; les arguments restants sont de type option :

-rrev

Numéro de révision.

-pprogif

Interface de programmation. L'ordre relatif des arguments positionnels et des options n'est pas défini. De nouvelles options peuvent être introduites dans de futures versions, mais elles auront toujours un seul paramètre accollé (sans espace entre l'option et le paramètre), aussi, elles pourront être facilement ignorées si elles ne sont pas reconnues.

 



Format volubile (-vmm)   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La sortie volubile est une séquence d'enregistrements séparés par des lignes blanches.

Chaque enregistrement décrit un seul périphérique dans une séquence de lignes, chaque ligne contenant une seule paire « étiquette: valeur ». L'étiquette et la valeur sont séparées par un unique caractère de tabulation. Ni les enregistrements, ni les lignes dans un enregistrement ne sont dans un ordre particulier. Les étiquettes sont sensibles à la casse. Sont définies les étiquettes suivantes :

Slot

Le nom de l'emplacement où se trouve le périphérique ([domain:]bus:device.function). Cette étiquette est toujours la première dans un enregistrement.

Class

Nom de la classe.

Vendor

Nom du vendeur.

Device

Nom du périphérique.

SVendor

Nom du vendeur du sous-système (optionnel).

SDevice

Nom du sous-système (optionnel).

Rev

Numéro de révision (optionnel).

ProgIf

Interface de programmation (optionnel).

Driver

Pilote du noyau gérant actuellement le périphérique (optionnel, Linux seulement).

Module

Module du noyau signalant qu'il est capable de gérer le périphérique (optionnel, Linux seulement). De nouvelles étiquettes pourront être introduites dans de futures versions.

Aussi, vous devriez ignorer silencieusement les étiquettes non reconnues.

 



Format volubile rétro-compatible (-vm)   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Dans ce mode, lspci tente d'être parfaitement compatible avec ses anciennes versions.

Il est presque identique au format volubile normal, mais l'étiquette Device est utilisée à la fois pour l'emplacement et pour le nom du périphérique, aussi, elle apparaît deux fois dans un même enregistrement. Veuillez éviter ce format dans tout nouveau code.  




FICHIERS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

/usr/share/hwdata/pci.ids

Une liste de tous les identifiants PCI connus (vendeurs, périphériques, classes et sous-classes). Maintenu à http://pciids.sourceforge.net/, utilisez l'utilitaire update-pciids(1) pour télécharger la version la plus récente. (Ndt : l'emplacement peut varier suivant les distributions).

/usr/share/hwdata/pci.ids.gz

Si lspci a été compilé avec la prise en charge de la compression, on essayera d'utiliser d'abord ce fichier avant pci.ids. (Ndt : l'emplacement peut varier suivant les distributions).

~/.pciids-cache

Tous les identifiants trouvés avec le mode de requête DNS sont mis en chache dans ce fichier.

 



BOGUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Quelques fois, lspci n'est pas capable de décoder complètement les registres de configuration. Cela arrive généralement lorsque l'on n'a pas pu obtenir suffisamment d'informations de la part des auteurs.

Dans de tels cas, il affiche au moins le symbole <?> pour indiquer qu'il y aurait moyen de dire plus à cet endroit. Si vous connaissez ces détails, les correctifs sont évidemment les bienvenus.

L'accès à l'espace de configuration étendu n'est actuellement pris en charge que par le dorsal linux_sysfs.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

setpci(8), update-pciids(8), pcilib(7)  




AUTEUR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les utilitaires PCI sont maintenus par Martin Mares <mj@ucw.cz>.  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 lspci ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.





 1.3.1 : Exemples d'utilisation de lspci   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Affichage simple des cartes
# lspci
00:00.0 Host bridge: Intel Corporation 82P965/G965 Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82P965/G965 PCI Express Root Port (rev 02)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HB/HR (ICH8/R) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801H (ICH8 Family) 2 port SATA IDE Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV44 [GeForce 6200 TurboCache(TM)] (rev a1)
02:00.0 SATA controller: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02)
02:00.1 IDE interface: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02)
03:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)
│  │  └─────────────────────────── Slot
│  └────────────────────────────── Bus
└───────────────────────────────── Domaine

Affichage Détaillé d'une carte
# lspci -vv -s 02:00.0
02:00.0 SATA controller: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02) (prog-if 01 [AHCI 1.0])
    Subsystem: Micro-Star International Co., Ltd. P965 Neo MS-7235 mainboard
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0, Cache Line Size: 64 bytes
    Interrupt: pin A routed to IRQ 10
    Region 5: Memory at fdbfe000 (32-bit, non-prefetchable) [size=8K]
    Capabilities: [68] Power Management version 2
        Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-)
        Status: D0 PME-Enable- DSel=0 DScale=0 PME-
    Capabilities: [50] Express (v1) Legacy Endpoint, MSI 01
        DevCap:    MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
            ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
        DevCtl:    Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
            RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
            MaxPayload 128 bytes, MaxReadReq 512 bytes
        DevSta:    CorrErr- UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
        LnkCap:    Port #1, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 <1us, L1 <16us
            ClockPM- Suprise- LLActRep- BwNot-
        LnkCtl:    ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
            ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
        LnkSta:    Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
    Kernel driver in use: ahci




 1.4 : lsusb Liste périphériques USB   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsusb   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel de l'administrateur Linux (8)
Updated: 23 octobre 2007
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsusb - Afficher les périphériques USB  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsusb [ options ]  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsusb est un utilitaire qui vous permet d'afficher des informations relatives aux bus USB du système et aux périphériques qui y sont connectés.

Pour pouvoir utiliser toutes les fonctionnalités de ce programme, vous devez avoir un noyau Linux qui prenne en charge l'interface /proc/bus/usb (par exemple, le noyau 2.3.15 ou plus récent).  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-v, --verbose

Demander à lsusb d'être volubile et d'afficher des informations détaillées sur les périphériques.

Cela inclut les descripteurs de configuration pour la vitesse actuelle des périphériques.

Lorsqu'ils sont disponibles, les descripteurs de classe sont également affichés pour les classes de périphériques USB tels que les hubs, les périphériques audio, HID, de communications et les cartes à puce.

-s [[bus]:][devnum]
N'afficher que les périphériques indiqués par bus et/ou devnum. Les deux identifiants doivent être fournis sous forme décimale et peuvent être omis.
-d [vendor]:[product]
N'afficher que les périphériques dont on indique les identifiants du vendeur et du produit. Les deux identifiants doivent être fournis sous forme hexadécimale.
-D device

Ne pas balayer le répertoire /proc/bus/usb, afficher plutôt seulement les informations du périphérique dont on a indiqué le nom de fichier de périphérique. Le fichier de périphérique devrait être quelque chose comme /proc/bus/usb/001/001. Cette option permet d'afficher des informations détaillées comme avec l'option -v ; vous devez être le superutilisateur pour pouvoir l'utiliser.

-t

Demander à lsusb d'afficher la hiérarchie physique des périphériques USB sous forme d'arbre.

-V, --version

Afficher les informations de version et quitter.

 



DIAGNOSTICS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cannot open /proc/bus/usb/nnn/nnn, Permission denied (13)

Pour obtenir des informations détaillées, lsusb doit ouvrir les fichiers dans /proc/bus/usb en lecture/écriture. Vous devez donc être le superutilisateur pour pouvoir le faire.

 



VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Si le périphérique indiqué n'est pas trouvé, un code de sortie non nul est renvoyé.  




FICHIERS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

/usr/share/usb.ids

Une liste de tous les identifiants USB connus (vendeurs, produits, classes, sous-classes et protocoles).

/proc/bus/usb

Une interface vers les périphériques USB fournie par les noyaux Linux postérieurs à la version 2.3.15. Elle contient un sous-répertoire par bus qui contient un fichier par périphérique et un fichier devices qui contient certains descripteurs pour chaque périphérique USB. Cette interface est également prise en charge par certains noyaux Linux 2.2.

 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lspci(8)  




AUTEUR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Thomas Sailer, <sailer@ife.ee.ethz.ch>.  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 lsusb ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.





 1.4.1 : Exemples d'utilisation de lsusb   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Affichage simple des périphériques
# lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 003: ID 050d:0131 Belkin Components Bluetooth Device with trace filter
Bus 007 Device 002: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0204:6025 Chipsbank Microelectronics Co., Ltd CBM2080 Flash drive controller
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Affichage détaillé d'un périphérique
# lsusb -vv -s 1:2
Bus 001 Device 002: ID 0204:6025 Chipsbank Microelectronics Co., Ltd CBM2080 Flash drive controller
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0204 Chipsbank Microelectronics Co., Ltd
  idProduct          0x6025 CBM2080 Flash drive controller
  bcdDevice            1.00
  iManufacturer           1 USB 2.0
  iProduct                2 Flash Disk
  iSerial                 3 xxxxxxxxxxxxxxxxxxxxxxxxx
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk (Zip)
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered




 1.5 : lsmod Liste modules   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsmod   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel de l'administrateur Linux (8)
Updated: 4 février 2002
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsmod - Afficher la liste des modules du noyau chargés en mémoire  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsmod [-hV]  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

lsmod affiche des informations sur les modules du noyau chargés en mémoire.

Le format est : nom, taille, compteur d'usage, liste des modules l'utilisant. Les informations affichées sont identiques à celles de /proc/modules.

Si le module gère son propre déchargement à l'aide d'une routine can_unload, le compteur d'usage affiché est toujours -1, quelque soit la vraie valeur.  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-h, --help

Affiche une page d'aide.

-V, --version

Affiche le numéro de version et se termine.

 



VERSIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

 




Historique   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La modularisation du noyau a été conçue par un illustre inconnu dont le nom n'a pas été retenu.
La version initiale pour Linux a été écrite par Bas Laarhoven <bas@vimec.nl>.
Version 0.99.14 par Jon Tombs <jon@gtex02.us.es>.
Amélioré par Bjorn Ekwall <bj0rn@blox.se>.
Réécrit au goût du jour dans la version 2.1.17 du noyau par Richard Henderson <rth@tamu.edu> (Décembre 1996).
Mise à jour par Bjorn Ekwall <bj0rn@blox.se> en mars 1999.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

insmod(8), modprobe(8), depmod(8), rmmod(8), ksyms(8)  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Thierry Vignaud <tvignaud AT mandriva DOT com> en 1999 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 lsmod ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.





 2 : ADMINISTRATION DISQUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil




 2.1 : GESTION DES PARTITIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Une partition disque est le résultat de la découpe logique d'un disque en une ou plusieurs parties.

Les partitions disque sur PC, date des débuts de DOS et de son MBR.

Le MBR prévoit 4 entrées de 16 octets pour gérer quatre partitions maximum. S'il l'on a besoin (ou si on pense qu'on aura besoin) de plus de quatre partitions il faudra utiliser une partition étendue dans laquelle on définira des partitions logiques.

Les quatre entrées de 16 octets (64 octets) sont localisées dans le MBR de l'adresse 0x01BE (446) à l'adresse 01FD (509).

               ┌───┬──────────────────┬────────────────────────────────┬─────────────────────────────────────────────┬──────────────────────────┐
               │MBR│ Part.Prim.1      │  Part.Prim.2                   │       Part.Prim.3                           │  Part.Prim.4             |
               └───┴──────────────────┴────────────────────────────────┴─────────────────────────────────────────────┴──────────────────────────┘
             1   ├───────────┘                      │                                   │                                               │
             2   ├──────────────────────────────────┘                                   │                                               │
             3   ├──────────────────────────────────────────────────────────────────────┘                                               │
             4   └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Au delà il faut passer à une partition étendue ( en toute logique la partition étendure doit suivre les n partitions primaires bien que ce ne soit pas obligatoire.

En cas de partition étendue, celle ci prend une entrée dans le MBR, et donc il ne peut y avoir que trois partitions primaires.

Une fois la partition étendue définie, on pourra définir des partitions logiques dans celle-ci.

               ┌───┬──────────────────┬────────────────┬──────────────┬───────────────────────────────────────────────────────────────────────┐
               │MBR│ Part.Prim.1      │  Part.Prim.2   │ Part.Prim.3  │ Partition étendue (4)                                                 |
               │   │                  │                │              │E│ Partition logique 5   | Partition logique 6  | Partition logique 7  |
               └───┴──────────────────┴────────────────┴──────────────┴───────────────────────────────────────────────────────────────────────┘
                 │           │               │                 │       │          5                       6                              7
                 │           │               │                 │       └──────────┴───────────────────────┴──────────────────────────────┘
            1    ├───────────┘               │                 │                                               │
            2    ├───────────────────────────┘                 │                                               │
            3    ├─────────────────────────────────────────────┘                                               │
            4    └─────────────────────────────────────────────────────────────────────────────────────────────┘

Dans cet exemple j'aurai sept partitions /dev/sda1 ... /sda7 dont six utiles la partition étendue /dev/sda4 ne servant qu'à définir des trois partitions logiques dont le MBR ne peut pas contenir les définitions.

Il existe des outils graphiques pour gérer les partitions, mais comme d'habitude, il est d'intéressant d'utiliser une commande en ligne de commande.

Exemple : Si je veux imprimer, sauvegarder une table de partitions, la ligne de commandes est plus facile d'utilisation.




 2.1.1 : cfdisk GESTION TABLES PARTITIONS DISQUES.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cfdisk   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel de l'administrateur Linux (8)
Updated: 3 juin 1995
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cfdisk - Programme de manipulation de table de partitions pour Linux sous curses  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cfdisk [-avz] [-c cylindres ] [-h têtes ] [-s secteurs-par-piste ] [-P opt ] [ device ]  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cfdisk est un programme sous curses destiné au partitionnement d'un disque dur. Le device peut avoir les valeurs suivantes:

/dev/hda [valeur par défaut]
/dev/hdb
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd

cfdisk essaye d'abord de déterminer la géométrie du disque dur. S'il ne peut y parvenir, le programme se termine après avoir affiché un message d'erreur. Ceci ne devrait arriver que lors du partitionnement d'un disque SCSI dont la carte ne comporte pas de BIOS. Pour contourner le problème, vous devrez entrer le nombre de cylindres, têtes et secteurs-par-piste sur la ligne de commande. Ensuite, cfdisk essayera de lire la table de partition du disque. S'il est incapable de l'analyser, une erreur sera affichée et le programme se terminera. Ceci peut être causé par une mauvaise détection de la géométrie du disque, qui devra être corrigée à la ligne de commande. Un autre moyen de régler ce problème est d'utiliser l'option -z: cfdisk
 ignorera la table de partition actuelle du disque.


      L'écran principal est composé de quatre sections, de haut en bas: l'entête, les partitions, la ligne de commande et une ligne de message d'avertissement. L'entête contient le nom du programme et son numéro de version, ainsi que le nom du disque et sa géométrie. La section « partitions » affiche en permanence la table de partitions actuelle. La ligne de commande est l'endroit où commandes et textes sont saisis. Les commandes possibles sont en général affichées entre crochets. La ligne d'avertissement est en général vide, sauf si une information importante doit être affichée. La partition sélectionnée est affichée en vidéo inverse (sauf si l'option -a
 est donnée). Toutes les commandes spécifiques aux partitions ne s'appliquent qu'a la partition sélectionnée.


      Le format des entrées dans la table des partitions est, de gauche à droite: Nom, Indicateurs (Flags), Type de Partition, Type de système de fichiers et Taille. Le nom est le nom de device de la partition. Les Indicateurs peuvent être Boot, qui indique que la partition est bootable ou NC pour "Non compatible avec DOS ou OS/2". DOS, OS/2 et peut-être d'autres systèmes d'exploitation imposent d'avoir le premier secteur de la première partition et toutes les partitions logiques qui commencent sur la deuxième tête. Ceci fait perdre du deuxième au dernier secteur de la première piste de la première tête (le premier secteur étant pris par la table de partitions elle-même). cfdisk permet de récupérer ces secteurs « perdus » avec la commande maximiser (m).

Note: fdisk(8) et quelques versions DOS anciennes créaient toutes les partitions avec un nombre de secteurs déjà maximisé. Pour plus d'informations, voir la commande maximiser ci-dessous. Le type de partition peut être Primary ou Logical(Primaire/Logique). Pour l'espace non alloué sur le disque, le type de partition peut être Pri/Log , ou vide (si l'espace est inutilisable). L'entrée Type de système de fichier affiche le nom du système de fichier utilisé sur la partition s'il est connu. Sinon, Unknown et la valeur hexadécimale du type de système de fichier sera affiché. Un cas spécial survient lorsqu'il y a des partitions qui ne peuvent être utilisées (lorsque toutes les partitions primaires sont déjà allouées). Quand ce cas est détecté, le type de système de fichier affiché est Unusable(Inutilisable). L'entrée Taille affiche la taille de la partition en méga-octets (par défaut). Elle peut également être affichée en secteurs ou cylindres (voir plus bas pour la commande de changement de taille). Si un astérisque (*) apparaît à la suite de la taille d'une partition, cela signifie que cette partition n'est pas alignée sur des limites de cylindres.

 




AVERTISSEMENT CONCERNANT DOS 6.x   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil


      La commande FORMAT de DOS 6.x cherche des informations dans le premier secteur de la section de données de la partition et traite cette information comme plus importante que l'information de la table de partition. DOS FORMAT attend de DOS FDISK d'effacer les premiers 512 octets de la section de données d'une partition chaque fois que sa taille change. DOS FORMAT cherchera cette information même si l'indicateur /U est donné -- Nous considérons ceci comme un bogue dans DOS FORMAT et DOS FDISK.
      En conclusion, si vous devez utiliser cfdisk ou fdisk pour changer la taille d'une partition DOS, alors vous devrez aussi utiliser dd pour effacer les premiers 512 octets de la partition avant d'utiliser DOS FORMAT pour la formater. Par exemple, si vous utilisez .B cfdisk pour faire une partition DOS sur /dev/hda1, alors (après être sorti de .B cfdisk et avoir rebooté Linux pour être sur que les informations de la table de partitions sont valides) vous devrez utiliser la commande « dd if-/dev/zero of-/dev/hda1 bs-512 count-1 » pour remplir de zéros les 512 premiers octets de la partition.

SOYEZ TRÈS VIGILANT si vous utilisez la commande dd , car une simple faute de frappe dans la ligne de commande peut détériorer toutes les données de votre disque.

SOYEZ TRÈS VIGILANT si vous utilisez la commande dd , car une simple faute de frappe dans la ligne de commande peut détériorer toutes les données de votre disque.

Dans la mesure du possible, vous devrez essayer de toujours utiliser un programme de création de partitions spécifique à votre système d'exploitation. Par exemple, créez des partitions DOS avec le programme DOS FDISK, et des partitions Linux avec les programmes linux fdisk ou cfdisk.

 




COMMANDES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil


      Les commandes de cfdisk peuvent être entrées en tapant sur la touche correspondante (il n'est pas nécessaire de taper "Entrée" après chaque commande). Voici la liste des commandes disponibles:

b

Active/Désactive l'indicateur bootable d'une partition. Cela vous permet de choisir quelle partitions primaires sont bootables sur le disque)

d

Détruire la partition. Cela transformera la partition en espace libre, et l'ajoutera aux partitions adjacentes si elles sont également libres. Une partition marquée comme étant vide ou inutilisable ne peut être détruite.

g

Changement de la géométrie du disque (cylindres, têtes ou secteurs par piste). ATTENTION : N'utilisez cette commande que si vous savez VRAIMENT ce que vous faites.

Ces paramètres peuvent également être changés par la ligne de commande. Durant le changement de géométrie, vous pouvez choisir de changer le nombre de cylindres (c),detêtes (h) ou de secteurs par piste (s).Lavaleurpardéfautseraaffichéeauprompt ;vouspouvezl'accepterentapant Entrée ou sortir sans changement de paramètres en tapant ESC. Pour changer la valeur par défaut, entrez simplement
      la valeur désirée et validez en appuyant sur Entrée. Les paramètres modifiés ne prennent pas effet avant le retour au menu principal. Si vous changez la géométrie du disque de telle manière que sa capacité devient plus grande, alors de l'espace libre sera affiché à la fin du disque. Dans le cas contraire, les partitions qui commencent après le dernier secteur sont effacées, et la dernière partition du disque est tronquée pour se terminer sur le dernier secteur.

h

Affiche un écran d'aide (en Anglais).

m

Maximise l'utilisation du disque de la partition. Cette commande récupérera l'espace inutilisé entre la table de partition et le début de la partition, mais au prix de rendre cette partition incompatible avec DOS, OS/2 et éventuellement d'autres systèmes.

Par défaut, cfdisk crée des partitions compatibles DOS, OS/2, etc...

n

Créer une nouvelle partition à partir d'espace libre. Si le type de la partition est Primary ou Logical, une partition de ce type sera créée, en revanche, si le type est Pri/Log, le programme vous demandera le type de partition souhaitée. Sachez que (1) seulement quatre partitions primaires peuvent être créées et que (2) vu qu'il ne peut y avoir qu'une seule partition étendue qui contient les partitions logiques, toutes les partitions logiques seront contiguës (sans partition primaire intercalée). cfdisk demande ensuite la taille de la partition à créer. La taille par défaut est la taille maximum de cette partition en fonction de l'espace libre disponible, en méga-octets. Vous pouvez soit taper Entrée pour accepter cette taille, soit entrer une taille différente au prompt. cfdisk accepte les tailles en méga-octets (M) [défaut], kilo-octets (K), cylindres (C) ou secteurs (S) en entrant le nombre immédiatement suivi de la lettre correspondante (M, K, C ou S). Si la partition remplit l'espace disponible, la partition sera créée et vous serez ramené au menu principal. Sinon, la partition pourra être placée au début ou à la fin de la plage libre, et cfdisk demandera où placer la partition. Une fois la partition créée, cfdisk ajustera automatiquement le type des autres partitions si toutes les partitions primaires sont déjà utilisées.

p

Afficher la table de partitions à l'écran ou dans un fichier. Les formats suivants sont disponibles :

r

données brutes (exactement ce qui sera écrit sur le disque)

s

Table de partitions triée par secteurs

t

Table de partitions au format brut.

Le format Données brutes (Raw data format) affiche les secteurs qui seraient écrits sur le disque si la commande w rite (Écriture) était sélectionnée. D'abord la table des partitions primaires est affichée, suivie par les tables de partitions associées à chaque partition logique. Les données sont affichées en hexadécimal, octet par octet à raison de 16 octets par ligne.

Le format Table de partition triée par secteurs (partition table in sector order format) affichera la table de partitions triée par numéro de secteur. Les champs de gauche à droite sont : numéro de la partition, type de partition, premier secteur, dernier secteur, décalage (offset) entre le premier secteur de la partition et le début des données, longueur de la partition, type de système de fichier (avec le type en hexadécimal entre parenthèses) et les indicateurs (avec leurs valeur hexadécimales entre parenthèses). En plus des partitions primaires et logiques, l'espace libre et inutilisable sera affiché, et la partition étendue sera affichée avant la première partition logique.

Si une partition ne commence ou ne se termine pas sur une bordure de cylindre, ou si la taille de cette partition n'est pas divisible par la taille d'un cylindre, un astérisque (*) sera affiché après le nombre de secteurs. Cela indique en général que la partition a été créée par un système d'exploitation qui soit n'aligne pas les partitions sur les bordures des cylindres, soit qui a utilisé une géométrie de disque différente. Si vous connaissez la géométrie utilisée par l'autre système, vous pouvez l'entrer avec la commande g .

Pour la première partition du disque et toutes les partitions logiques, si le décalage (offset) à partir du début de la partition n'est pas égal au nombre de secteurs par piste (i.e.: les données ne commencent pas sur la première tête), un signe dièse ( # ) est affiché après le décalage. Cela correspond à l'indicateur NC du menu principal.

Le format table de partition au format brut (partition table in raw data format) affichera la table de partitions triée par numéro de partition. Les espaces libres ou inutilisés n'apparaîtront pas. Les champs, de gauche à droite, sont le numéro de la partition, les indicateurs (en hexa), tête, secteur et cylindre de début, indicateur de système de fichier (en hexa), tête, secteur et cylindre de fin, et nombre de secteurs de la partition. L'information dans cette table peut directement être traduite dans le format brut .

Les entrées de la table de partition n'ont que 10 bits pour représenter les cylindres de début et de fin. Donc, quand le numéro absolu de secteur de début (resp. : de fin) est sur un cylindre de numéro supérieur de 1 023, les valeurs maximales pour des têtes, secteurs, cylindres de début (resp. : de fin) sont affichés.

C'est la méthode utilisée par OS/2, cela corrige donc les problèmes du FDISK OS/2 qui réécrit la table de partition lorsqu'elle n'est pas dans ce format. Puisque Linux et OS/2 utilisent le nombre de secteurs absolu, les valeurs en têtes, secteurs, cylindres de début (resp. : de fin) ne sont pas utilisées.

q

Quitter le programme.

t

Changer le type de système de fichiers. Par défaut toutes les partitions sont créées comme partitions Linux, mais cfdisk permet de changer la valeur hexa du système de fichier. Une liste des systèmes de fichiers connus est affichée. Vous pouvez taper le type de système de fichier désiré au prompt, ou accepter la valeur par défaut [Linux].

u

Changement des unités utilisées pour afficher la taille. Alternativement : méga-octets, secteurs et cylindres.

W

Écrire la table de partitions sur le disque. (Notez qu'il faut entrer un W majuscule). Étant donné que cette commande peut détruire des données sur votre disque, vous devez confirmer ou infirmer l'ordre d'écriture en entrant 'yes' ou 'no'. Si vous entrez 'yes', cfdisk écrira la table de partition sur le disque et enverra l'ordre au noyau de relire la table de partitions à partir du disque. La relecture de la table marche dans la plupart des cas, mais je l'ai vu rater. Ne paniquez pas.

Tout rentrera dans l'ordre dès que vous rebooterez le système. Dans tous les cas, je recommande de toujours rebooter le système -- juste pour être sur.

Flèche vers le Haut

Flèche vers le Bas Déplace le curseur vers la partition suivante ou précédente. S'il y a plus de partitions qu'il ne peut s'en afficher simultanément, vous pourrez afficher le groupe de partition précédent (resp. : suivant) en déplaçant le curseur vers le haut (resp.: bas) sur la dernière (resp. : première) partition affichée à l'écran.

Ctrl-l

Redessine l'écran. Au cas où un problème surviendrait à l'affichage, l'écran est rafraîchi à partir de l'écran principal.

?

Affiche une page d'aide (en Anglais).

Toutes les commandes peuvent être entrées en minuscule ou majuscule (à l'exception de W rite ). Lorsque vous êtes dans un menu ou à un prompt pour entrer un nom de fichier, la touche ESC vous ramène au menu principal.
 



OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-a

Utilise une flèche à la place de la vidéo inverse pour indiquer la partition sélectionnée.

-v

Affiche le numéro de version et le copyright.

-z

Démarre avec une table de partitions vide. Cette option est utilisée lorsque l'on veut entièrement repartitioner le disque. Note: Cette option ne remet pas à zéro la table de partitions sur le disque ; le programme démarre seulement sans lire la table existante.

-c cylindres

-h têtes

-s secteurs-par-piste

Utiliser un autre nombre de cylindres, têtes et secteurs par piste que ceux lus à partir du BIOS. Si votre BIOS ou carte contrôleur ne peut donner ces informations ou donne des informations incorrectes, utilisez ces options pour donner la géométrie du disque.

-P opt

Affiche la table de partitions dans les formats spécifiés.

opt peut être une ou plusieurs des options "r", "s" ou "t". Voir la commande p rint (ci-dessus) pour avoir plus d'informations sur les formats d'affichage.

 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fdisk(8)  




BOGUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La version courante ne supporte qu'un seul disque (modification future prévue)  




AUTEUR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Kevin E. Martin <martin@cs.unc.edu>  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Vincent Renardias <vincent@ldsol.com> 1999  




AVERTISSEMENT SUR LA TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Il est possible que cette traduction soit imparfaite ou périmée. En cas de doute, veuillez vous reporter au document original en langue anglaise fourni avec le programme.





 2.1.2 : fdisk GESTION TABLES PARTITIONS DISQUES.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fdisk   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: Manuel de l'utilisateur Linux (8)
Updated: 11 juin 1998
Sommaire  




NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fdisk - Manipulateur de tables de partitions pour Linux  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fdisk [-u] [-b taille-secteur] [-C cyls] [-H têtes] [-S sects] périphérique

fdisk -l [-u] [ périphérique ...]

fdisk -s partition ...

fdisk -v  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les disques durs peuvent être divisés en un ou plusieurs disques logiques appelés partitions. Cette division est décrite dans la table des partitions trouvée sur le secteur 0 du disque.

Dans le monde BSD, on parle de « tranches de disque » (disk slices) et d'« étiquette de disque » (disklabels).

Linux a besoin d'au moins une partition, à savoir pour son système de fichiers racine. Il peut utiliser des fichiers et/ou des partitions d'échange (swap) d'échange, mais ces dernières sont plus efficaces. C'est pourquoi on dédie en général une seconde partition Linux comme partition d'échange. Sur le matériel compatible Intel, le BIOS qui démarre le système ne peut souvent accéder qu'aux 1024 premiers cylindres du disque. Pour cette raison, les personnes possédant des disques volumineux créent souvent une troisième partition, d'à peine quelques Mo de large, montée typiquement en /boot, pour y conserver l'image du noyau et quelques fichiers auxiliaires nécessaires au démarrage, afin de s'assurer que ce matériel soit accessible depuis le BIOS. Il peut y avoir des raisons de sécurité, de facilité d'administration et de sauvegarde, ou de tests qui nécessitent d'utiliser plus que le nombre minimal de partitions.

fdisk (dans la première forme d'invocation) est un programme piloté par menu utilisé pour la création et la manipulation de tables de partitions. Il comprend les tables de partitions de type DOS, et les étiquettes de disque BSD ou SUN.

fdisk ne comprend pas les table de partitions GUID (GPT) et n'est pas conçue pour les grandes partitions. Pour les cas particuliers, veuillez utiliser la commande parted(8) du projet GNU.

Le périphérique est en général l'un des suivants :


/dev/hda
/dev/hdb
/dev/sda
/dev/sdb

(/dev/hd[a-h] pour les disques IDE, /dev/sd[a-p] pour les disques SCSI, /dev/ed[a-d] pour les disques ESDI, /dev/xd[ab] pour les disques XT). Un nom de périphérique référence le disque entier.

La partition est un nom de périphérique suivi d'un numéro de partition. Par exemple, /dev/hda1 est la première partition du premier disque dur IDE du système. Les disques peuvent contenir jusqu'à 15 partitions. Voyez également /usr/src/linux/Documentation/devices.txt.

Une étiquette de disque de type BSD/SUN peut décrire 8 partitions, dont la troisième devrait être une partition de « disque entier ». Ne faites pas démarrer de partition utilisant réellement son premier secteur sur le cylindre 0 (comme une partition d'échange), car cela détruirait l'étiquette du disque.

Une étiquette de disque de type IRIX/SGI peut décrire 16 partitions, dont la onzième devrait être une partition entière de « volume », alors que la neuvième devrait être un « en-tête de volume ». L'en-tête de volume couvre également la table des partitions, c.-à-d. qu'il débute au bloc zéro et s'étend par défaut sur 5 cylindres. L'espace restant dans l'en-tête de volume peut être utilisé par des entrées de répertoires d'en-tête. Aucune partition ne peut empiéter sur l'en-tête de volume. Ne modifiez pas son type ni ne créez de système de fichiers dessus, car vous perdriez alors la table des partitions. N'utilisez ce type d'étiquette que lorsque vous travaillez sur des machines IRIX/SGI ou avec des disques IRIX/SGI sous Linux.

Une table de partitions de type DOS peut décrire un nombre illimité de partitions. Dans le secteur 0, il y a de la place pour décrire 4 partitions (appelées « primaires »). L'une d'entre elles peut être une partition étendue ; c'est une sorte de boîte contenant des partitions logiques, dont les descripteurs sont trouvés dans une liste chaînée de secteurs, chacun précédant les partitions logiques correspondantes. Les quatre partitions primaires, présentes ou pas, portent les numéros 1-4. Les partitions logiques sont numérotées à partir de 5.

Dans une table de partitions de type DOS, le décalage de départ et la taille de chaque partition sont conservés de deux façons : comme un nombre absolu de secteurs (sur 32 bits), ou comme un triplet Cylindres/Têtes/Secteurs (sur 10+8+6 bits). La première manière fonctionne bien - avec des secteurs de 512 octets, cela marchera jusqu'à 2 To. La seconde possibilité souffre de deux problèmes différents. Primo, ces champs C/T/S ne peuvent être remplis que lorsque le nombre de têtes et le nombre de secteurs par piste sont connus. Secundo, même si l'on connaissait ces nombres, les 24 bits qui sont disponibles ne suffiraient pas. DOS utilise uniquement C/T/S, Windows utilise les deux, Linux n'utilise jamais C/T/S.

Si c'est possible, fdisk déterminera automatiquement la géométrie du disque. Ce n'est pas nécessairement la géométrie physique du disque (en effet, les disques modernes ne possèdent pas à proprement parler quoi que ce soit pouvant être assimilé à une géométrie physique, et encore moins quelque chose pouvant être décrit par la forme simpliste Cylindres/Têtes/Secteurs), mais c'est la géométrie de disque qu'utilise MS-DOS pour la table des partitions.

D'habitude, tout se passe bien par défaut, et il n'y a aucun problème si Linux est le seul système sur le disque. Néanmoins, si le disque doit être partagé avec d'autres systèmes d'exploitation, c'est en général une bonne idée de laisser créer au moins une partition par un fdisk d'un autre système d'exploitation. Quand Linux démarre, il examine la table des partitions, et essaie de déduire quelle (fausse) géométrie est requise pour une bonne coopération avec les autres systèmes.

Chaque fois qu'une table des partitions est écrite, un test de cohérence est effectué sur les entrées de la table des partitions. Ce test vérifie que les débuts et fins physiques et logiques sont identiques, et que la partition commence et se termine sur une limite de cylindre (sauf pour la première partition).

Certaines versions de MS-DOS créent une première partition qui ne commence pas sur une limite de cylindre, mais sur le secteur 2 du premier cylindre. Les partitions commençant au cylindre 1 ne peuvent débuter sur une limite de cylindre, mais il est peu probable que cela pose problème à moins que vous n'ayez également OS/2 sur votre machine.

Un sync(2) et un ioctl(2) BLKRRPART (relire la table des partitions à partir du disque) sont exécutés avant la sortie quand la table des partitions a été mise à jour. Il y a longtemps, il était nécessaire de redémarrer après l'utilisation de fdisk. Je ne crois pas que cela soit encore le cas - en effet, redémarrer trop rapidement pourrait causer la perte de données non encore écrites sur disque. Notez que le noyau et le matériel disque peuvent tous deux placer des données en mémoire tampon.  




NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

 




Notes DOS 6.x   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande DOS 6.x FORMAT recherche certaines informations sur le premier secteur de la zone de données de la partition, et suppose qu'elles sont plus fiables que celles contenues dans la table des partitions. Le FORMAT DOS suppose que FDISK DOS efface les 512 premiers octets de la zone de données de la partition à chaque fois qu'un changement de taille se produit. FORMAT DOS regardera cette information additionnelle même si le drapeau /U est fourni -- nous considérons que c'est un bogue dans les FORMAT et FDISK DOS.

Si vous utilisez cfdisk ou fdisk pour modifier la taille d'une entrée DOS de la table des partitions, alors vous devrez également utiliser dd pour mettre à zéro les 512 premiers octets de cette partition avant d'utiliser FORMAT DOS pour formater cette partition. Par exemple, si vous avez utilisé cfdisk pour créer une entrée DOS dans la table des partitions pour /dev/hda1, alors (après la sortie de fdisk ou de cfdisk et après avoir redémarré Linux afin que les informations sur la table des partitions soient valides) vous devriez utiliser la commande « dd if=/dev/zero of=/dev/hda1 bs=512 count=1 » pour mettre à zéro les 512 premiers octets de la partition.

SOYEZ EXTRÊMEMENT PRUDENT si vous utilisez la commande dd, car une petite faute de frappe peut rendre toutes les données de votre disque inutilisables.

Pour obtenir les meilleurs résultats, vous devriez toujours utiliser un programme de partitionnement spécifique au système d'exploitation. Par exemple, vous devriez créer des partitions DOS avec le programme FDISK DOS, et des partitions Linux avec l'un des programmes Linux fdisk ou cfdisk.  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-b taille-secteur

Spécifier la taille des secteurs du disque. Les valeurs valides sont 512, 1024 et 2048. (Les noyaux récents connaissent la taille de secteur. N'utilisez cette option que sur des noyaux anciens ou pour passer outre l'avis du noyau.)

-C cylindres

Indique le nombre de cylindres du disque. Je ne vois pas à quoi ça peut servir.

-H têtes

Indique le nombre de tête du disque. (Pas le nombre physique, bien sûr, mais celui utilisé pour la table de partitions.) Valeurs raisonables : 255 et 16.

-S secteurs

Indique le nombre de secteurs par piste du disque. (Pas le nombre physique, bien sûr, mais celui utilisé pour la table de partitions.) Une valeur raisonnable est 63.

-l

Lister les tables de partitions des périphériques spécifiés et ensuite se terminer. Si aucun périphérique n'est fourni, ceux mentionnés dans /proc/partitions (si ce fichier existe) sont utilisés.

-u

Lors du listage des tables de partitions, donner les tailles en secteurs plutôt qu'en cylindres.

-s partition

La taille de la partition (en blocs) est affichée sur la sortie standard.

-v

Afficher le numéro de version de fdisk et se terminer normalement.

 



BOGUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Il existe plusieurs programmes *fdisk. Chacun a ses points forts et ses points faibles. Essayez-les dans l'ordre cfdisk, fdisk et sfdisk. (En effet, cfdisk est un beau programme qui a des exigences strictes sur les tables de partitions qu'il accepte, et qui produit des tables de partitions de haute qualité. Utilisez-le si vous le pouvez. fdisk est un programme bogué qui fait des choses assez floues - d'habitude, il arrive à produire des résultats raisonnables. Son seul avantage est qu'il supporte les étiquettes de disque BSD, et d'autres tables de partitions non DOS. Évitez-le si vous le pouvez. sfdisk est destiné uniquement aux hackers - l'interface utilisateur est quelque peu rebutante, mais il travaille mieux que fdisk et est plus puissant que fdisk et cfdisk. De plus, il peut être utilisé de façon non interactive.)

Depuis quelque temps il y a aussi parted. L'interface de cfdisk est plus jolie, mais parted fait bien plus : il ne redimensionne pas seulement les partitions, il redimensionne également les systèmes de fichiers qui y sont installés.

L'étiquette de disque de type IRIX/SGI n'est pas supportée actuellement par le noyau. De plus, les répertoires d'en-tête IRIX/SGI ne sont pas encore entièrement supportés.

Il manque l'option « écrire la table des partitions dans un fichier ».  




DISPONIBILITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande fdisk fait partie du paquetage util-linux-ng et est disponible à l'adresse ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

cfdisk(8), parted(8), sfdisk(8)  




TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Frédéric Delanoy <delanoy_f AT yahoo DOT com> le 14 août 2000 et révisée le 26 mai 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 fdisk ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.





 2.1.3 : parted GESTION TABLES PARTITIONS DISQUES.   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande parted possède une option -l qui permet de visualiser le type de système de fichiers (formatage) alors que les autres commandes s'arrêtent au type de partition (théorique).

Exemple de parted -l
          Numéro  Début   Fin     Taille  Type     Système de fichiers  Fanions    
           1      32,3kB  80,0GB  80,0GB  primary  ext3                              
           2      80,0GB  160GB   80,0GB  primary  ext3                              
           3      160GB   160GB   8225kB  primary  ntfs                              

parted   Début   Suivant   Sommaire   Préc.page.lue   Accueil

Section: GNU Parted Manual (8)
Updated: 2007 March 29
Sommaire  




NAME   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

GNU Parted - a partition manipulation program  




SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

parted [options] [device [command [options...]...]]  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

parted is a disk partitioning and partition resizing program. It allows you to create, destroy, resize, move and copy ext2, ext3, linux-swap, FAT, FAT32, and reiserfs partitions. It can create, resize, and move Macintosh HFS partitions, as well as detect jfs, ntfs, ufs, and xfs partitions. It is useful for creating space for new operating systems, reorganising disk usage, and copying data to new hard disks.

This manual page documents parted briefly. Complete documentation is distributed with the package in GNU Info format; see near the bottom.  




OPTIONS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

-h, --help

displays a help message

-i, --interactive

prompts for user intervention

-l, --list

lists partition layout on all block devices

-m, --machine

displays machine parseable output

-s, --script

never prompts for user intervention

-v, --version

displays the version

 



COMMANDS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

[device]

The block device to be used. When none is given, parted will use the first block device it finds.

[command [options]]

Specifies the command to be executed. If no command is given, parted will present a command prompt. Possible commands are:

check partition

Do a simple check on partition.

cp [source-device] source dest

Copy the source partition's filesystem on source-device (or the current device if no other device was specified) to the dest partition on the current device.

help [command]

Print general help, or help on command if specified.

mkfs partition fs-type

Make a filesystem fs-type on partition. fs-type can be one of "fat16", "fat32", "ext2", "linux-swap", or "reiserfs".

mklabel label-type

Create a new disklabel (partition table) of label-type. label-type should be one of "bsd", "dvh", "gpt", "loop", "mac", "msdos", "pc98", or "sun".

mkpart part-type [fs-type] start end

Make a part-type partition with filesystem fs-type (if specified), beginning at start and ending at end (by default in megabytes). fs-type can be one of "fat16", "fat32", "ext2", "HFS", "linux-swap", "NTFS", "reiserfs", or "ufs". part-type should be one of "primary", "logical", or "extended".

mkpartfs part-type fs-type start end

Make a part-type partition with filesystem fs-type beginning at start and ending at end (by default in megabytes).

move partition start end

Move partition so that it begins at start and ends at end. Note: move never changes the minor number.

name partition name

Set the name of partition to name. This option works only on Mac, PC98, and GPT disklabels. The name can be placed in quotes, if necessary.

print

Display the partition table.

quit

Exit from parted.

rescue start end

Rescue a lost partition that was located somewhere between start and end. If a partition is found, parted will ask if you want to create an entry for it in the partition table.

resize partition start end

Resize the filesystem on partition so that it begins at start and ends at end (by default in megabytes).

rm partition

Delete partition.

select device

Choose device as the current device to edit. device should usually be a Linux hard disk device, but it can be a partition, software raid device, or an LVM logical volume if necessary.

set partition flag state

Change the state of the flag on partition to state. Supported flags are: "boot" (Mac, MS-DOS, PC98), "root" (Mac), "swap" (Mac), "hidden" (MS-DOS, PC98), "raid" (MS-DOS), "lvm" (MS-DOS), "lba" (MS-DOS), and "palo" (MS-DOS). state should be either "on" or "off".

unit unit

Set unit as the unit to use when displaying locations and sizes, and for interpreting those given by the user when not suffixed with an explicit unit. unit can be one of "s" (sectors), "B" (bytes), "kB", "MB", "GB", "TB", "%" (percentage of device size), "cyl" (cylinders), "chs" (cylinders, heads, sectors), or "compact" (megabytes for input, and a human-friendly form for output).

version

Display version information and a copyright message.

 



KNOWN ISSUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

ext3 filesystem resizing does not currently work, please use resize2fs(8) instead.

Resizing partitions with an ext3 filesystem will not generally work because of the above issue. Use resize2fs(8) to resize the filesystem and resize the partition manually using fdisk(8) or a similar tool. For LVM situations, you will need to use the LVM commands to resize the LVM elements.

 




REPORTING BUGS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Report bugs to <bug-parted@gnu.org>  




SEE ALSO   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fdisk(8), mkfs(8), The parted program is fully documented in the info(1) format GNU partitioning software manual.  




AUTHOR   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

This manual page was written by Timshel Knoll <timshel@debian.org>, for the Debian GNU/Linux system (but may be used by others).





 2.2 : GESTION DES UUID ET LABELS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Il existe deux type de label de partition


Il existe plusieurs commandes de gestion des label.
Il est à noter que la création d'UUID est assurée par le formattage de la partition.





 2.2.1 : findfs Recherche d'un device à partir de son UUID 
    ou son LABEL
  Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

findfs LABEL=<label>|UUID=<uuid>

findfs LABEL=home
/dev/sdc2




 2.2.2 : blkid Affichage UUID et LABEL de tous les devices. 
    Recherche device par son LABEL ou son UUID
  Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

blkid sans option affiche tous les UUID/labels connus par le système en temps réel.

blkid -t UUID|LABEL|TYPE=CRITERE_RECHERCHE Recherche le device d'un UUID, d'un LABEL, d'un TYPE recherché.

blkid
/dev/sda6:  LABEL="commun1"   UUID="ab59c0ef-72ff-45ae-9ad1-180896727496" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda1:  LABEL="/boot1"    UUID="69ae070e-5119-4fdf-b299-57ec161d1ab3" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda2:  LABEL="f9"        UUID="5250a6ad-5abf-46dd-97c9-593dca0475fc" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda3:  TYPE="swap" LABEL="swap1" UUID="a32c8e49-fae2-41c8-9e75-b27b2c5497c0" 
/dev/sda5:  LABEL="f10"       UUID="30720306-9c36-4029-8c0a-33eef8b6bfb9" TYPE="ext3" SEC_TYPE="ext2" 
/dev/sda7:  LABEL="mandriva"  UUID="79eb551f-9131-45d2-bb60-a2579f20ba05" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda8:  LABEL="ubuntu"    UUID="65175614-8839-436e-8b13-cc9901ee7a96" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb2:  LABEL="f9b"       UUID="5250a6ad-5abf-46dd-97c9-593dca0475fc" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb7:  LABEL="mandrivab" UUID="57a217bd-1052-41a0-9383-06bff4b0dedc" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb8:  LABEL="ubuntub"   UUID="65175614-8839-436e-8b13-cc9901ee7a96" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb9:  LABEL="commun2b"  UUID="fd6e9783-9dec-490f-a9aa-effe12aeedde" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb6:  LABEL="commun1b"  UUID="6963cb0c-86f8-49a8-aee3-b485e1413961" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda9:  LABEL="commun2"   UUID="fd6e9783-9dec-490f-a9aa-effe12aeedde" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda10: LABEL="libreb"    UUID="d67901b0-a123-47d8-8589-266b0d0e1126" TYPE="ext2" 
/dev/sdb1:  LABEL="/boot1b"   UUID="69ae070e-5119-4fdf-b299-57ec161d1ab3" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb5:  LABEL="f10b"      UUID="30720306-9c36-4029-8c0a-33eef8b6bfb9" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb10: LABEL="commun3b"  UUID="06306292-228b-46ca-93bf-b4b67c64c419" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb13: LABEL="commun6b"  UUID="741f2129-4882-4a37-ba17-5c50b98a954c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb12: LABEL="commun5b"  UUID="f4ad914e-270e-4372-90d8-3ee13a4e540e" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdd1:  LABEL="commun6"   UUID="bdcaf55a-d2b5-4e58-b0ff-b893317272e6" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdc1:  LABEL="commun3"   UUID="ad67d603-972e-4b36-9e0d-28ebb99c8a59" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdd2:  LABEL="commun5"   UUID="67e8f00e-6b2f-45f1-9d98-8e0013723096" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb11: LABEL="commun4b"  UUID="68f6a65a-ec25-4c98-a8b1-e014bacbc3ae" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdc2:  LABEL="commun4"   UUID="8113de67-1aff-4ad1-84c7-e40165ddacdd" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdb14: LABEL="communs_b" UUID="15aac43f-8643-4751-aa39-94391ea7c393" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdd3:  UUID="43A25FC64E234F4E" TYPE="ntfs" LABEL=ma_cle
/dev/sr0:   LABEL="F10-i686-Live" TYPE="iso9660" 

Recherche d'un device par son LABEL/UUID
blkid -t LABEL=commun4
/dev/sdc2: LABEL="commun4" UUID="8113de67-1aff-4ad1-84c7-e40165ddacdd" SEC_TYPE="ext2" TYPE="ext3" 

blkid -t UUID=8113de67-1aff-4ad1-84c7-e40165ddacdd
/dev/sdc2: LABEL="commun4" UUID="8113de67-1aff-4ad1-84c7-e40165ddacdd" SEC_TYPE="ext2" TYPE="ext3" 




 2.2.3 : vol_id Affichage UUID et LABEL d'un device   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

/lib/udev/vol_id /dev/sda5
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=30720306-9c36-4029-8c0a-33eef8b6bfb9
ID_FS_UUID_ENC=30720306-9c36-4029-8c0a-33eef8b6bfb9
ID_FS_LABEL=f10
ID_FS_LABEL_ENC=f10
ID_FS_LABEL_SAFE=f10
───────────────────────────────────────────────────

/lib/udev/vol_id --label /dev/sde1
ma_cle_usb




 2.2.4 : e2label ntfslabel dosfslabel Lecture/Ecriture label   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Selon le type de système de fichier (ext2/ext3, ntfs, vfat/dos) il faudra utiliser la commande appropriée
e2label    nom_device [ nom_label ]
ntfslabel  nom_device [ nom_label ]
dosfslabel nom_device [ nom_label ]

Si le «nom_label» n'est pas spécifié, ces commandes affichent le label actuel.




 2.2.5 : tune2fs Ecriture Label/UUID   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

tune2fs fait partie de la suite e2fsprogs dédiée aux systèmes de fichiers ext2/ext3.

tune2fs -L nom_label nom_device

tune2fs -U uuid       Modifie le LABEL d'une partition
tune2fs -U clear      Efface l'UUID d'une partition
tune2fs -U random     Génère un UUID de façon aléatoire
tune2fs -U time       Génère un UUID à partir de la date système

Il est à noter que tune2fs peut faire beaucoup plus de choses que gérer des label. Voir la commande tune2fs ou un autre exemple dans le chapitre fsck Vérification/Réparation d'une partition




 2.2.6 : dumpe2fs Informations Système de fichier ext2/ext3   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

dumpe2fs nom_device              ::= Affichage (très?) détaillé des informations de la partition
dumpe2fs -h nom_device           ::= Affichage des informations principales de la partition


EXEMPLE :

dumpe2fs -h /dev/sda5
dumpe2fs 1.41.4 (27-Jan-2009)
Filesystem volume name:   mon_label
Last mounted on:          <not available>
Filesystem UUID:          30720306-9c36-4029-8c0a-33eef8b6bfb9
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1875968
Block count:              7500000
Reserved block count:     375000
Free blocks:              1919442
Free inodes:              1491131
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Wed Oct  1 20:19:01 2008
Last mount time:          Wed Mar 11 06:55:56 2009
Last write time:          Wed Mar 11 06:55:56 2009
Mount count:              2
Maximum mount count:      -1
Last checked:             Tue Mar 10 07:43:29 2009
Check interval:           604800 (1 week)
Next check after:         Tue Mar 17 07:43:29 2009
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:                  256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       114767
Default directory hash:   tea
Directory Hash Seed:      fed8ef03-d25d-4e46-8559-3bef4daf0175
Journal backup:           inode blocks
Taille du journal:        128M




 2.3 : MONTAGE PARTITION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Le montage d'une partition peut être réalisée avec plusieurs mécanismes :







 2.3.1 : mount Montage d'une partition   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Pour monter une partition il faut :

mount [ -t type_systeme_fichier] nom_device point_montage
nom_device     ::= /dev/sdxy
point_montage  ::= nom_repertoire (dont le contenu sera masqué par le contenu de la partition).

Exemple :
mount /dev/sdb1 /mes_donnees
mount /dev/sbd1 /mnt/mes_donnees


Options :
  remount,rw remontage en lecture écriture d'une partition montée en lecture seule. 





 2.3.2 : umount Démontage d'une partition   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Normalement tout partition montée (au démarrage, ou par la suite) devra être démontée, pour garantir l'intégrité du système de fichier, avant le débranchement du périphérique ou l'arrêt du système.

umount /point_montage
umount nom_device

Si l'intégrité d'un système de fichier est perturbée, la commande fsck permettra de rétablir cette intégrité.

ATTENTION : On ne peut démonter qu'un point de montage non utilisé pour savoir quel(s) processus/utilisateurs empêchent le démontage :

lsof /point_montage
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash     6081 root  cwd    DIR   8,49     4096    2 /point_montage
lsof    11767 root  cwd    DIR   8,49     4096    2 /point_montage




 2.3.3 : fsck Vérification/Réparation d'une partition   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

fsck [ -sACVRTNP ] [ -t fstype ] filesys [ ... ] [--] [ fsck-options ]

Aux options de bases de fsck on peut spécifier les options spécifique au système de fichier (voir man fsck.xxxxx), exemple : man fsck.ext2

Exemples :
fsck /dev/sdb1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
mon_label : propre, 26/4890624 fichiers, 3816343/19535032 blocs

fsck -f /dev/sdb1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
Passe 1 : vérification des i-noeuds, des blocs et des tailles
Passe 2 : vérification de la structure des répertoires
Passe 3 : vérification de la connectivité des répertoires
Passe 4 : vérification des compteurs de référence
Passe 5 : vérification de l'information du sommaire de groupe
mon_label : 26/4890624 fichiers (7.7% non contigus), 3816343/19535032 blocs

Pour déclencher périodiquement un/des fsck :

tune2fs -C nombre_montages        ::= Paramétrage d'une périodicité de vérification si l'on dépasse le nombre de montages spécifié.
tune2fs -i intervalle[d|m|w]      ::= Paramétrage d'une périodicité de vérification en nombre de jours(d), semaine(w), mois(m).
et dans /etc/fstab
nom_device point_montage type options fs_freq fs_passno (avec une valeur de fs_passno=1 pour la racine et >=2 pour d'autres partitions)

Dans certains cas (fsck sur la racine notamment) il peut être préférable de booter avec un LiveCD et de lancer le fsck manuellement à partir de ce boot.

Pour forcer le fsck de la racine voir l'option forcefsck dans les options de boot ou la présence d'un fichier /forcefsck.

Cas particulier d'un LVM En cas de LVM (Logical Volum Manager) ce n'est pas la partition LVM qu'il faut tester, mais le volume logique :

lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
......
...............

fsck /dev/VolGroup00/LogVol00




 2.4 : GRUB   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Grub (acronyme de GRand Unified Bootloader) est un programme de multiboot, libre, au même titre que LILO (Linux loader), qui permet de choisir au démarrage d'un ordinateur entre plusieurs systèmes d'exploitations.

grub ou tout du moins la première partie de grub doit pouvoir être contenu dans le MBR.

C'est dans les 446 premiers octets du MBR que ce trouve le code que le BIOS va charger en mémoire pour l'exécuter.

Il est strictement impossible de faire démarrer quoi que ce soit avec seulement 446 octets.

Le travail de démarrage va être découpé en plusieurs étapes.


Pour que stage1 puisse trouver le stage2 situé dans un répertoire d'un file-système, (stage 1 ne sait pas lire un répertoire pour y retrouver un fichier), la solution est de stocker en dur dans le MBR, le ou les blocs où il peut trouver sa suite stage2.

Ceci fonctionne sans problème sauf si pour une raison quelconque, le fichier stage2 est déplacé physiquement dans le file-système. Dans ce cas stage1 ne trouvant pas stage2 grub ne pourra pas démarrer.

La solution optionnelle sera d'utiliser un stage1_5, celui-ci sera une étape intermédiaire entre stage1 et stage2.
Le but d'un stage1_5 (adapté au type de partition ext2, reiserfs, fat, ...) sera de chercher logiquement dans un file-système le fichier stage2 et non plus de le rechercher physiquement comme en absence de stage1_5).

Il y aura donc un fichier stage1_5 par type de file-système, et pour que stage1 le retrouve physiquement sans problème le code du stage1_5 sera stocké dans les blocs qui suivent le MBR et qui sont généralement inutilisés.

NOMMAGE DES DISQUES & PARTITIONS
Comme grub est indépendant des O.S. qu'il va démarrer, il ne peut pas utiliser les conventions des ses O.S.
Il a donc ses propres conventions.
Les informations sur les disques sont directement tirées du BIOS et du partitionnement dans chque MBR de chaque disque.
La numérotation des disques commence à zéro.
La numérotation des partitions commence à zéro.
               hd0       ::= Disque 1                ::= /dev/sda
               hd0,0     ::= Disque 1, partition1    ::= /dev/sda1
               hd0,1     ::= Disque 1, partition2    ::= /dev/sda2
               ...........
               hd1       ::= Disque 2                ::= /dev/sdb
               hd1,0     ::= Disque 2, partition1    ::= /dev/sdb1
               hd1,1     ::= Disque 2, partition2    ::= /dev/sdb2



GRUB DANS LE MBR OU LE Boot Sector D'UNE PARTITION.
NOTA : CES SCHEMAS NE SONT PAS A L'ECHELLE

Installation dans le MBR sans stage1_5
                                            ┌───────────────────────────────────────────────────────────┐
                                            │ Partition /boot ou racine s'il n'y a pas de /boot         │
       ┌─────┬──────────────────────────────┼─────┬─────────────────────────────────────────────────────┤
       | MBR │ Blocs inutilisés             |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |
       └──┬──┴──────────────────────────────┴─────┴───────────────────││────────────────────────────────┘
          └──>── Lien physique ───────────────────────>───────────────┘│                ┌── title xxx
                                                                       └─────>──── Menu ┼── title yyy
                                                                                        ├── title zzz
                                                                                        ├............




Installation dans le MBR avec stage1_5
                                            ┌───────────────────────────────────────────────────────────┐
                                            │ Partition /boot ou racine s'il n'y a pas de /boot         │
       ┌─────┬──────────┬──────────── ──────┼─────┬─────────────────────────────────────────────────────┤
       | MBR │ stage1_5 │ Blocs inutilisés  |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |
       └┬────┴─────││───┴───────────────────┴─────┴────────────────────││───────────────────────────────┘
        └Lien phys.┘│                                                  ││ 
                    └──>── Recherche logique ─────────>────────────────┘│                ┌── title xxx
                                                                        └─────>──── Menu ┼── title yyy
                                                                                         ├── title zzz
                                                                                         ├............




Installation dans le B.S. (boot secteur) d'une partition, cette partition doit avoir un «fanion bootable»
                                            ┌───────────────────────────────────────────────────────────┐
                                            │ Partition /boot ou racine s'il n'y a pas de /boot         │
       ┌─────┬──────────────────────────────┼─────┬─────────────────────────────────────────────────────┤
       | MBR │ Blocs inutilisés             |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |
       └─────┴──────────────────────────────┴──┬──┴────────────────────││───────────────────────────────┘
                                               └─>─ Lien physique ──>──┘│                ┌── title xxx
                                                                        └─────>──── Menu ┼── title yyy
                                                                                         ├── title zzz
                                                                                         ├............




INSTALLATIONS MULTIPLES

Dans les schémas qui suivent on ne parlera plus de la distinction stage1_5/stage2 car elle n'intervient plus ici.

Nous allons distinguer deux cas principaux :



Deuxième installation avec une partition /boot qui sera commune aux autres installations.
Dans ce cas c'est la partition /boot bootable qui lancera son grub, mais le menu de celui-ci contiendra tous les noyaux, initrd,....
Le menu grub.conf contiendra une ligne par combinaison (hdx,y), kernel, initrd.

       ┌───────────────────────────────────────────────────────────┬──────────────────────────────┬────────────────────────────┐
       │ Partition /boot                                           │ Partition / xxx              │ Partition / yyy            │
       ├─────┬─────────────────────────────────────────────────────┼─────┬────────────────────────│────┬───────────────────────┤
       |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |B.S. │                        │B.S.│                       |
       └─────┴─────────────────────│───────────────────────────────┴─────┴───────────│────────────┴────┴───────│───────────────┘
                                   │                                                 │                         |
                                   │                ┌── title hd0,0 xxx ─────────────┘                         │
                                   └─────>──── Menu ┼── title hd0,1 yyy ───────────────────────────────────────┘
                                                    ├── title zzz                              
                                                    ├─...........                              




Deuxième installation dans le B.S. (boot secteur) d'une deuxième partition sans «fanion bootable».

Dans ce cas c'est la partition 1 bootable qui lancera son grub, mais le menu de celui-ci pourra chaîner sur le grub secondaire.

       ┌───────────────────────────────────────────────────────────┬───────────────────────────────────────────────────────────┐
       │ Partition /boot ou racine s'il n'y a pas de /boot         │ Partition secondaire (/boot secondaire ou / secondaire)   │
       ├─────┬─────────────────────────────────────────────────────┼─────┬─────────────────────────────────────────────────────┤
       |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |B.S. │ fic1 fic2 ..... stage2  fic_x fix_y ...             |
       └─────┴─────────────────────│───────────────────────────────┴──┬──┴────────────────────││───────────────────────────────┘
                                   │                                  ├───────────────────────┘│
                                   │                ┌── title xxx     │                        │            ┌── title aaa
                                   └─────>──── Menu ┼── title yyy     │                        └───>── Menu ┼── title bbb
                                                    ├── title zzz     │                                     ├── title ccc
                                                    ├─chainloader──>──┘                                     ├............

Chaque grub (principal ou secondaire) est indépendant des autres.

Les mises à jour de noyau qui entrainent des modifications dans grub.conf se feront dans le grub.conf concerné sans modifier le ou les autres.

La seule intervention manuelle lors d'une installation secondaire est d'ajouter dans le grub.conf une ligne pour le chainage.







 2.4.1 : grub-install script d'installation   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

SYNOPSYS
grub-install [OPTION] device_destination

device_destination  ::= /dev/sdx  | hdy     ::= Installation dans le MBR du disque (pour grub y=x-1).
device_destination  ::= /dev/sdxn | hdy,z   ::= Installation dans le secteur de boot de la partition n (pour grub z=n-1).

OPTIONS



DESCRIPTION Le script «grub-install» va :







 2.4.2 : grub grub en mode commande   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

grub est la commande de base pour administrer les fonctionnalités de grub.

Lorsque l'on invoque grub, il affiche l'invite de commande
grub >

On sort de grub avec la commande quit.

grub est un interpréteur de commande et on pourrait même parler d'un SHELL contenant les commandes suivantes (liste obtenue avec la commande help) :

blocklist FILE                         boot                                   
cat FILE                               chainloader [--force] FILE             
clear                                  color NORMAL [HIGHLIGHT]               
configfile FILE                        device DRIVE DEVICE                    
displayapm                             displaymem                             
find FILENAME                          geometry DRIVE [CYLINDER HEAD SECTOR [ 
halt [--no-apm]                        help [--all] [PATTERN ...]             
hide PARTITION                         initrd FILE [ARG ...]                  
kernel [--no-mem-option] [--type=TYPE] makeactive                             
map TO_DRIVE FROM_DRIVE                md5crypt                               
module FILE [ARG ...]                  modulenounzip FILE [ARG ...]           
pager [FLAG]                           partnew PART TYPE START LEN            
parttype PART TYPE                     quit                                   
reboot                                 root [DEVICE [HDBIAS]]                 
rootnoverify [DEVICE [HDBIAS]]         serial [--unit=UNIT] [--port=PORT] [-- 
setkey [TO_KEY FROM_KEY]               setup [--prefix=DIR] [--stage2=STAGE2_ 
terminal [--dumb] [--no-echo] [--no-ed terminfo [--name=NAME --cursor-address 
testvbe MODE                           unhide PARTITION                       
uppermem KBYTES                        vbeprobe [MODE]                        




 2.4.2.1 : grub find grub cat Recherche/Affichage d'un fichier   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande find permet de recherche un fichier sur les partitions reconnues par grub. Mais elle n'agit que sur des fichiers dont on connaît le chemin complet et donc n'a rien à voir avec la commande “ind du shell.

Si l'on recherche des fichiers de grub, il faudra se souvenir que comme la recherche se fait avec un chemin complet, il faudra faire des recherches /boot/grub/nom_fichier ou grub/nom_fichier selon que le répertoire boot est dans la racine ou monté à partir d'une partition séparée.

Exemple de recherche de fichier grub.conf :
# grub
grub> find /grub/grub.conf
find /grub/grub.conf
 (hd0,0)
 (hd1,0)
grub> find /boot/grub/grub.conf
find /boot/grub/grub.conf

Error 15: File not found

grub>cat (hd0,0)/grub/grub.conf
cat (hd0,0)/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,1)
#          kernel /boot/vmlinuz-version ro root=/dev/sda2
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
#hiddenmenu

title Mon Fedora 10 (2.6.27.5-117)
        root (hd0,4)
        kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=/dev/sda5 rhgb  vga=0x318 quiet apm=power-off pci=biosirq acpi=off mem=4G
        initrd /boot/initrd-2.6.27.5-117.fc10.i686.img
title Mon Mandriva 2009
....................
.............................
>grub quit

Si l'on recherche où sont les partitions système des disques présents on peut faire une recherche des fichiers /etc/fstab
# grub
grub >find /etc/fstab
find /etc/fstab
 (hd0,1)
 (hd0,4)
 (hd0,6)
 (hd0,7)
 (hd1,1)
 (hd1,4)
 (hd1,6)
 (hd1,7)
grub> quit




 2.4.2.2 : grub setup Mise en place (installation) de grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

setup (hd0) ::= Installation du grub avec sur le MBR sans stage1_5
# grub
grub> root (hd0,0)
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... no
 Running "install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf "... succeeded
Done.
grub> quit

Dans ce cas, grub a stocké dans le MBR la liste des blocs de stage2, pour pouvoir le retrouver sans accéder au file-système et au répertoire.



setup (hd0) ::= Installation du grub avec sur le MBR avec stage1_5
# grub
grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"...  23 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+23 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub> quit
quit

Dans ce cas, grub a stocké juste derrière le MBR le stage1_5 lié au type de partition et a stocké la liste des blocs de ce stage1_5 dans le MBR.

Différence d'adressage :

MBR avec lien sur stage 2 : 
00000040  ff 00 00 80 41 e0 05 00  00 08 fa 90 90 f6 c2 80  |....A...........|
MBR avec lien sur stage1_5 : 
00000040  ff 00 00 20 01 00 00 00  00 02 fa 90 90 f6 c2 80  |... ............|




 2.4.3 : grub.conf menu.lst Fichier menu de grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

grub a besoin du fichier grub.conf qui contient les paramètres du menu que grub devra interpréter et/ou afficher.

Les fichiers grub.conf sont situés dans /boot/grub et peuvent être administrés par l'utilisateur, mais ils sont aussi généralement modifiés, lors de l'installation d'un nouvel OS, ou d'un nouveau noyau d'une distribution.

Ce fichier grub.conf ou son lien symbolique menu.lst contiennent





EXEMPLE D'UTILISATION DE chainloader
Si l'on a installé un grub sur le MBR (racine sur /sda1 swap sur /sda2) et un autre grub sur le BootSector de la partition sda3, il faudra modifier le grub.conf principal (sur /sda1 dans notre exemple) pour ajouter le chainage au grub secondaire.
title Grub secondaire
   root(hd0,2)
   chainloader +1



DEMARRAGE DOS/Windows
GRUB ne peut pas démarrer DOS ou Windows directement, vous devez donc passer par le chain-loading.

Exemple de démarrage avec un windows installé dans /dev/sda1
title Windows
  rootnoverify (hd0,0)
  makeactive
  chainloader +1


Cependant, leurs chargeurs comportent de graves problèmes qui font que leur chaînage peut ne pas suffire.
Pour dépasser ces problèmes, GRUB vous fournit deux fonctions utiles.

Si vous avez installé DOS (ou Windows) sur un disque qui n'est pas le premier, vous devez utiliser la technique d'échange de disques, parce que cet OS ne être démarré que sur le premier disque. Le problème est contourné avec la commande map (voir map), comme ceci:
map (hd0) (hd1)
map (hd1) (hd0)

Ceci échange virtuellement les premier et second disques durs.

Attention: Cela ne fonctionne que si DOS (ou Windows) utilise le BIOS pour accéder aux disques échangés.
Si cet OS utilise un pilote spécial pour les disques, il est probable que cela ne marche pas.

Un autre problème se pose si vous avez installé plus d'une copie de DOS/Windows sur un disque, parce qu'ils peuvent être dérangés par l'existence de plusieurs partitions primaires pour DOS/Windows.
Vous devriez certainement éviter ce genre de configuration, mais il existe une solution si vous décidez d'agir ainsi.
Utilisez la technique de masquage/démasquage des partitions.

Si GRUB masque une partition DOS/Windows (voir hide), DOS/Windows ignore la partition.
Si GRUB démasque une partition DOS/Windows, (voir unhide), il détecte la partition.
Ainsi, si vous avez installé DOS (ou Windows) sur la première et la deuxième partition du premier disque dur, et que vous voulez démarrer la copie sur la première partition, faites comme ceci:
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
chainloader +1





 2.4.4 : options de boot Options de boot du kernel   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

les options de boot dépendent étroitement de façon dont ont été compilés les noyaux.

Certaines options peuvent ne pas être comprises par votre kernel.

Vous pouvez spécifier ces options dans la ligne kernel à la suite du nom de noyau séparés par au moins un espace.

On peut le faire dans le fichier grub.conf (menu.lst) ou temporairement lors de l'affichage de menu. (Voir Modification temporaire des options de boot)



Cette liste n'est qu'un partie des options de boot que l'on peut trouver de façon détaillée dans le fichier «kernel-parameters.txt» du paquet «kernel-doc» .




 2.4.5 : Modification temporaire des options de boot dans grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La modification temporaire des options de boot permet d'essayer une ou plusieurs options de boot, ou plus généralement de modifier temporairement la ou les lignes définissant un amorçace grub.

Comme nous l'avons vu auparavant, le menu grub peut être caché et avec un temps d'affichage par défaut très court. Mais pendant ce temps (peut-être très court) on pourra utiliser une touche (<ESC> ou <Tab> selon les grub) pour afficher le menu s'il était caché.

Généralement, une fois le menu affiché, on aura une aide sur la façon de modifier une ou plusieurs lignes.

  Exemple d'affichage du menu grub : 
    ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
    │   GNU GRUB  version 0.97  (639k lower/528320K upper memory)                                      │
    │                                                                                                  │
    │   ┌──────────────────────────────────────────────────────────────────────────────────────────┐   │
    │   │  Mon Fedora (2.6.27.12-170.2.5.fc10.i386                                                 │   │
    │   │  Mon Mandriva  (2.6.26.05)                                                               │   │
    │   │  Mon Debian    (2.6.27.12)                                                               │   │
    │   │  Mon XP                                                                                  │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   │                                                                                          │   │
    │   └──────────────────────────────────────────────────────────────────────────────────────────┘   │
    │                                                                                                  │
    │  Use the <⬆> or <⬇>  keys to select which entry is highlighted.                                 │
    │  Press <Enter> to boot the selected OS                                                           │
    │  Press <e> to edit the command line before booting                                               │
    │  Press <a> to modify the kernel arguments before booting (ne figure pas sur tous les grub)       │
    │  Press <c> to invoke the grub shell                                                              │
    ├──────────────────────────────────────────────────────────────────────────────────────────────────┤
    │  Utilisez les touches <⬆> ou <⬇>  pour sélectionner un entrée (affichée en inverse vidéo)       │
    │  Utilisez la touche <Entrée> pour booter avec l'OS correspondant à l'entrée sélectionnée         │
    │  Utilisez <e> pour modifier la ou les lignes correspondants à l'entrée sélectionnée.             │
    │  Utilisez <q> pour modifier les arguments du kernel avant de booter. (En QWERTY <q> ::= <a>)     │
    │          (la touche <a>/<q> n'est pas active sur tous les grub)                                  │
    │  Utilisez <c> pour appeler le shell de grub (interpréteur de bas niveau de grub)                 │
    └──────────────────────────────────────────────────────────────────────────────────────────────────┘

Bien se souvenir que la plupart du temps vous serez en clavier QWERTY voir Tutoriel tables de codes/claviers Voici les correspondance les plus courantes.

  A::=>Q     Q::=>A      W::=>Z     Z::=>W,    ;=>M
  Les chiffres situés dans la partie alphanumérique du clavier sont accessibles sans la touche <Shift>.

MODIFICATION LIGNES DE MENU SIMPLE

MODIFICATION LIGNES DE MENU CLASSIQUE






 2.4.6 : Sauvegarde de grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Si vous avez une politique de sauvegarde OS et/ou fichiers, vous disposez certainement de sauvegardes des fichiers contenus dans le répertoire grub (au même titre que les autres fichiers). Mais CELA NE SUFFIT PAS.

Il est important de sauvegarder le MBR et des blocs du stage1_5 si le stage1_5 a été installé dans les blocs suivant le MBR.

Si vous n'avez pas de stage1_5, souvenez vous que le lien entre MBR (ou BootSector dans le cas de grubs secondaires) et stage2 est un lien physique (liste de blocs) et que vous ne devez pas déplacer ce fichier stage2 (même à l'intérieur de /boot/grub).

En cas de restauration logique (par copie de fichier) le fichier stage2 a peu de chance de se retrouver au même endroit et donc GRUB aura peu de chances de le trouver donc de démarrer. Et dans ce cas il faudra réparer GRUB avec un LiveCD ou une clé USB bootable..

Le partitionnement des disques est stockée dans le MBR, et la suite (au delà de 4) dans la partition étendue.

Le moyen le plus sûr de pouvoir refaire, en cas de malheur) un partitionnement à l'identique est d'avoir une trace du partitionnement.

Dans un premier temps on peut décider de faire les différentes sauvegardes dans /boot lui-même mais aussi sur un support externe (jadis une disquette, mais plus probablement une clé USB). Cette sauvegarde sur un support externe, est indispensable, Si vous envisagez la perte de votre MBR, vous n'aurez pas de boot, mais même avec un LiveCD, vous n'aurez pas d'accès à aucune partition de votre disque puisqu'il n'y aura plus de tables de partition.

 dd if=/dev/sda of=/boot/mbr bs=512 count=1 

 dd if=/dev/sda of=/boot/mbr_63 bs=512 count=63

 fdisk -ul >/boot/fdisk_ul

Il est à noter que vous ne pourrez restaurer un MBR que s'il s'agit du même disque car n'oublions pas que le MBR contient la découpe des 4 premières partitions.




 2.4.7 : Messages d'erreur de grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil




 2.4.7.1 : Erreurs affichées par Stage 1   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Stage 1 gère les erreurs en affichant un message d'erreur et en s'arrêtant. Les touches <CTRL>-<ALT>-<DEL> redémarreront la machine.

La suite est une liste des messages d'erreurs pour Stage 1:





 2.4.7.2 : Erreurs affichées par Stage 1.5   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Stage 1.5 gère les erreurs en affichant un code d'erreur de la forme «Error num» puis s'arrête. Les touches <CTRL>-<ALT>-<DEL> redémarreront la machine.

  ERROR 2

Les codes d'erreur correspondent à ceux affichés par Stage 2. Voir Erreurs de Stage2.




 2.4.7.3 : Erreurs affichées par Stage 2   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Stage 2 annule l'opération en cours lorsqu'il rencontre une erreur, affiche un message d'erreur, et (si possible) continue comme si aucune erreur ne s'était produite, ou attend l'intervention de l'utilisateur.

La suite est une liste des messages d'erreur pour Stage 2 (les codes d'erreur pour Stage 1.5 sont listés avant les deux-points):





 2.4.8 : Réparation de grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Si grub est cassé mais le partitionnement est intact :



Si le MBR a été totalement détruit, grub est cassé mais le partitionnement aussi :
            # dd if=sauvegarde_mbr of=/dev/sda
            ou
            # dd if=sauvegarde_mbr_63 of=/dev/sda
            vérifier le partitionnement avec 
            # fdisk -l
            A comparer avec la sauvegarde du résultat du «fdisk -l»
            Si tout est OK, essayer un boot
            S'il substiste un problème essayer de réparer grub comme dans le cas précédent.





 2.4.9 : Dépannage avec l'interpréteur grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

En admettant que grub soit cassé, et arrive à l'interpréteur grub («grub >»), où que l'on lance l'interpréteur grub à partir d'un livecd.

grub > 

On pourra essayer de démarrer en indiquant soi même les paramètres de démarrage habituellement contenus dans le grub.conf et en lançant la commande grub au moment du boot d'un LiveCD avec l'utilisation de la touche <c> pendant l'affichage du menu grub.

Exemple comment démarrer un Linux (sur /dev/sda1) à partir de l'interpréteur grub
        grub> root (hd0,0)
        grub> kernel /vmlinuz<tab>    La touche <tab> vous permet de demander à grub d'afficher le ou les noms qui commencent 
        grub> initrd /initrd<tab>       le radical saisi avant l'utilisation de la touche <tab>.
        grub> boot
  
        NOTE: Si le boot est installé dans la racine et non pas dans une partition séparée il faudra utiliser
        grub> kernel /boot/vmlinuz<tab>    
        grub> initrd /boot/initrd<tab>     

Exemple comment démarrer Windows (sur /dev/sda1) à partir de l'interpréteur grub
        grub> rootnoverify (hd0,0)
        grub> makeactive
        grub> chainloader +1
        grub> boot




 2.4.10 : Auto-complement et divers outils dans grub   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Possibilité de complémentation avec la touche <tab>
grub> root (hd<tab>
Possible disks are: hd0 hd1 hd2 hd3

grub> null (hd1,<tab>
Possible partitions are:
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type is ext2fs, partition type 0x83
Partition num: 2, Filesystem type is ext2fs, partition type 0xfd
Partition num: 3, Filesystem type unknown, partition type 0x82



Utilisation de la commande geometry pour découvrir les partitions disques

grub> geometry (hd0)
drive 0x80: C/H/S = 38913/255/63, The number of sectors = 625142448, /dev/sda
   Partition num: 0,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 1,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 2,  Filesystem type unknown, partition type 0x82
   Partition num: 4,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 5,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 6,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 7,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 8,  Filesystem type is ext2fs, partition type 0x83
   Partition num: 9,  Filesystem type is ext2fs, partition type 0x83

grub> geometry (hd4)
drive 0x84: C/H/S = 1021/130/62, The number of sectors = 8229376, /dev/sde
   Partition num: 0,  Filesystem type unknown, partition type 0xb
   Partition num: 1,  Filesystem type unknown, partition type 0x83






 3 : BOOT : Démarrage du système   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Lors du boot linux de nombreuses étapes importantes s'enchaînent avant de vous donner la main.





 3.1 : Chargement du noyau   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Pour économiser le nombre de modules chargés dans le noyau et pour faciliter le démarrage le chargement du noyau s'appuie souvent sur une image «initrd».

Si le fichier «kernel» ou le fichier «initrd» n'est pas trouvé, alors grub affiche une message du genre :

         Error 15 : File not found
         Press any key to continue

L'image de démarrage «initrd» (INIT RamDisk) contient un système minimal permettant de charger le système de fichier principal et de faciliter le démarrage du noyau principal.

Une image «initrd» est constituée d'une archive «cpio» comprimée par gzip donc l'extension est souvent «.img».

La commande lsinitrd permet d'afficher le contenu d'une image «initrd».

La commande mkinitrd permet de créer une image «initrd».

DIFFERENTES ETAPES DE BOOT






 3.2 : Chargement de init   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Le processus init est le premier processus exécuté (PID=1), restera actif pendant toute la durée du boot et sera donc le père de tous les processus.

Selon les systèmes (plutôt anciens) on parlera de init SysV alors que pour les plus récents on parlera de init Upstart.




 3.2.1 : init SysV   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande init de type SysV (Unix système V) est basée sur

EXEMPLE DE FICHIER /etc/inittab
┌─────────────────────────────────────────────────────────────────────────────────────────┐
│ #                                                                                       │
│ # inittab       This file describes how the INIT process should set up                  │
│ #               the system in a certain run-level.                                      │
│ #                                                                                       │
│ # Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>                 │
│ #               Modified for RHS Linux by Marc Ewing and Donnie Barnes                  │
│ #                                                                                       │
│                                                                                         │
│ # Default runlevel. The runlevels used by RHS are:                                      │
│ #   0 - halt (Do NOT set initdefault to this)                                           │
│ #   1 - Single user mode                                                                │
│ #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)           │
│ #   3 - Full multiuser mode                                                             │
│ #   4 - unused                                                                          │
│ #   5 - X11                                                                             │
│ #   6 - reboot (Do NOT set initdefault to this)                                         │
│ #                                                                                       │
│ id:5:initdefault:                                                                       │
│                                                                                         │
│ # System initialization.                                                                │
│ si::sysinit:/etc/rc.d/rc.sysinit                                                        │ Script à exécuter à chaque initialisation du système 
│                                                                                         │   indépendamment du niveau d'init
│                                                                                         │
│ l0:0:wait:/etc/rc.d/rc 0                                                                │ Démarrage des services en fonction du niveau d'init
│ l1:1:wait:/etc/rc.d/rc 1                                                                │
│ l2:2:wait:/etc/rc.d/rc 2                                                                │
│ l3:3:wait:/etc/rc.d/rc 3                                                                │
│ l4:4:wait:/etc/rc.d/rc 4                                                                │
│ l5:5:wait:/etc/rc.d/rc 5                                                                │
│ l6:6:wait:/etc/rc.d/rc 6                                                                │
│                                                                                         │
│ # Trap CTRL-ALT-DELETE                                                                  │
│ ca::ctrlaltdel:/sbin/shutdown -t3 -r now                                                │
│                                                                                         │
│ # When our UPS tells us power has failed, assume we have a few minutes                  │
│ # of power left.  Schedule a shutdown for 2 minutes from now.                           │
│ # This does, of course, assume you have powerd installed and your                       │
│ # UPS connected and working correctly.                                                  │
│ pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"             │
│                                                                                         │
│ # If power was restored before the shutdown kicked in, cancel it.                       │
│ pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"             │
│                                                                                         │
│                                                                                         │
│ # Run gettys in standard runlevels                                                      │
│ 1:2345:respawn:/sbin/mingetty tty1                                                      │
│ 2:2345:respawn:/sbin/mingetty tty2                                                      │
│ 3:2345:respawn:/sbin/mingetty tty3                                                      │
│ 4:2345:respawn:/sbin/mingetty tty4                                                      │
│ 5:2345:respawn:/sbin/mingetty tty5                                                      │
│ 6:2345:respawn:/sbin/mingetty tty6                                                      │
│                                                                                         │
│ # Run xdm in runlevel 5                                                                 │
│ x:5:respawn:/etc/X11/prefdm -nodaemon                                                   │
└─────────────────────────────────────────────────────────────────────────────────────────┘

On peut repérer les éléments suivants :





 3.2.2 : init Upstart   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Upstart est le remplaçant du «init SysV» développé au départ par «Canonical Ltd» (Sponsor officiel de la distribution «Ubuntu»). Voir la page d'accueil Upstart.

Upstart fonctionne de manière asynchrone. Il gère le lancement des tâches et daemons au démarrage et leur arrêt à l'arrêt de la machine, ainsi qu'aux changement de niveau comme avec «init 3» ou «init 5».

Mais de plus il les supervise pendant que le système tourne.

Lorsque Upstart est installé, la commande init est fournie par Upstart et non plus par sysvinit (ou son équivalent).

Avec Upstart le fichier /etc/inittab ne sert plus à documenter les niveaux d'init et à déterminer le niveau d'init par défaut.

EXEMPLE DE FICHIER /etc/inittab
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ # inittab is only used by upstart for the default runlevel.                                             │
│ #                                                                                                       │
│ # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.                                   │
│ #                                                                                                       │
│ # System initialization is started by /etc/event.d/rcS                                                  │
│ #                                                                                                       │
│ # Individual runlevels are started by /etc/event.d/rc[0-6]                                              │
│ #                                                                                                       │
│ # Ctrl-Alt-Delete is handled by /etc/event.d/control-alt-delete                                         │
│ #                                                                                                       │
│ # Terminal gettys (tty[1-6]) are handled by /etc/event.d/tty[1-6] and                                   │
│ # /etc/event.d/serial                                                                                   │
│ #                                                                                                       │
│ # For information on how to write upstart event handlers, or how                                        │
│ # upstart works, see init(8), initctl(8), and events(5).                                                │
│ #                                                                                                       │
│ # Default runlevel. The runlevels used are:                                                             │
│ #   0 - halt (Do NOT set initdefault to this)                                                           │
│ #   1 - Single user mode                                                                                │
│ #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)                           │
│ #   3 - Full multiuser mode                                                                             │
│ #   4 - unused                                                                                          │
│ #   5 - X11                                                                                             │
│ #   6 - reboot (Do NOT set initdefault to this)                                                         │
│ #                                                                                                       │
│ id:5:initdefault:                                                                                       │
└─────────────────────────────────────────────────────────────────────────────────────────────────────────┘

On voit dans les commentaires que la gestion des initialisations système et runlevels sont gérés dans des scripts stockés dans /etc/event.d.

Ces scripts contiennent les paramètres de conditionnement au démarrage/arrêt en fonction du niveau d'init.


On peut trouver de la documentation sur les élements d'un script upstart/events avec man events.

Exemple du script /etc/event.d/rcS
 ┌────────────────────────────────────────────────────────────────────────────────────┐
 │ # rcS - runlevel compatibility                                                     │
 │ #                                                                                  │
 │ # This task runs the old sysv-rc startup scripts.                                  │
 │                                                                                    │
 │ start on startup                                                                   │  Démarrage au boot (initialisation du système)
 │                                                                                    │
 │ stop on runlevel                                                                   │  Arrêt au démarrage de n'importe quel niveau d'init
 │                                                                                    │
 │ # Note: there can be no previous runlevel here, if we have one it's bad            │
 │ # information (we enter rc1 not rcS for maintenance).  Run /etc/rc.d/rc            │
 │ # without information so that it defaults to previous=N runlevel=S.                │
 │ console output                                                                     │
 │ script                                                                             │
 │   runlevel --set S >/dev/null || true                                              │
 │                                                                                    │
 │   /etc/rc.d/rc.sysinit                                                             │
 │   runlevel --reboot || true                                                        │
 │ end script                                                                         │
 │                                                                                    │
 │ post-stop script                                                                   │
 │   if [ "$UPSTART_EVENT" == "startup" ]; then                                       │
 │     runlevel=$(/bin/awk -F ':' '$3 == "initdefault" { print $2 }' /etc/inittab)    │
 │     [ -z "$runlevel" ] && runlevel="3"                                             │
 │     for t in $(cat /proc/cmdline); do                                              │
 │       case $t in                                                                   │
 │         -s|single|S|s) runlevel="S" ;;                                             │
 │         [1-9])       runlevel="$t" ;;                                              │
 │       esac                                                                         │
 │     done                                                                           │
 │     exec telinit $runlevel                                                         │
 │   fi                                                                               │
 │ end script                                                                         │
 └────────────────────────────────────────────────────────────────────────────────────┘



Exemple du script /etc/event.d/prefdm
 ┌──────────────────────────────────────────┐
 │ # prefdm - preferred display manager     │
 │ #                                        │
 │ # Starts gdm/xdm/etc by preference       │
 │                                          │
 │ start on stopped rc5                     │  Démarre à la fin du rc5
 │                                          │
 │ stop on runlevel [!5]                    │  S'arrête pour tout niveau différent de 5
 │                                          │
 │ console output                           │  Les messages console seront dirigés sur stdout (sortie standard)
 │ respawn                                  │  Si le proccessus s'arrête, il doit être re-démarré
 │ respawn limit 10 120                     │  10 tentatives de re-démarrage en 120 secondes.
 │ exec /etc/X11/prefdm -nodaemon           │  Exécution de prefdm qui démarrera gdm, kdm, .....
 └──────────────────────────────────────────┘

EVENEMENTS DE UPSTART «event»

La liste suivante décrit les événements générés par upstart (voir man events), mais il peut y en avoir d'autres (voir initctl)





 3.3 : Initialisation système rc.sysinit   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La première étape après le chargement d'init et le lancement du script rc.sysinit.

Il est à noter qu'avec SysV (via inittab) ou Upstart (via rcS), c'est le même script qui est exécuté.

Ce script active le swap, monte les filesystems, configure le PATH, ......

Certains paramètres de rc.sysinit peuvent être adaptés dans /etc/sysconfig/init².

Il est à noter que, pendant l'exécution de rc.sysinit, on peut utiliser la touche <i> ou <I> (sans valider par la touche <Entrée>) pour obtenir par la suite un «Mode interactif» des démarrages des services (confirmation du démarrage de chaque service). Voir aussi l'option confirm des Options de boot.


La suite logique sera le démarrage des services, via inittab (SysV) ou event.d/rcS (Upstart) voir Démarrage des services.
Il est à noter que les démarrages de udev, montage des systèmes de fichiers locaux, et activation swap se présentent comme des démarrages de service mais ils sont bien démarrés par rc.sysinit.
Le démarrage des services (/etc/rc.d/rc) commence avec le message «Début du démarrage non-interactif» ou «Début du démarrage interactif»




 3.4 : Démarrage de udev   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

udev est un gestionnaire dynamique de périphérique démarré par le boot, mais restant actif pendant tout l'utilisation du système afin de détecter les ajouts/suppressions de périphériques.

Comme vu dans le chapitre précédent udev (ou plutôt start_udev) est démarré par rc.sysinit.

Répertoire /dev

Sous Linux, il est possible d'accéder à un périphérique via un descripteur de fichier du répertoire /dev, ceci permet d'utiliser des appels système de lecture de fichier pour accéder à n'importe quel type de périphérique. Par exemple, on spécifie généralement le premier disque IDE par /dev/hda.

La banalisation des périphérique accessibles à chaud (USB, Firewire, etc) a montré les limites du répertoire /dev car celui-ci nommait statiquement tout les périphérique et était donc mal adapté à l'ajout de périphérique à chaud. De plus créer un fichier pour chaque périphérique possible qu'il soit présent ou non à amené le répertoire /dev à devenir beaucoup trop gros (couramment plus de 18 000 descripteurs).

Une solution consiste à utiliser le noyau pour gérer le repertoire /dev, celui-ci ne devant afficher que les périphériques actuellement disponible. Cette solution a été implémenté et porte le nom de devfs, c'est un pseudo système de fichier géré par le noyau qui représente un dossier /dev peuplé dynamiquement. Cette solution fonctionne pour réduire le nombre de fichier mais ne règle pas les problèmes du nommage des périphériques (le nom étant déterminé statiquement dans le noyau, sans intervention possible de l'administrateur). De plus cette solution ne fonctionne pas sur de gros espaces de nommage.

udev a été créé pour palier tout ces problèmes en nommant les périphérique lors de leur ajout à l'aide d'une série de règles et en fonctionnant dans l'espace utilisateur. Lors de l'ajout ou de la déconnexion d'un périphérique, le noyau appelle udev afin de créer les entrées adéquate dans /dev.

Le nommage des périphérique dans /dev avec udev utilise une série de règle pour déterminer le ou les noms adéquat pour le périphérique.

udev Le système udev permet de faire le lien entre les évènements du noyau, les informations du système de fichier sysfs et le répertoire /dev. Ce système se décompose en trois parties dont les deux première sont d'intérêt direct pour les administrateurs:


udev fonctionne dans l'espace utilisateur et reçoit les événements à partir du noyau. Il utilise alors les informations fournies par le noyau pour obtenir toutes les informations sur le périphérique dans sysfs, tel que les numéros majeur et mineur du périphérique qui seront utilisé pour créer le fichier adéquat dans /dev. udev fait ensuite à namedev afin de déterminer le ou les noms du périphérique, le pseudo fichier est alors créé dans /dev avec les noms attribués à l'aide de namedev.

Mise en place de udev
Le noyau génère un évènement pour chaque périphérique ajouté ou supprimé, c'est udev et/ou hald qui géreront cet événement.



Fabrication du nom des périphériques
L'attribution des noms de périphérique se fait en consultant les règles de /etc/udev/rules.d/. Le règles pour l'attribution du nom des périphériques sont consultés en 5 étapes ordonnés du cas le plus précis au nommage par défaut:

Dès que le nom du périphérique peut être déterminé à une étape, il est attribué directement et le pseudo fichier peut être créé.

Toutes les règles sont écrites dans des fichiers du dossier /etc/udev/rules.d.
Ces fichiers sont lu dans l'ordre alphanumérique à chaque fois qu'un périphérique est ajouté ou enlevé.
Lorsque le périphérique est ajouté, udev permet de déterminer son nom et éventuellement les liens symboliques y référant, ce qui permet à udev de créer les fichiers approprié.
Lorsque le périphérique est enlevé, udev est a nouveau consulté pour retrouver le nom et chaque lien symbolique afin de nettoyer /dev.

Par la suite, le démon hald via D-bus prendra en charge le montage avec des règles stockées dans /etc/udev/rules.d .

hald est une surcouche du démon udev auquel le noyau délègue la gestion des évènements matériels.
udev transmet l'intégralité des évènements qu'il détecte à HAL par l'intermédiaire d'une règle installée par défaut.

Pour plus de détail voir Détection montage périphériques udev hald




 3.5 : Démarrage des services   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les services (appelés aussi démons) sont des programmes qui doivent tourner en permanence pendant un init.

Le paramétrage d'un service consiste à choisir le niveau d'init qui va déclencher le démarage du service.

Certains services (base de données, ...) doivent être démarrés au démarrage, mais aussi être arrêtés lors de l'arrêt de la machine.

Comme décrit dans le chapitre init Upstart pour des raisons de compatibilité, même si le système est installé avec upstart les services peuvent être démarrés comme en SysV avec /etc/rc.d/rc Le premier message affiché par ce script /etc/rc.d/rc est :

Début du démarrage non-interactif
ou 
Début du démarrage interactif

Le script /etc/rc.d/rc exécutera :


Chaque service possède son script de démarrage situé normalement dans /etc/init.d.
Chaque script concerné par un niveau N aura un lien symbolique Sxxnom_service ou Kxxnom_service (ou les deux) dans le répertoire /etc/rc.d/rcN.d.
Le nom du lien commence normalement par un «S» pour les liens de démarrages et un «K» pour les liens d'arrêt.
Le numero «xx» permet de préciser l'ordre de traitement du service par rapport aux autres.

Exemple avec mysqld :
  ┌────────────────────────────────────────────────────────────────────────────────────────┐
  │ -rwxr-xr-x 1 root root 4286 oct  2 01:29 /etc/rc.d/init.d/mysqld                       │
  │                                                                                        │
  │ Mode 1                                                                                 │  Le mode 1 ne doit pas démarrer le service mais au contraire l'arrêter 
  │ lrwxrwxrwx 1 root root 16   oct  8 14:27 /etc/rc.d/rc1.d/K36mysqld -> ../init.d/mysqld │    si l'on passe de 3 ou 5 à 1.
  │                                                                                        │
  │ Mode [2345]                                                                            │
  │ Scripts de démarrage du service                                                        │
  │ lrwxrwxrwx 1 root root 16   mar  2 18:21 /etc/rc.d/rc2.d/S64mysqld -> ../init.d/mysqld │  Les modes 2,3,4 et 5 doivent démarrer le service
  │ lrwxrwxrwx 1 root root 16   mar  2 18:21 /etc/rc.d/rc3.d/S64mysqld -> ../init.d/mysqld │
  │ lrwxrwxrwx 1 root root 16   mar  2 18:21 /etc/rc.d/rc4.d/S64mysqld -> ../init.d/mysqld │
  │ lrwxrwxrwx 1 root root 16   mar  2 18:21 /etc/rc.d/rc5.d/S64mysqld -> ../init.d/mysqld │
  │                                                                                        │
  │ Mode [06]                                                                              │
  │ Scripts d'arrêt du service                                                             │
  │ lrwxrwxrwx 1 root root 16   oct  8 14:27 /etc/rc.d/rc0.d/K36mysqld -> ../init.d/mysqld │ les modes 0 et 6 doivent arrêter le service
  │ lrwxrwxrwx 1 root root 16   oct  8 14:27 /etc/rc.d/rc6.d/K36mysqld -> ../init.d/mysqld │
  └────────────────────────────────────────────────────────────────────────────────────────┘
    
   On trouve souvent des chiffres xx et yy (Sxx et Kyy) dont le total est égal à 100.  Si tous les services respectent cette règle, on peut
     être sûr que les services démarrent dans un certain ordre (mysql après le réseau) et s'arrêtent dans l'ordre inverse (mysql
     avant le réseau).

Comme la création/suppression des liens symboliques pourrait être fastidieuse les scripts de démarrage/arêt des services pourront utiliser la commande chkconfig pour intégrer automatiquement leurs liens aux endroit prévus dans les lignes de paramétrage de chkconfig contenues dans chaque script.

Pour gérer correctement le démarrage et l'arrêt d'un service dans le même script, ce script (ou son lien) sera exécuté avec l'argument «start» ou «stop» auquel il faudra ajouter «status», «reload», «restart» il est important de gérer ces arguments dans chaque script.

Un script de service devra donc ressembler à ceci :

  ┌──────────────────────────────────────────────────────────────────────┐
  | #!/bin/bash                                                          │
  | #                                                                    │
  | # nom_service blabla blabla blabla                                   │
  | #    blablabla                                                       │
  | #                                                                    │
  | # chkconfig: - 64 36                                                 │  Ligne de paramétrage chkconfig donnant des liens S64 ou K36 pour tous les niveaux.
  | # description: MySQL database server.                                │
  | # processname: mysqld                                                │
  |                                                                      │
  | . /etc/rc.d/init.d/functions                                         │  Chargement des fonctions communes à tous les scripts gérant des services.
  |                                                                      │
  | start(){                                                             │
  |   ......                                                             │
  |   ........                                                           │
  | }                                                                    │
  |                                                                      │
  | stop(){                                                              │
  |   ......                                                             │
  |   ........                                                           │
  | }                                                                    │
  |                                                                      │
  | restart(){                                                           │
  |     stop                                                             │
  |     start                                                            │
  | }                                                                    │
  |                                                                      │
  | case "$1" in                                                         │
  |   start)                                                             │
  |     start                                                            │
  |     ;;                                                               │
  |   stop)                                                              │
  |     stop                                                             │
  |     ;;                                                               │
  |   status)                                                            │
  |     status mysqld                                                    │  Par défaut on utilisera la fonction «status» standard, mais on pourrait envisager
  |     ;;                                                               │    une fonction interne «status».
  |   restart)                                                           │
  |     restart                                                          │
  |     ;;                                                               │
  |   *)                                                                 │
  |     echo $"Usage: $0 {start|stop|status|restart}"                    │
  |     exit 1                                                           │
  | esac                                                                 │
  |                                                                      │
  | exit $?                                                              │
  └──────────────────────────────────────────────────────────────────────┘




 3.5.1 : Administration des services   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

La commande service permet d'exécuter le script associé à un service avec l'argument start|stop|status|....


service < option > | --status-all | [ service_name [ command | --full-restart ] ]

service nom_script action
action ::= start | stop | status | restart | ....

service --status-all
service --full-restart

Exemple
service mysql status
mysqld (pid 2720) en cours d'exécution...

Démarrage manuel de script

Démarrage classiqe d'un script :

/etc/init.d/nom_script start|stop|status|restart|......


Démarrage en mode trace d'un script voir déboguage script :

sh -x /etc/init.d/nom_script start|stop|status|restart|......

sh -vx /etc/init.d/nom_script start|stop|status|restart|......




 4 : Détection montage périphériques udev hald   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce chapitre est consacré aux actions possibles autour de udev et hald

Il ne fait volontairement pas partie du chapitre Boot bien que udev fonctionne dès le début du boot, car la face visible du couple udev/hald sera lors de la connexion/déconnexion d'un périphérique ou d'un composant pendant une session.





 4.1 : Régles hal/fdi (File Device Information)    Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

hal-find-by-property --key volume.label --string ma_cle

hal-device $(hal-find-by-property --key volume.label --string ma_cle)

Si nous partons d'un système avec déjà deux disques reconnus au boot comme /dev/sda et /dev/sdb

Sous GNU/Linux, lorsque vous branchez une clé USB (appelons la «clé1») , le fichier /dev/sdc sera créé pour identifier ce périphérique.

Si vous branchez une deuxième clé USB (appelons la «cle2»), un périphérique /dev/sdd sera créé pour identifier cette nouvelle clé.

Or si vous débranchez ces deux clés et les branchez dans l’ordre inverse, le périphérique identifiant la première clé («cle2») sera /dev/sdc et pour la deuxième («cle1») sera /dev/sdd.

Les noms de device ne sont donc pas liés aux périphériphériques mais à l’ordre dans lequel ils sont branchées.

Ce n’est pas toujours très pratique. Vous pourriez par exemple vouloir toujours monter la «cle1» dans le répertoire /mnt/cle_1 et la «cle2» toujours dans le répertoire /mnt/cle_2.

Les règles de «udev» permettent d’associer à chaque appareil (ou groupe d’appareils comme une imprimante/scanner/fax) un périphérique personnalisé.

Ceci permettrait par exemple d’associer mon lecteur mp3 à un périphérique /dev/mon_mp3 plutôt que /dev/sd?.

On peut bien sûr créer des règles udev pour tout type de périphérique et pas seulement des clés USB.

On pourrait faire de même pour une imprimante, une carte pcmcia, une webcam, une souris, etc...

Voir les liens udev ou writing_udev_rules.html.

Pour les périphériques de stockage, les noms de devices (/dev/xxxx) ont peu d'intérêt pour l'utilisateur final car c'est plutôt le point de montage qui sera intéressant, nous verrons par la suite qu'il peut y avoir un lien entre le nom du device et le point de montage.

Pour que l’ordinateur puisse associer un fichier device à un périphérique, il faut que l’ordinateur puisse reconnaître ce périphérique.

Lors du branchement d'un périphérique,

Nous allons donc interroger le système pour récupérer les informations du lecteur mp3. Pour cela nous allons consulter le système de fichier SYSFS.

SYSFS est un système de fichier dynamique généré par le noyau (à partir du noyau 2.6) donnant des informations sur le matériel.

Dans SYSFS chaque fichier représente un composant matériel et le chemin menant à ce fichier donne aussi des informations sur ce matériel.

Il nous faut donc d’abord trouver quel fichier de SYSFS correspond à notre lecteur mp3.

Si vous connaissez le nom du fichier associé à votre périphérique (dans le cas présent /dev/sde par exemple), vous pouvez retrouver le chemin permettant d’accéder au fichier SYSFS correspondant par la commande :

udevinfo -q path -n /dev/sde Le résultat est ici /block/sde.

udevtest /sys/class/block/sde

udev_rules_get_name: rule applied, 'sde' becomes 'cle1'

Exemple : Introduction d'une clé USB standard
   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
   │ kernel: usb 1-4: new high speed USB device using ehci_hcd and address 2                              │
   │ kernel: usb 1-4: configuration #1 chosen from 1 choice                                               │
   │ kernel: usb 1-4: New USB device found, idVendor=0930, idProduct=6544                                 │
   │ kernel: usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3                            │
   │ kernel: usb 1-4: Product: USB Flash Memory                                                           │
   │ kernel: usb 1-4: Manufacturer:                                                                       │
   │ kernel: usb 1-4: SerialNumber: 001D0F0C0898C8B123BF0199                                              │
   │ kernel: Initializing USB Mass Storage driver...                                                      │
   │ kernel: scsi8 : SCSI emulation for USB Mass Storage devices                                          │
   │ kernel: usbcore: registered new interface driver usb-storage                                         │
   │ kernel: USB Mass Storage support registered.                                                         │
   │ kernel: scsi 8:0:0:0: Direct-Access              USB Flash Memory 1.00 PQ: 0 ANSI: 2                 │
   │ kernel: sd 8:0:0:0: [sde] 15646656 512-byte hardware sectors (8011 MB)                               │
   │ kernel: sd 8:0:0:0: [sde] Write Protect is off                                                       │
   │ kernel: sd 8:0:0:0: [sde] Assuming drive cache: write through                                        │
   │ kernel: sd 8:0:0:0: [sde] 15646656 512-byte hardware sectors (8011 MB)                               │
   │ kernel: sd 8:0:0:0: [sde] Write Protect is off                                                       │
   │ kernel: sd 8:0:0:0: [sde] Assuming drive cache: write through                                        │
   │ kernel: sde: sde1                                                                                    │
   │ kernel: sd 8:0:0:0: [sde] Attached SCSI removable disk                                               │
   │ kernel: sd 8:0:0:0: Attached scsi generic sg5 type 0                                                 │
   │ hald: mounted /dev/sde1 on behalf of uid 500                                                         │
   │ gnome-keyring-daemon[3131]: adding removable location: volume_uuid_1A86_796E at /media/disk          │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────┘

Trace du démontage et de la déconnexion de la même clé.

   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
   │ hald: unmounted /dev/sde1 from '/media/disk' on behalf of uid 500                                    │
   │ gnome-keyring-daemon[3131]: removing removable location: volume_uuid_1A86_796E                       │
   │ kernel: usb 1-4: USB disconnect, address 3                                                           │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────┘

Trace de la déconnexion (brutale, sans démontage préalable) de la même clé.

   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
   | kernel: usb 1-4: USB disconnect, address 2                                                           │
   | hald[2350]: forcibly attempting to lazy unmount /dev/sde1 as enclosing drive was disconnected        |
   | gnome-keyring-daemon[3131]: removing removable location: volume_uuid_1A86_796E                       │
   | hald: unmounted /dev/sde1 from '/media/disk' on behalf of uid 0                                      │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────┘

Résultat de la commande lshal -m (monitor de hald) 

   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
   | Start monitoring devicelist:                                                                                                                                     │
   | -------------------------------------------------                                                                                                                │
   | 16:19:44.517: usb_device_930_6544_001D0F0C0898C8B123BF0199 added                                                                                                 │
   | 16:19:44.548: usb_device_930_6544_001D0F0C0898C8B123BF0199_if0 added                                                                                             │
   | 16:19:44.604: usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host added                                                                                   │
   | 16:19:49.642: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host added                                                                                       │
   | 16:19:49.644: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host_scsi_device_lun0 added                                                                      │
   | 16:19:49.711: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host_scsi_device_lun0_scsi_generic added                                                         │
   | 16:19:49.805: storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0 added                                                                                │
   | 16:19:49.828: storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0 property info.interfaces = {'org.freedesktop.Hal.Device.Storage.Removable'} (new)    │
   | 16:19:49.907: volume_uuid_1A86_796E added                                                                                                                        │
   | 16:19:50.049: volume_uuid_1A86_796E property volume.mount_point = '/media/disk'                                                                                  │
   | 16:19:50.054: volume_uuid_1A86_796E property volume.is_mounted = true                                                                                            │
   │                                                                                                                                                                  │
   │ Déconnexion de la clé sans démontage préalable                                                                                                                   │
   | 16:20:04.606: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host_scsi_device_lun0_scsi_generic removed                                                       │
   | 16:20:04.621: volume_uuid_1A86_796E property volume.mount_point = ''                                                                                             │
   | 16:20:04.639: volume_uuid_1A86_796E property volume.is_mounted = false                                                                                           │
   | 16:20:04.647: volume_uuid_1A86_796E removed                                                                                                                      │
   | 16:20:04.700: storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0 removed                                                                              │
   | 16:20:04.723: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host_scsi_device_lun0 removed                                                                    │
   | 16:20:04.724: usb_device_930_6544_001D0F0C0898C8B123BF0199_scsi_host removed                                                                                     │
   | 16:20:04.736: usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host removed                                                                                 │
   | 16:20:04.764: usb_device_930_6544_001D0F0C0898C8B123BF0199_if0 removed                                                                                           │
   | 16:20:04.791: usb_device_930_6544_001D0F0C0898C8B123BF0199 removed                                                                                               │
   │                                                                                                                                                                  │
   │ Démontage de la partition sans déconnexion                                                                                                                       │
   │ 16:25:08.502: volume_uuid_1A86_796E property volume.mount_point = ''                                                                                             │
   │ 16:25:08.513: volume_uuid_1A86_796E property volume.is_mounted = false                                                                                           │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘


Exemple du contenu partiel de la commande lshal -t après introduction de la clé USB.

   ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
   │ ...........                                                                                                   │
   │ pci_8086_283a                                                                                                 │
   │     usb_device_1d6b_2_0000_00_1a_7                                                                            │
   │       usb_device_930_6544_001D0F0C0898C8B123BF0199                                                            │
   │         usb_device_930_6544_001D0F0C0898C8B123BF0199_if0                                                      │
   │           usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host_0                                        │
   │             usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host_0_scsi_device_lun0                     │
   │               storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0                                   │
   │                 volume_uuid_1A86_796E                                                                         │
   │               usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host_0_scsi_device_lun0_scsi_generic      │
   │           usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host                                          │
   │       usb_device_1d6b_2_0000_00_1a_7_if0                                                                      │
   │ ...........                                                                                                   │
   └───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Résultat de la commande lshal -u nom_device
  lshal -u storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0

   ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
   │ udi = '/org/freedesktop/Hal/devices/storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0'                                       │
   │ block.device = '/dev/sde'  (string)                                                                                                      │
   │ block.is_volume = false  (bool)                                                                                                          │
   │ block.major = 8  (0x8)  (int)                                                                                                            │
   │ block.minor = 64  (0x40)  (int)                                                                                                          │
   │ block.storage_device = '/org/freedesktop/Hal/devices/storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0'  (string)            │
   │ info.addons = {'hald-addon-storage'} (string list)                                                                                       │
   │ info.capabilities = {'storage', 'block'} (string list)                                                                                   │
   │ info.category = 'storage'  (string)                                                                                                      │
   │ info.interfaces = {'org.freedesktop.Hal.Device.Storage.Removable'} (string list)                                                         │
   │ info.parent = '/org/freedesktop/Hal/devices/usb_device_930_6544_001D0F0C0898C8B123BF0199_if0_scsi_host_0_scsi_device_lun0'  (string)     │
   │ info.product = 'USB Flash Memory'  (string)                                                                                              │
   │ info.udi = '/org/freedesktop/Hal/devices/storage_serial__USB_Flash_Memory_001D0F0C0898C8B123BF0199_0_0'  (string)                        │
   │ info.vendor = ''  (string)                                                                                                               │
   │ linux.hotplug_type = 3  (0x3)  (int)                                                                                                     │
   │ linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-4/1-4:1.0/host10/target10:0:0/10:0:0:0/block/sde'  (string)              │
   │ storage.automount_enabled_hint = true  (bool)                                                                                            │
   │ storage.bus = 'usb'  (string)                                                                                                            │
   │ storage.drive_type = 'disk'  (string)                                                                                                    │
   │ storage.firmware_version = '1.00'  (string)                                                                                              │
   │ storage.hotpluggable = true  (bool)                                                                                                      │
   │ storage.lun = 0  (0x0)  (int)                                                                                                            │
   │ storage.media_check_enabled = true  (bool)                                                                                               │
   │ storage.model = 'USB Flash Memory'  (string)                                                                                             │
   │ storage.no_partitions_hint = false  (bool)                                                                                               │
   │ storage.originating_device = '/org/freedesktop/Hal/devices/usb_device_930_6544_001D0F0C0898C8B123BF0199_if0'  (string)                   │
   │ storage.partitioning_scheme = 'mbr'  (string)                                                                                            │
   │ storage.removable = true  (bool)                                                                                                         │
   │ storage.removable.media_available = true  (bool)                                                                                         │
   │ storage.removable.media_size = 8011087872  (0x1dd7f8000)  (uint64)                                                                       │
   │ storage.removable.support_async_notification = false  (bool)                                                                             │
   │ storage.requires_eject = false  (bool)                                                                                                   │
   │ storage.serial = '_USB_Flash_Memory_001D0F0C0898C8B123BF0199-0:0'  (string)                                                              │
   │ storage.size = 0  (0x0)  (uint64)                                                                                                        │
   │ storage.vendor = ''  (string)                                                                                                            │
   └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘





 4.2 : Outils udev    Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

udevadm est une commande d'administration de udev :

# udevadm info --query=all --name cdrom
P: /devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0
N: sr0
S: scd0
S: disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0
S: cdrom
S: cdrw
S: dvd
S: dvdrw
E: ID_CDROM=1
E: ID_CDROM_CD_R=1
E: ID_CDROM_CD_RW=1
E: ID_CDROM_DVD=1
E: ID_CDROM_DVD_R=1
E: ID_CDROM_DVD_RW=1
E: ID_CDROM_DVD_PLUS_R=1
E: ID_CDROM_DVD_PLUS_RW=1
E: ID_CDROM_DVD_PLUS_R_DL=1
E: ID_CDROM_MRW=1
E: ID_CDROM_MRW_W=1
E: ID_PATH=pci-0000:02:00.1-scsi-0:0:0:0
E: GENERATED=1

udevinfo -a -n /dev/cdrom
ou 
udevinfo -a -p $(udevinfo -q path -n /dev/cdrom)
Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0':
    KERNEL=="sr0"
    SUBSYSTEM=="block"
    DRIVER==""
    ATTR{range}=="1"
    ATTR{removable}=="1"
    ATTR{ro}=="0"
    ATTR{size}=="2097151"
    ATTR{capability}=="19"
    ATTR{stat}=="       0        0        0        0        0        0        0        0        0        0        0"

  looking at parent device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block':
    KERNELS=="block"
    SUBSYSTEMS==""
    DRIVERS==""

  looking at parent device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0':
    KERNELS=="6:0:0:0"
    SUBSYSTEMS=="scsi"
    DRIVERS=="sr"
    ATTRS{device_blocked}=="0"
    ATTRS{type}=="5"
    ATTRS{scsi_level}=="6"
    ATTRS{vendor}=="PIONEER "
    ATTRS{model}=="DVD-RW  DVR-115D"
    ATTRS{rev}=="1.13"
    ATTRS{state}=="running"
    ATTRS{timeout}=="0"
    ATTRS{iocounterbits}=="32"
    ATTRS{iorequest_cnt}=="0x3260"
    ATTRS{iodone_cnt}=="0xca0"
    ATTRS{ioerr_cnt}=="0x0"
    ATTRS{modalias}=="scsi:t-0x05"
    ATTRS{evt_media_change}=="0"
    ATTRS{queue_depth}=="1"
    ATTRS{queue_type}=="none"

  looking at parent device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0':
    ..........
    ..................
    on remonte ainsi les parents un par un jusqu'au devices/pci0000:00

udevadm test [options] devpath
Pour simuler et donc tester un événement pour un device

udevadm test /devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/bloc/sr0
ou
udevadm test /sys/block/sr0
This program is for debugging only, it does not run any program,
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.

parse_file: reading '/lib/udev/rules.d/10-console.rules' as rules file
parse_file: reading '/etc/udev/rules.d/10-vboxdrv.rules' as rules file
parse_file: reading '/lib/udev/rules.d/40-alsa.rules' as rules file
parse_file: reading '/etc/udev/rules.d/40-multipath.rules' as rules file
parse_file: reading '/lib/udev/rules.d/40-redhat.rules' as rules file
parse_file: reading '/lib/udev/rules.d/50-udev-default.rules' as rules file
parse_file: reading '/etc/udev/rules.d/51-packagekit-firmware.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-cdrom_id.rules' as rules file
parse_file: reading '/etc/udev/rules.d/60-libmtp.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-net.rules' as rules file
parse_file: reading '/etc/udev/rules.d/60-pcmcia.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-persistent-input.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-persistent-storage-tape.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-persistent-storage.rules' as rules file
parse_file: reading '/lib/udev/rules.d/60-persistent-v4l.rules' as rules file
parse_file: reading '/etc/udev/rules.d/60-wacom.rules' as rules file
parse_file: reading '/lib/udev/rules.d/61-persistent-storage-edd.rules' as rules file
parse_file: reading '/lib/udev/rules.d/64-device-mapper.rules' as rules file
parse_file: reading '/lib/udev/rules.d/64-md-raid.rules' as rules file
parse_file: reading '/etc/udev/rules.d/70-mdadm.rules' as rules file
parse_file: reading '/etc/udev/rules.d/70-persistent-cd.rules' as rules file
parse_file: reading '/lib/udev/rules.d/70-persistent-net.rules' as rules file
parse_file: reading '/lib/udev/rules.d/75-cd-aliases-generator.rules' as rules file
parse_file: reading '/lib/udev/rules.d/75-persistent-net-generator.rules' as rules file
parse_file: reading '/lib/udev/rules.d/79-fstab_import.rules' as rules file
parse_file: reading '/lib/udev/rules.d/80-drivers.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-pcscd_ccid.rules' as rules file
parse_file: reading '/etc/udev/rules.d/85-pcscd_egate.rules' as rules file
parse_file: reading '/lib/udev/rules.d/88-clock.rules' as rules file
parse_file: reading '/etc/udev/rules.d/90-alsa.rules' as rules file
parse_file: reading '/etc/udev/rules.d/90-hal.rules' as rules file
parse_file: reading '/etc/udev/rules.d/91-drm-modeset.rules' as rules file
parse_file: reading '/lib/udev/rules.d/95-pam-console.rules' as rules file
parse_file: reading '/lib/udev/rules.d/95-udev-late.rules' as rules file
parse_file: reading '/etc/udev/rules.d/97-bluetooth-serial.rules' as rules file
parse_file: reading '/etc/udev/rules.d/99-fuse.rules' as rules file
import_uevent_var: import into environment: 'MAJOR=11'
import_uevent_var: import into environment: 'MINOR=0'
import_uevent_var: import into environment: 'DEVTYPE=disk'
udevtest: looking at device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' from subsystem 'block'
udev_rules_get_name: add symlink 'scd0'
udev_node_mknod: mknod(/dev/.tmp-11-0, 060600, (11,0))
udev_node_mknod: chmod(/dev/.tmp-11-0, 060600)
udev_node_mknod: chown(/dev/.tmp-11-0, 0, 0)
run_program: 'cdrom_id --export /dev/.tmp-11-0'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_CD_R=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_CD_RW=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_R=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_RW=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_R=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_RW=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_DVD_PLUS_R_DL=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_DVD_PLUS_RW=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_STATE=complete'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_SESSION_COUNT=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_TRACK_COUNT=1'
run_program: '/lib/udev/cdrom_id' (stdout) 'ID_CDROM_MEDIA_TRACK_COUNT_DATA=1'
run_program: '/lib/udev/cdrom_id' returned with status 0
match_rule: '/sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0/whole_disk' does not exist
run_program: 'scsi_id --export --whitelisted -d /dev/.tmp-11-0'
run_program: '/lib/udev/scsi_id' returned with status 1
run_program: 'path_id /devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
run_program: '/lib/udev/path_id' (stdout) 'ID_PATH=pci-0000:02:00.1-scsi-0:0:0:0'
run_program: '/lib/udev/path_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0'
run_program: 'vol_id --export --skip-raid --offset= /dev/.tmp-11-0'
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_USAGE=filesystem'
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_TYPE=iso9660'
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_VERSION='
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_UUID='
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_UUID_ENC='
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_LABEL=F10-i686-Live'
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_LABEL_ENC=F10-i686-Live'
run_program: '/lib/udev/vol_id' (stdout) 'ID_FS_LABEL_SAFE=F10-i686-Live'
run_program: '/lib/udev/vol_id' returned with status 0
udev_rules_get_name: add symlink 'disk/by-label/F10-i686-Live'
match_rule: set ENV 'GENERATED=1'
udev_rules_get_name: add symlink 'cdrom'
match_rule: set ENV 'GENERATED=1'
udev_rules_get_name: add symlink 'cdrw'
match_rule: set ENV 'GENERATED=1'
udev_rules_get_name: add symlink 'dvd'
match_rule: set ENV 'GENERATED=1'
udev_rules_get_name: add symlink 'dvdrw'
run_program: 'fstab_import --root=/dev sr0 scd0 disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0 disk/by-label/F10-i686-Live cdrom cdrw dvd dvdrw mapper/'
run_program: '/lib/udev/fstab_import' returned with status 0
udev_rules_get_name: no node name set, will use kernel name 'sr0'
udev_device_event: device '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' already in database, cleanup
udev_node_add: creating device node '/dev/sr0', major=11, minor=0, mode=0660, uid=0, gid=6
udev_node_update_symlinks: update symlink 'scd0' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/scd0'
update_link: found 1 devices with name 'scd0'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'scd0'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'scd0' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/disk\x2fby-path\x2fpci-0000:02:00.1-scsi-0:0:0:0'
update_link: found 1 devices with name 'disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'disk/by-label/F10-i686-Live' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/disk\x2fby-label\x2fF10-i686-Live'
update_link: found 1 devices with name 'disk/by-label/F10-i686-Live'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'disk/by-label/F10-i686-Live'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'disk/by-label/F10-i686-Live' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'cdrom' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/cdrom'
update_link: found 1 devices with name 'cdrom'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'cdrom'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'cdrom' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'cdrw' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/cdrw'
update_link: found 1 devices with name 'cdrw'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'cdrw'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'cdrw' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'dvd' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/dvd'
update_link: found 1 devices with name 'dvd'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'dvd'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'dvd' with target 'sr0' has the highest priority 0, create it
udev_node_update_symlinks: update symlink 'dvdrw' of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0'
udev_db_get_devices_by_name: found index directory '/dev/.udev/names/dvdrw'
update_link: found 1 devices with name 'dvdrw'
update_link: found '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' for 'dvdrw'
update_link: compare (our own) priority of '/devices/pci0000:00/0000:00:1c.0/0000:02:00.1/host6/target6:0:0/6:0:0:0/block/sr0' 0 >= 0
update_link: 'dvdrw' with target 'sr0' has the highest priority 0, create it
udevtest: run: 'socket:/org/kernel/dm/multipath_event'
udevtest: run: 'socket:/org/freedesktop/hal/udev_event'
udevtest: run: '/sbin/pam_console_apply /dev/sr0 /dev/scd0 /dev/disk/by-path/pci-0000:02:00.1-scsi-0:0:0:0 /dev/disk/by-label/F10-i686-Live /dev/cdrom /dev/cdrw /dev/dvd /dev/dvdrw'
udevtest: run: 'socket:@/org/kernel/udev/monitor'


udevadm control --log_priority=debug
                               info
                               err
Voir aussi le paramétrage du fichier /etc/udev/udev.conf


udevadm control --reload_rules




 5 : BOOT CD ET IMAGES ISO   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les images ISO (ISO 9660 ou des dérivés) est une norme qui définit le (les) systèmes de fichiers sur CD mais aussi souvent sur DVD.

Pratiquement tous les supports CD/DvD de données ou bootable suivent cette norme.

Il existe historiquement plusieurs niveaux de ISO 9660 ou des variantes (Joliet, ... ) poour gérer des noms de fichiers qui au début ne dépassaient pas huit caractères.

On trouve souvent des images ISO qui sont des sources ou des copies (sur disque dur) de CD/DVD gérés par la norme ISO 9660 ou ses variantes.

Ces fichiers images iso peuvent être


Pour être bootable un CD ou un DVD doit suivres des normes comme El Torito ou EFI
On pourra utiliser le logiciel (graphique) isomaster ou en mode commande comme dans le paragraphe suivant.




 5.1 : ETAPES CREATION CD/DvD isolinux   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil


Pour éviter de perdre du temps avec le gravage d'un support, tester votre image dans une machine virtuelle acceptant le boot à partir d'une image iso.




 5.2 : MODIFICATION PERSONNALISATION LiveCD   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Les manipulations décrites dans le chapitre précédent peuvent être assez longues et hasardeuses.

Dans certains cas il suffit peut-être de prendre un LiveCD éxistant et en faire une variante.

Le principe sera simple


Pour éviter de perdre du temps avec le gravage d'un support, tester votre image dans une machine virtuelle acceptant le boot à partir d'une image iso.


EXEMPLE AVEC UN LIVE CD LiveCDf10
mount -o loop /chemin_du_repertoire_pere_de_l_image/F10-i686-Live.iso /mnt/f10
cd /mnt
rsync -avz f10 /tmp
...........
..................
mkisofs -V F10-i686-Live -o nom_fichier.iso_dest -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -r -l -L /tmp/f10


CONTENU D'UN LiveCDf10
┌──────────────────────────────────────────────────────────────────┐
│ EFI                               ────┐                          │
│ EFI/boot                              │                          │
│ EFI/boot/boot.conf                    │                          │  boot.conf     ::= Menu de boot EFI
│ EFI/boot/boot.efi                     │                          │
│ EFI/boot/bootia32.conf                │                          │  bootia32.conf ::= Menu de boot EFI
│ EFI/boot/bootia32.efi                 │                          │
│ EFI/boot/grub.conf                    │                          │
│ EFI/boot/initrd0.img                  ├── Boot EFI               │
│ EFI/boot/isolinux.bin                 │                          │  isolinux.bin ::= Chargeur isolinux
│ EFI/boot/isolinux.cfg                 │                          │  isolinux.cfg ::= Menu de boot isolinux 
│ EFI/boot/memtest                      │                          │
│ EFI/boot/splash.jpg                   │                          │
│ EFI/boot/splash.xpm.gz                │                          │
│ EFI/boot/vesamenu.c32                 │                          │
│ EFI/boot/vmlinuz0                 ────┘                          │  vmlinuz0     ::= Noyau (kernel)
│ GPL                                                              │
│ isolinux                          ────┐                          │
│ isolinux/boot.cat                     │                          │
│ isolinux/initrd0.img                  │                          │  initrd0.img  ::= image initrd (INITial RamDisk)
│ isolinux/isolinux.bin                 │                          │  isolinux.bin ::= Chargeur isolinux
│ isolinux/isolinux.cfg                 ├─── Boot isolinux         │  isolinux.cfg ::= Menu de boot isolinux
│ isolinux/memtest                      │                          │
│ isolinux/splash.jpg                   │                          │
│ isolinux/vesamenu.c32                 │                          │
│ isolinux/vmlinuz0                 ────┘                          │  vmlinuz0     ::= Noyau (kernel)
│ LiveOS                            ────┐                          │
│ LiveOS/livecd-iso-to-disk             ├── Futur /root            │
│ LiveOS/osmin.img                      │                          │
│ LiveOS/squashfs.img               ────┘                          │  image du système de fichier (/root définitif) à monter en readonly à partir du CD ou en mémoire
│ README                                                           │
└──────────────────────────────────────────────────────────────────┘




 5.3 : VERIFICATION IMAGE SUPPORT ISO   Début   Précédent   Sommaire   Préc.page.lue   Accueil

Les sites proposant en téléchargement des images ISO y associent des chiffres clés calculés par des algorithmes (souvent de chiffrage) comme MD5 ou SHA1SUM ou encore SHA256SUM Le plus courant est actuellement SHA1SUM ou SHA256SUM qui offrent plus de garanties que MD5.

Dès la réception d'un fichier image, il est important de vérifier son chiffre de contrôle avec celui fourni par le site émetteur. (Sur des fichiers récupérés par un logiciel torrent, ce contrôle peut être considéré comme inutile, si l'on considère que son logiciel torrent est fiable). mais de toute façon cela ne prend pas un temps considérable.

Et il faudra aussi vérifier le résultat de la gravure (surtout si le logiciel de gravure ne le propose pas).

Vérification sha1sum d'un fichier image ISO
sha1sum nom_fichier_iso
c0efba4eb55c142bcda3d78d8a02fada2339a220

Pour la vérification d'un support CD/DVD on utilisera la commande dd, mais en lui disant de se limiter à la taille de l'image iso en comptant sur des blocs de 2k (2048) octets.

Donc prendre la taille (en octets) d'un fichier iso (exemple 714407936).

Diviser 714407936/2048 donne 348832.

Essayer la syntaxe d'opération arithmétique $((714407936/2048)) c'est l'adopter (Voir Tutoriel SHELL).

Donc on demandera à dd de lire 348832 blocs de 2k.

Vérification avec sha1sum d'un support gravé
isosize /dev/cdrom
714407936
à vérifier avec la taille en octets du fichier iso.

Puis : 
echo $((714407936/2408))
348832

On pourrait obtenir le résultat directement avec :
echo $(($(isosize /dev/cdrom)/2048))


dd if=/dev/cdrom bs=2k count=348832 | sha1sum
ou
dd if=/dev/cdrom bs=2k count=$(($(isosize /dev/cdrom)/2048)) | sha1sum

c0efba4eb55c142bcda3d78d8a02fada2339a220



LISTE DES MOTS-CLES

Auto-complement2.4.10 Auto-complement et divers outils dans grub
blkid2.2.2 blkid Affichage UUID et LABEL de tous les devices. Recherche device par son LABEL ou son UUID
blkid2.2.1 findfs Recherche d'un device à partir de son UUID ou son LABEL
cfdisk2.1.1 cfdisk GESTION TABLES PARTITIONS DISQUES.
cfdisk2.1 GESTION DES PARTITIONS
chkconfig3.5 Démarrage des services
dmesg3.1 Chargement du noyau
dmidecode1.1 dmidecode Décodeur table DMI (SMBIOS)
dosfslabel2.2.4 e2label ntfslabel dosfslabel Lecture/Ecriture label
dosfslabel2.2.3 vol_id Affichage UUID et LABEL d'un device
dumpe2fs2.2.6 dumpe2fs Informations Système de fichier ext2/ext3
dumpe2fs2.2.5 tune2fs Ecriture Label/UUID
Dépannage avec l'interpréteur grub2.4.9 Dépannage avec l'interpréteur grub
e2label2.2.4 e2label ntfslabel dosfslabel Lecture/Ecriture label
e2label2.2.3 vol_id Affichage UUID et LABEL d'un device
etc/rc.d/rc.local3.5 Démarrage des services
fdisk2.1.2 fdisk GESTION TABLES PARTITIONS DISQUES.
fdisk2.1.1 cfdisk GESTION TABLES PARTITIONS DISQUES.
findfs2.2.1 findfs Recherche d'un device à partir de son UUID ou son LABEL
findfs2.2 GESTION DES UUID ET LABELS
fsck2.3.3 fsck Vérification/Réparation d'une partition
fsck2.3.2 umount Démontage d'une partition
fstab2.3 MONTAGE PARTITION
fstab2.3.3 fsck Vérification/Réparation d'une partition
genisoimage5 BOOT CD ET IMAGES ISO
grub2.4.2 grub grub en mode commande
grub2.4.1 grub-install script d'installation
grub cat2.4.2.1 grub find grub cat Recherche/Affichage d'un fichier
grub find2.4.2.1 grub find grub cat Recherche/Affichage d'un fichier
grub setup2.4.2.2 grub setup Mise en place (installation) de grub
grub-install2.4.1 grub-install script d'installation
grub-install2.4 GRUB
grub.conf2.4.3 grub.conf menu.lst Fichier menu de grub
hald4 Détection montage périphériques udev hald
hald3.5.1 Administration des services
initctl3.2.2 init Upstart
isomaster5 BOOT CD ET IMAGES ISO
LABELS2.2 GESTION DES UUID ET LABELS
lshw1.2 lshw Liste composants HW
lshw1.2.1 Exemples d'utilisation de lshw
lshw1.1.1 Exemples d'utilisation de dmidecode
lsinitrd3.1 Chargement du noyau
lsmod1.5 lsmod Liste modules
lsmod1.4.1 Exemples d'utilisation de lsusb
lspci1.3 lspci Liste périphériques PCI
lspci1.3.1 Exemples d'utilisation de lspci
lspci1.2.1 Exemples d'utilisation de lshw
lsusb1.4 lsusb Liste périphériques USB
lsusb1.4.1 Exemples d'utilisation de lsusb
lsusb1.3.1 Exemples d'utilisation de lspci
menu.lst2.4.3 grub.conf menu.lst Fichier menu de grub
Messages d'erreur de grub2.4.7 Messages d'erreur de grub
mkinitrd3.1 Chargement du noyau
mkisofs5 BOOT CD ET IMAGES ISO
Modification temporaire des options de boot2.4.5 Modification temporaire des options de boot dans grub
mount2.3.1 mount Montage d'une partition
mount2.3 MONTAGE PARTITION
ntfslabel2.2.4 e2label ntfslabel dosfslabel Lecture/Ecriture label
ntfslabel2.2.3 vol_id Affichage UUID et LABEL d'un device
options de boot2.4.4 options de boot Options de boot du kernel
parted2.1.3 parted GESTION TABLES PARTITIONS DISQUES.
parted2.1.2 fdisk GESTION TABLES PARTITIONS DISQUES.
parted -l2.1.3 parted GESTION TABLES PARTITIONS DISQUES.
rc.sysinit3.3 Initialisation système rc.sysinit
Réparation de grub2.4.8 Réparation de grub
S99local3.5 Démarrage des services
Sauvegarde de grub2.4.6 Sauvegarde de grub
service3.5.1 Administration des services
tune2fs2.2.5 tune2fs Ecriture Label/UUID
tune2fs2.2.4 e2label ntfslabel dosfslabel Lecture/Ecriture label
udev4 Détection montage périphériques udev hald
udev3.5.1 Administration des services
udev4.2 Outils udev
udevadm4.2 Outils udev
umount2.3.2 umount Démontage d'une partition
umount2.3.1 mount Montage d'une partition
UUID2.2 GESTION DES UUID ET LABELS
vol_id2.2.3 vol_id Affichage UUID et LABEL d'un device
vol_id2.2.2 blkid Affichage UUID et LABEL de tous les devices. Recherche device par son LABEL ou son UUID



Ce document est distribué selon les termes de la licence G.P.L. Documentation. Vous êtes autorisés à le diffuser sur tout support de votre choix, à le publier sur un site internet ou intranet, à la condition que l'auteur original soit mentionné, ce afin d'assurer un meilleur suivi des mises à jour de ce document.

Auteur: Patrick MARION <pmarion19@free.fr>


Valid HTML 4.01 Transitional

Ce site est listé dans la catégorie Formation en informatique : Formations Linux de l'annuaire Produits de Google et Les actualités du Dicodunet