#1 Le 20/04/2022, à 22:57
- qolepam
comment repérer les secteurs ou clusters occupés sur un disque dur?
bonjour,
Je suppose avoir formaté complètement un disque dur.
Je suppose avoir crée une table de partition après avoir complètement formaté le disque dur.
Je lui écrit un seul fichier:un pdf par exemple.
Existe-t-il une commande linux permettant de repérer,de lister les secteurs ou plutôt des clusters (dont la taille correspond à la taille d'unité d'allocation) de la partition du disque dur occupés par ce fichier?
Si oui,laquelle?
Si non,un logiciel ou un soft faisant cette opération?
merci de votre aide
Hors ligne
#2 Le 20/04/2022, à 23:43
- jplemoine
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Je pense que ça dépend du formatage. Ensuite, en extN, je crois que c'est plus ou dynamique.
Le fichier est relié à un i-node et l'i-node change d'emplacement (au démarrage ?) : c'est pour ça qu'il n'y a pas besoin de défragmenter..
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#3 Le 20/04/2022, à 23:49
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
quel rapport entre l'i node et la position du secteur ou cluster sur le disque dur?
Hors ligne
#4 Le 21/04/2022, à 00:14
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Bonsoir,
Tout dépend du système de fichiers
Par exemple en NTFS, les fichiers se mettent à la queue leu leu avec leur taille exacte
Donc lorsqu'un fichier s'aggrandit ultérieurement, il y a fragmentation systèmatique.
Par exemple en EXT4, les fichiers s'étalent sur la totalité du disque en laissant un certain espace disque libre pour un aggrandissement de taille raisonnable. La fragmentation est donc moins fréquente.
Tu peux connaitre l' implantation du premier "inode" du fichier avec la commande
ls -i Nom du fichier
Note que ce numéro est invariant même lorsque tu changes le nom du fichier
Il existe certainement une formule assez simple pour convertir l'inode en n° de secteur
Cependant, il me semble que cette commande va te donner ta réponse.
$ sudo hdparm --fibmap Nom du fichier
ou celle-ci
filefrag -e Nom du fichier
c'est certainement le sujet de ta question.
Sous ubuntu, il existe encore le format BTRFS ou le format ZFS ou EXFAT avec certainemnet d'utres règles..
Dernière modification par geole (Le 21/04/2022, à 00:39)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#5 Le 22/04/2022, à 21:38
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
j'ai vu ceci:
https://smackerelofopinion.blogspot.com … umber.html
Ce que je ne comprends pas,c'est le byte offset.
Peut-on m'expliquer?
Hors ligne
#6 Le 22/04/2022, à 22:19
- Tawal
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Hello,
Je ne sais pas interpréter le "byte_offset".
Mais, je crois bien que cela représente la fragmentation du fichier sur le disque.
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#7 Le 23/04/2022, à 07:23
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
j'ai vu ceci:
https://smackerelofopinion.blogspot.com … umber.htmlCe que je ne comprends pas,c'est le byte offset.
Peut-on m'expliquer?
Je préfère lire du français
sudo filefrag -v tempfile
Filesystem type is: ef53
File size of tempfile is 26361708544 (6435964 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 104464384.. 104497151: 32768:
1: 32768.. 393215: 104497152.. 104857599: 360448:
2: 393216.. 884735: 104890368.. 105381887: 491520: 104857600:
3: 884736.. 1376255: 105414656.. 105906175: 491520: 105381888:
4: 1376256.. 1867775: 105938944.. 106430463: 491520: 105906176:
5: 1867776.. 2359295: 106463232.. 106954751: 491520: 106430464:
6: 2359296.. 2850815: 106987520.. 107479039: 491520: 106954752:
7: 2850816.. 3342335: 107511808.. 108003327: 491520: 107479040:
8: 3342336.. 3833855: 108036096.. 108527615: 491520: 108003328:
9: 3833856.. 4325375: 108560384.. 109051903: 491520: 108527616:
10: 4325376.. 4816895: 109084672.. 109576191: 491520: 109051904:
11: 4816896.. 5308415: 109608960.. 110100479: 491520: 109576192:
12: 5308416.. 5799935: 110133248.. 110624767: 491520: 110100480:
13: 5799936.. 6051839: 110657536.. 110909439: 251904: 110624768:
14: 6051840.. 6074367: 9308.. 31835: 22528: 110909440:
15: 6074368.. 6096895: 532513.. 555040: 22528: 31836:
16: 6096896.. 6119423: 1056800.. 1079327: 22528: 555041:
17: 6119424.. 6141951: 1581088.. 1603615: 22528: 1079328:
18: 6141952.. 6164479: 2105376.. 2127903: 22528: 1603616:
19: 6164480.. 6187007: 2629664.. 2652191: 22528: 2127904:
20: 6187008.. 6209535: 3153955.. 3176482: 22528: 2652192:
21: 6209536.. 6232063: 3678240.. 3700767: 22528: 3176483:
22: 6232064.. 6254591: 4202528.. 4225055: 22528: 3700768:
23: 6254592.. 6277119: 4728723.. 4751250: 22528: 4225056:
24: 6277120.. 6295551: 5256305.. 5274736: 18432: 4751251:
25: 6295552.. 6318079: 5775392.. 5797919: 22528: 5274737:
26: 6318080.. 6340607: 6299680.. 6322207: 22528: 5797920:
27: 6340608.. 6363135: 6823968.. 6846495: 22528: 6322208:
28: 6363136.. 6385663: 7348256.. 7370783: 22528: 6846496:
29: 6385664.. 6408191: 7872544.. 7895071: 22528: 7370784:
30: 6408192.. 6430719: 8396832.. 8419359: 22528: 7895072:
31: 6430720.. 6435963: 8921120.. 8926363: 5244: 8419360: last,eof
tempfile: 31 extents found
Le colonage est assez clair me semble-t-il
N° extent | adresse logique du début de l'extend | adresse logique de la fin de l'extend | adresse physique du début de l'extend | adresse physique de la fin de l'extend | Taille de l'extend | Eventellement, adresse théorique physique que le début de l'extend aurait du avoir pour être à la suite du précédant. | Colonne disant que c'est le dernier extend
La même chose avec l'autre commande
sudo hdparm --fibmap tempfile
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
HDIO_DRIVE_CMD(identify) failed: Inappropriate ioctl for device
Unable to determine start offset LBA for device, aborting.
C'est vrai que mon exemple est fait dans un RAID formaté en EXT4 et pas une partition ext4 native.
Donc, autre exemple
sudo filefrag -v initrd.img-5.13.0-39-generic -b512
Filesystem type is: ef53
File size of initrd.img-5.13.0-39-generic is 113895983 (222456 blocks of 512 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 16383: 11231232.. 11247615: 16384:
1: 16384.. 32767: 11403264.. 11419647: 16384: 11247616:
2: 32768.. 98303: 11452416.. 11517951: 65536: 11419648:
3: 98304.. 163839: 11337728.. 11403263: 65536: 11517952:
4: 163840.. 180223: 12058624.. 12075007: 16384: 11403264:
5: 180224.. 196607: 12320768.. 12337151: 16384: 12075008:
6: 196608.. 212991: 12369920.. 12386303: 16384: 12337152:
7: 212992.. 222455: 12419072.. 12428535: 9464: 12386304: last,eof
sudo hdparm --fibmap initrd.img-5.13.0-39-generic
initrd.img-5.13.0-39-generic:
filesystem blocksize 4096, begins at LBA 658507776; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
0 669739008 669755391 16384
8388608 669911040 669927423 16384
16777216 669960192 670025727 65536
50331648 669845504 669911039 65536
83886080 670566400 670582783 16384
92274688 670828544 670844927 16384
100663296 670877696 670894079 16384
109051904 670926848 670936311 9464
La documentation dit "Les numéros de secteur sont donnés sous forme de numéros LBA absolus, référencés à partir du secteur 0 du périphérique physique plutôt qu'à partir de la partition ou du syst
J 'ai envie de dire (sous toute réserve)
Qu'il y a un bug sur le premier offset, il ne peut pas commencer à zero
=> trouvé dans le net
$ sudo hdparm --fibmap test
test:
filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
40960 8928120 8928199 80
et que l'offset serait exprimé en BYTE et indiquerait le début du morceau par rapport à la fin/au debut du morceau précédant. Mais je n'arrive pas à confirmer en prenant mon exemple avec filefrag
A prio
Dernière modification par geole (Le 23/04/2022, à 09:28)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#8 Le 23/04/2022, à 21:48
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Je ne comprends toujours pas ce que représente le byte d'offset:
Ah oui j'ai compris! : il faut multiplier le nombre de secteurs par 512 et sommer sur chaque ligne
oui mais pourquoi il y a 8 lignes?(il y a 8 fichiers?)
sudo hdparm --fibmap initrd.img-5.13.0-39-generic
initrd.img-5.13.0-39-generic:
filesystem blocksize 4096, begins at LBA 658507776; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
0 669739008 669755391 16384
8388608 669911040 669927423 16384
16777216 669960192 670025727 65536
50331648 669845504 669911039 65536
83886080 670566400 670582783 16384
92274688 670828544 670844927 16384
100663296 670877696 670894079 16384
109051904 670926848 670936311 9464
Le nombre de secteurs est bien end_LBA-begin_LBA+1
Mais bon j'ai refait la commande pour un fichier fichier1 sur un disque dur.
Le fdisk -l de ce disque dur a donné:
/dev/sdb1. start: 2048
Le sudo hdparm --fibmap fichier1 a donné:
byte_offset. begon_LBA. end_LBA. sectors
0. 259106. 259692. 587
problème est que je ne suis pas arrivé à l'aide de ces commandes de dd d'effacer que ce fichier:
sudo dd if-/dev/zero. of-/dev/sdb1. bs-512. seek-259106
sudo dd if-/dev/zero. of-/dev/sdb. bs-512. seek-259106
Quelle est alors la bonne commande dd pour effacer que ce fichier sur /dev/sdb ?
Dernière modification par qolepam (Le 24/04/2022, à 00:45)
Hors ligne
#9 Le 24/04/2022, à 09:41
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Bonjour
Le fichier est tout simplement "fragmenté" en huit morceaux. http://www.ordinateur.cc/syst%C3%A8mes/ … 13040.html
Inutile de faire compliqué.
sudo dd if=/dev/zero of=/boot/initrd.img-5.13.0-39-generic
ou utiliser la coomande wipe (logiciel à installer)
le plus simple est probablement de supprimer le fichier
sudo rm -v /boot/initrd.img-5.13.0-39-generic
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#10 Le 24/04/2022, à 15:46
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
dans cette commande dd:
sudo dd if=/dev/zero of=/boot/initrd.img-5.13.0-39-generic
quel est le rapport avec boot?
J'ai besoin d'explications
Hors ligne
#11 Le 24/04/2022, à 17:11
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Je ne suis bêtement trompé de nom!!!!!!
En relisant, je viens de voir que c'est fichier1 qui est la cible de ta demande.
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#12 Le 24/04/2022, à 17:25
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
donc quelle est la bonne commande?
sudo dd if=/dev/zero of=........
Dernière modification par qolepam (Le 24/04/2022, à 17:31)
Hors ligne
#13 Le 24/04/2022, à 17:42
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
sudo dd if=/dev/zero of=fichier1
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#14 Le 24/04/2022, à 17:52
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
et si je voulais remplir de zeros un dossier dossier1 (à la place de fichier1),cette commande fonctionnerait-elle?:
sudo dd if=/dev/zero of=dossier1
Hors ligne
#15 Le 24/04/2022, à 18:21
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
NON, il faut un fichier en sortie
Mais il serait possible de faite un script pour traiter la totalité des fichiers du dossier.
Cependant, pour ECRASER un dossier, tu peux utiliser la commande WIPE (logiciel à installer)
Dernière modification par geole (Le 24/04/2022, à 18:22)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#16 Le 24/04/2022, à 18:26
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Avec Wipe,on écrase de manière sécurisée avec des zéros comme le fait dd?
Dernière modification par qolepam (Le 24/04/2022, à 18:38)
Hors ligne
#17 Le 24/04/2022, à 18:36
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Encore plus sécurisé car on met de l'aléatoire qui masque plus. En standard, il fait 4 fois.
( -Q <number-of-passes>
Sets the number of passes for quick wiping. Default is 4. This option requires -q.
sudo apt install wipe
Dernière modification par geole (Le 24/04/2022, à 18:37)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#18 Le 24/04/2022, à 18:39
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Mon but est d'écraser un dossier avec des zéros.
Hors ligne
#19 Le 25/04/2022, à 14:18
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Bonjour
essaie cette commande en mettant ton dossier
find $HOME/TEST/essai -exec shred -n0 -z -v {} \;
Il te faudra peut-être installer le logiciel https://doc.ubuntu-fr.org/shred
Dernière modification par geole (Le 25/04/2022, à 14:29)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#20 Le 25/04/2022, à 14:44
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
A)cette commande:
sudo dd if=/dev/zero of=fichier1
ne fonctionne pas chez moi car le device /dev/sdb n'est pas mentionné.
Dois-je alors me placer à l'aide de cd dans un répertoire spécifique pour qu'elle fonctionne?
Autre solution?
B)Le sudo hdparm --fibmap fichier1 a donné:
byte_offset. begon_LBA. end_LBA. sectors
0 259106 259692 587
Pourquoi alors l'une de ces commandes dd n'efface pas de manière sécurisée le fichier fichier1?:
sudo dd if=/dev/zero of-=dev/sdb1 bs=512 count=587 seek=259106
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=587 seek=259106
Dernière modification par qolepam (Le 25/04/2022, à 14:49)
Hors ligne
#21 Le 25/04/2022, à 15:03
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Bonjour
Je ne sais pas comment tu as créé fichier1. Normalement on fabrique un fichier dans une partition.
Je pense que hdparm donne les références en partant du début du disque
Ta seconde commande dd doit être bonne
Ta premiere commande dd nécessite de retrancher le début de la partition SDB1 (probablement 2048) a la valeur seek afin de compenser l'ajout automatique du début de la partition
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#22 Le 25/04/2022, à 16:00
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Je viens de refaire cette commande:
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=587 seek=259106
Elle ne fonctionne pas ! (le fichier n'est pas effacé) .Pourquoi?
Hors ligne
#23 Le 25/04/2022, à 16:57
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Pourtant cela fonctionne bien.
sudo hdparm --fibmap fichier1
fichier1:
filesystem blocksize 4096, begins at LBA 658507776; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
0 694056768 694056775 8
sudo dd if=/dev/sda skip=694056768 count=8
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
8+0 enregistrements lus
8+0 enregistrements écrits
4096 octets (4,1 kB, 4,0 KiB) copiés, 0,00120735 s, 3,4 MB/s
sudo dd if=/dev/zero of=/dev/sda seek=694056768 count=8
8+0 enregistrements lus
8+0 enregistrements écrits
4096 octets (4,1 kB, 4,0 KiB) copiés, 0,000422479 s, 9,7 MB/s
sudo dd if=/dev/sda skip=694056768 count=8
8+0 enregistrements lus
8+0 enregistrements écrits
4096 octets (4,1 kB, 4,0 KiB) copiés, 0,000218029 s, 18,8 MB/s
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#24 Le 25/04/2022, à 21:23
- qolepam
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
Je ne comprends pas...
il a fallu faire 3 commandes dd dont la 2ème seule écrit des zéros?
Hors ligne
#25 Le 25/04/2022, à 22:14
- geole
Re : comment repérer les secteurs ou clusters occupés sur un disque dur?
J'ai fait la première pour montrer ce qu'il avait avant de faire la seconde
J'ai fait la troisième pour montrer que les aaaaaaaaa ont bien disparus et prouvant donc que la seconde a bien fonctionné et a bien écrasé les données du fichier.
Dernière modification par geole (Le 25/04/2022, à 22:15)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne