PARTITION : Savoir qui est quoi

Bonjour,

Sur ma Debian j’ai actuellement sda6 qui me sert de /home et sda5 qui est mon /

Je suis entrain de faire un petit script qui m’analyse les taux d’occupations des disques et qui me fait un petit rapport.

J’aurais voulu pour cela me servir de cette commande :

# df -H Sys. fich. Taille Util. Dispo Uti% Monté sur rootfs 15G 3,8G 11G 27% / udev 11M 0 11M 0% /dev tmpfs 414M 459k 414M 1% /run /dev/disk/by-uuid/3bc5df65-74da-4d2d-8b1a-5aa4c5c1bedf 15G 3,8G 11G 27% / tmpfs 5,3M 0 5,3M 0% /run/lock tmpfs 828M 0 828M 0% /run/shm /dev/sda6 15G 844M 14G 7% /home

Mais comme on peut le voir, la partition / n’est pas vu comme /dev/sda5 mais comme /dev/disk/by-uuid/3bc5df65-74da-4d2d-8b1a-5aa4c5c1bedf

Pouvez-vous m’expliquer pourquoi?

De plus j’aimerais que vous me disiez si vous connaissez une commande qui puisse me dire que mon / est bien sur /dev/sda5.

Pour info :

[code]# fdisk -l

Disque /dev/sda : 120.0 Go, 120034123776 octets
255 têtes, 63 secteurs/piste, 14593 cylindres, total 234441648 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d’E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x8eccfcf3

Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 2046 58593279 29295617 5 Étendue
/dev/sda5 2048 29296639 14647296 83 Linux
/dev/sda6 29298688 58593279 14647296 83 Linux[/code]

[code]# cat /etc/fstab

/etc/fstab: static file system information.

Use ‘blkid’ to print the universally unique identifier for a

device; this may be used with UUID= as a more robust way to name devices

that works even if disks are added and removed. See fstab(5).

UUID=3bc5df65-74da-4d2d-8b1a-5aa4c5c1bedf / ext4 errors=remount-ro 0 1

/home was on /dev/sda6 during installation

UUID=809d307b-55f0-4b49-8f10-f9e25fd26476 /home ext4 defaults 0 2[/code]

Bonjour,

Tu trouveras la correspondance des disques /dev vs uuid avec cette commande :

ls -l /dev/disk/by-uuid/

A+

Merci pour la commande. Je peux en effet m’en servir dans mon script. Par contre j’aimerais savoir pourquoi df utilise les deux manières de nommer les points de montage.

Parce qu’à part intervention de ta part, la racine est montée par son UUID, via grub. Tu peux le vérifier en faisant :

$ cat /proc/cmdline

On pourrait très bien ne pas utiliser l’UUID et utiliser [mono]/dev/sdaX[/mono]. Seulement /dev/sdaX n’est pas toujours valable, par exemple si tu déplaces un disque interne vers un disque externe en USB, et que tu ajoutes un autre disque interne. Si tu veux booter sur l’USB, en fait grub va aller chercher le noyau du disque dur interne.

Sur ma sid par contre, il n’y a pas d’UUID dans la sortie de df, ni de mention de rootfs. :shifty:

Pour ton script, c’est pas grave en fait, y a [mono]readlink[/mono], tiens un exemple vite fait, qui t’afficheras le chemin exact :

#!/bin/sh

df -H | awk '
    /^\/dev/ {
        cmd = "readlink -f "$1
        cmd | getline realpath
        close(cmd)
        printf("%s => %s (%s/%s) %s\n", realpath, $6, $3, $2, $5)
    }
'

Retour:

/dev/sda1 => / (5,1G/8,1G) 63%
/dev/sda6 => /media/sda7 (77G/138G) 56%
/dev/sda5 => /home (1,1G/5,2G) 22%

Les autres partitions aussi, ça n’explique rien.

Les autres partitions aussi, ça n’explique rien.[/quote]
Les autres partitions sont montées via l’aide de libmount (kernel.org/pub/linux/utils/ … s/gtk.html) qui s’occupe de faire ce boulot (context.c, ligne 1044, mnt_context_prepare_srcpath(…)) en utilisant libblkid.

Ca m’etonnerait qu’au moment du montage du rootfs, libmount et libblkid soient dispos, ou qu’une fonction identique soit implémentée, mais j’en ai pas la certitude :wink:

Merci pour les explications. Ca m’aide a comprendre un peu mieux ma Debian :slightly_smiling:

Merci aussi pour le petit script avec readlink. Je ne connaissais pas cette commande. Encore un truc d’appris :wink:

[quote=“Knucky”]Les autres partitions sont montées via l’aide de libmount (…) en utilisant libblkid.
Ca m’etonnerait qu’au moment du montage du rootfs, libmount et libblkid soient dispos[/quote]
En effet la différence semble venir de là. La partition racine est montée par la commande [mono]mount[/mono] de l’initramfs (qui provient de busybox ?), et d’après quelques tests celle-ci utilise directement le lien symbolique /dev/disk/… contrairement à la commande [mono]mount[/mono] du système (qui provient d’util-linux) qui monte les partitions figurant dans /etc/fstab. A noter néanmoins que [mono]readlink[/mono], [mono]libblkid[/mono] et [mono]libuuid[/mono] sont bien présents dans l’initramfs, mais l’exécutable [mono]mount[/mono] ne les utilise pas.