Linux.general : loop défectueux sous Debian ?
Posté par Kerro () le 02 juin 2008
0
Bonjour,
j'ai déjà posté quelque chose sur un problème que j'ai avec le module loop sous Debian (http://linuxfr.org/comments/935592.html). Je pensais que ça venait de ntfs-3g mais je n'avais probablement pas les yeux en face des trous.
Si je monte un système de fichiers via loop, je ne peux pas écrire dedans "massivement". J'ai fait pas mal de tests et rien à faire avec Debian. Par contre ça fonctionne avec Fedora Live. Fichtre.
J'ai testé avec Debian Etch 32 et 64 bits, avec Linux Mint 4.0 (c'est un descendant d'Ubuntu, donc de Debian). L'erreur est présente sur tous ces systèmes. J'ai testé avec Fedora Live et pas d'erreur.
J'ai posté un rapport de bug (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=483830).
De bonnes âmes veulent tester ce qui suit pour confirmer/infirmer le problème ?
ATTENTION: cette manipulation risque éventuellement de bloquer la machine. Ne pas le faire sur un système distant.
En tant que root:
Charger le module loop (en principe inutile)
# modprobe loop
Créer un répertoire de test
# cd ~
# mkdir test
# cd test
Créer un disque virtuel d'environ 2 Go
# dd if=/dev/zero of=virtualdisk bs=1M count=2000
--> 53 Mb/s chez moi
# losetup /dev/loop0 virtualdisk
Test 1: écrire directement dans le disque virtuel
# dd if=/dev/zero of=/dev/loop0 bs=1M
--> 14 Mb/s (4 fois plus lent)
Créer un système de fichiers dans le disque virtuel, et le monter
# mkfs.ext2 /dev/loop0
# mount /dev/loop0 /mnt
Test 2: écrire dans le système de fichiers en question
# dd if=/dev/zero of=/mnt/bigfile bs=1M
--> chez moi ça bloque au bout de quelques secondes
Dans une autre fenêtre de terminal, si je fais un iostat je constate qu'un coeur est en 100% d'iowait (c'est un double coeur, j'ai donc 50% d'iowait au total).
ctrl+C met plusieurs secondes avant que j'ai de nouveau la main.
Quel débit avez-vous en natif ? (le premier dd)
Quel débit avez-vous au premier test (le second dd)
Que donne le test 2 chez vous ?
> Lire le message (15 commentaires, moyenne: 1,9).
Vous avez demandé le commentaire #937617.



Linux Mint Live
J'ai testé avec Linux Mint 4.0 KDE (http://www.linuxmint.com/mirrors.php?id=23). Avec cette version live, si une autre personne fait le test nous aurons exactement la même version pour tout.
Je démarre la machine sur le DVD, mode graphique sans échec, clavier français. J'ouvre un terminal. Jusque là, rien d'étrange :-)
# sudo mkdir /mnt/1
# sudo mkdir /mnt/2
# sudo mount /dev/sda1 /mnt/1
(sda1 est une partition contenant un espace libre)
# sudo dd if=/dev/zero of=/mnt/1/grosfichier bs=1M count=2000
--> 76,1 Mo/s
# sudo losetup -f
--> /dev/loop1
# sudo losetup /dev/loop1 /mnt/1/grosfichier
Test1:
# sudo dd if=/dev/zero of=/dev/loop1 bs=1M
--> ça commence à écrire, puis plus rien
--> ctrl+C fonctionne après plus de 20 secondes
# sudo mkfs.ext2 /dev/loop1
# sudo mount /dev/loop1 /mnt/2
# sudo dd if=/dev/zero of=/mnt/2/grosfichier bs=1M count=10
--> ça fonctionne
Test2:
# sudo dd if=/dev/zero of=/mnt/2/grosfichier bs=1M
--> 50 Mo/s tient, étrange, le premier test ne fonctionne pas, mais celui-ci est ok (?!!)
# sudo umount /mnt/2
Test1 bis:
# sudo dd if=/dev/zero of=/dev/loop1 bs=1M count=10
--> ça fonctionne
# sudo dd if=/dev/zero of=/dev/loop1 bs=1M count=100
--> ça fonctionne
# sudo dd if=/dev/zero of=/dev/loop1 bs=1M count=1000
--> ça bloque
Je ne suis tout de même pas le seul sur terre à constater ce problème... si ? :-)
[ Répondre ]
[^]Re: Linux Mint Live
As tu essayé avec l'image qemu ?
Je suis désolé, mais je n'ai pas sous la main de machine que je puisse rebooter sur un Live-CD.
[ Répondre ]
[^]qemu: installation fraîche
L'image virtuelle d'Etch que tu as proposée est en anglais. Clavier pas terrible. Je refais :-)
# cd ~
# mkdir test
# cd test
# wget http://cdimage.debian.org/debian-cd/4.0_r3/i386/iso-cd/debia(...)
# dd if=/dev/zero of=montest bs=1M count=10000
--> 37.8 Mo/s
# qemu -hda montest -cdrom debian-40r3-i386-netinst.iso -boot d -m 256 -vnc 1 -k fr -localtime -net none
--> je lance une console vnc vers mamachine:1
--> j'ai l'écran d'accueil de Debian, j'appuie sur ENTREE... Erreur de segmentation
--> je relance la même commande, ça fonctionne (mais l'affichage vnc est très étrange, et il faut relancer vnc plusieurs fois)
une fois l'installation terminée:
# qemu -hda montest -m 256 -vnc 1 -k fr -localtime -net none
Dans la machine virtuelle:
# mkdir test
# cd test
# dd if=/dev/zero of=virt bs=1M count=2000
--> 16.1 Mo/s
# losetup -f
# losetup /dev/loop0 virt
# dd if=/dev/zero of=/dev/loop0 bs=1M
--> ça commence à écrire (iostat sur la machine physique le montre)
--> ça se bloque
--> surprise, ça reprends l'écriture après environ une minute
--> 15.2 Mo/s
Deuxième tentative:
# dd if=/dev/zero of=/dev/loop0 bs=1M
--> 38.2 Mo/s (ce qui correspond à l'affichage d'iostat)
Le premier test donne un résultat étrange.
Les tentatives suivantes fonctionnent bien.
[ Répondre ]