[gull] lecture cd audio iso
Marc SCHAEFER
schaefer at alphanet.ch
Sat Nov 11 15:03:39 CET 2006
On Sat, Nov 11, 2006 at 02:46:56PM +0100, Yann Sagon wrote:
> J'ai un cd audio sous forme de fichier iso
Ce n'est pas clair comme description.
soit c'est un fichier image d'un CD audio (l'entier du CD audio stocké
sur disque, prêt à être gravé).
soit c'est un fichier ISO-9660 (éventuellement avec extensions
RockRidge voire Joliet), qui contient donc un système de fichiers
au format ISO-9660. Qu'il contienne finalement des fichiers
informatiques ou audio n'a pas tellement d'importance.
D'après ce que tu dis -- tu parles de mp3 et de ogg -- je supposerai que
tu veux monter un système de fichiers ISO-9660 sous forme d'un gros
fichier, plutôt que le CD ou DVD lui-même. Sinon regarder p.ex. la
commande cdparanoia(1).
> Existe t'il un programme capable d'utiliser une image iso à la place
> d'un disque physique?
Sous UNIX, ce que tu appelles un `disque physique' est en fait un
`périphérique physique de type bloc':
schaefer at reliant:/tmp$ ls -la /dev/hda
brw-rw---- 1 root cdrom 3, 0 Nov 11 10:24 /dev/hda
^
|
|
Pour accéder à un `système de fichiers' quelconque (tant qu'il est
supporté par le kernel, voir /proc/filesystems), il suffit de le monter
depuis un `disque physique', via la commande mount(8) bien sûr.
D'autres choses peuvent bien sûr résider dans un périphérique physique
de type bloc: une zone de swap (ce n'est pas un système de fichiers),
p.ex.
Une première idée qui pourrait fonctionner serait d'utiliser une partition
inutilisée pour y déposer temporairement ce fichier. On pourrait
donc imaginer désactiver le swap, déposer ce fichier ISO-9660 dedans
(avec cp fichier /dev/hda2) puis monter ce périphérique physique via mount,
si la taille de swap est supérieure à la taille du fichiers.
Heureusement pour nous, quelqu'un a développé un truc très utile,
qui transforme tout fichier UNIX (ou presque) en un bloc-device virtuel. Cela
s'appelle un `loopback mount'.
Heureusement pour nous encore, sauf cas particuliers, l'instanciation
du périphérique type bloc virtuel (/dev/loopX) se fait automatiquement
via la commande mount(8).
Exemple:
schaefer at reliant:/tmp$ mkisofs -o blabla.iso-9660 /etc/default
schaefer at reliant:/tmp$ sudo mount -o loop blabla.iso-9660 /mnt
schaefer at reliant:/tmp$ df /mnt
Filesystem 1K-blocks Used Available Use% Mounted on
/tmp/blabla.iso-9660 430 430 0 100% /mnt
schaefer at reliant:/tmp$ sudo umount /mnt
Grâce à ce loopback mount (et au loopback device associé), voir
mount(8), losetup(8)) on peut aussi:
- chiffrer des systèmes de fichiers ou le swap
- tester des images avant de les utiliser via QEMU, ou de générer
un floppy ou CD de boot
- récupérer des disques endommagés
etc.
PS: ne pas confondre avec un `bind mount', cf mount(8)
More information about the gull
mailing list