Accéder au contenu.
Menu Sympa

linux-31 - Re: [Linux-31] /dev/loop*

Objet : Discussions sur le logiciel libre

Archives de la liste

Re: [Linux-31] /dev/loop*


Chronologique Discussions 
  • From: Pascal Hambourg <pascal AT plouf.fr.eu.org>
  • To: linux-31 AT culte.org
  • Subject: Re: [Linux-31] /dev/loop*
  • Date: Mon, 1 Feb 2021 21:54:34 +0100
  • Organization: Plouf !

Le 31/01/2021 à 18:19, Jean-Marc MONGRELET (via linux-31 Mailing List) a écrit :
Le 31/01/2021 18:06, Pascal Hambourg a écrit :

Non, ça ne montre que la taille apparente des périphériques blocs, pas
l'espace qu'ils occupent effectivement.

Par exemple:
$ losetup -a
...
...
/dev/loop10: []: (/var/lib/snapd/snaps/gtk-common-themes_1514.snap)
$ ls -sh /var/lib/snapd/snaps/gtk-common-themes_1514.snap
65M /var/lib/snapd/snaps/gtk-common-themes_1514.snap
$ sudo fdisk -l
...
...
Disque /dev/loop10 : 64,79 MiB, 67915776 octets, 132648 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
...
...

Ça a l'air de pourtant bien correspondre!

1) "ls" affiche la taille apparente du fichier, pas son occupation réelle. Pour cela utiliser "du".

2) C'est un cas particulier, la taille du périphérique loop ne correspond pas forcément à la taille du fichier ni à l'espace disque occupé par ce dernier.

Oui, tu serais en train de jouer sur la subtilité de la taille du fichier et de son occupation réelle en termes de cluster!??

Entre autres, mais pas seulement.

Contre-exemples :

1) Fichier creux (sparse file)
usage : image disque qui n'occupe que l'espace utilisé

# fallocate -o 9T -l 1 blob # creation d'un fichier creux de 9 Tio
# note : n'exécutez pas cette commande sur un système dfe fichiers qui
# ne supporte pas les fichiers creux

# ls -lh blob # taille apparente
-rw-r--r-- 1 root root 9,1T févr. 1 21:09 blob

Pour ceux qui se posent la question, hélas non, je n'ai pas 9 Tio d'espace disque libre, pas même 1 Go :

# df -hT .
Sys. de fichiers Type Taille Utilisé Dispo Uti% Monté sur
/dev/sda11 ext4 4,5G 3,9G 413M 91% /

# du -h blob # espace réellement occupé
4,0K blob

2) Périphérique loop avec offset
usage : accès au contenu d'un membre d'un ensemble RAID 1

# mdadm --examine /dev/sda8
/dev/sda8:
(...)
Avail Dev Size : 959968 (468.81 MiB 491.50 MB)
Array Size : 479936 (468.77 MiB 491.45 MB)
Used Dev Size : 959872 (468.77 MiB 491.45 MB)
Data Offset : 544 sectors

# losetup --find --show --offset=$((544*512)) /dev/sda8
/dev/loop0

# fdisk -l
(...)
Device Start End Sectors Size Type
/dev/sda8 34816 995327 *960512* 469M Linux RAID
(...)
Disk /dev/loop0: 468,8 MiB, 491503616 bytes, *959968* sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

3) Périphérique loop avec offset et taille limite
usage : accès au contenu d'une partition dans une image disque

# ls -l disque
-rw-r--r-- 1 root root 1,1T févr. 1 21:41 disque

# du -h disque
8,0K disque

# fdisk -l disque

Disk disque: 1 TiB, 1099511627776 bytes, 2147483648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xfdebecac

Device Boot Start End Sectors Size Id Type
disque1 2048 209717247 209715200 100G 83 Linux
disque2 209717248 838862847 629145600 300G 83 Linux
disque3 838862848 2147483647 1308620800 624G 83 Linux

# losetup --find --show --offset=$((209717248*512)) \
--sizelimit=$((629145600*512)) disque
/dev/loop0

# fdisk -l /dev/loop0

Disk /dev/loop0: 300 GiB, 322122547200 bytes, 629145600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


  • Re: [Linux-31] /dev/loop*, Pascal Hambourg, 01/02/2021

Archives gérées par MHonArc 2.6.19+.

Haut de le page