Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/12/2018, à 22:43

Nuliel

"reconstituer" une partition

Bonsoir,

Je me pose une tite question: imaginons une clé usb dont un secteur important est défectueux (le MBR, le début d'une partition, ...). Une méthode possible est: copier la clé usb, réparer l'image avec testdisk par exemple et paf, on accède aux données.
Ma question est: est il possible de faire en sorte que les secteurs défectueux soient "remappés" dans un fichier standard ou une partition autre? En d'autres termes qu'on dise: le secteur 1 de la clé usb, il faut aller le chercher à tel endroit dans telle partition
J'ai regardé du côté de lvm, je sais pas si ça correspond à ce que je cherche.

Toute idée est bienvenue smile
(la raison de la demande: la curiosité smile (parce que faire une copie exacte est sûrement une meilleure idée que celle ci) )

EDIT: ma question est sûrement un peu stupide en fait: si un secteur est illisible, il faut réécrire des zéros dessus afin de demander au disque dur de réallouer un nouveau secteur (à moins qu'il n'y ait plus de secteurs dispos en stock).

Mais j'accepte quand même les idées sur ma demande saugrenue smile

Dernière modification par Nuliel (Le 01/12/2018, à 23:39)

Hors ligne

#2 Le 02/12/2018, à 12:12

moko138

Re : "reconstituer" une partition

Je ne vois pas comment réadresser un secteur-clef sur le support initial dès lors que cela n'a pas été prévu à la conception (GPT et NTFS intègrent une zone miroir, extn intègre des superblocs de secours et une liste de badblocks).
/!\  Ne pas confondre blocs et secteurs, ni badblocks et données smart !


Quel que soit le support, on peut, préventivement, sauvegarder sur d'autres supports (toile etc.) le MBR, la table de partitions et, en cas de partitions logiques, la table des partitions complète (avec les partitions logiques).
  Cf. méthodes en https://doc.ubuntu-fr.org/tutoriel/comm … der_le_mbr


En cas de problème, cloner le support dégradé sur un support autre et sain, puis y réinjecter la sauvegarde.
Attention
  - à bien dater ses sauvegardes
  - à bien faire une nouvelle sauvegarde dès qu'on modifie le partitionnement
de façon à ne pas injecter de table périmée !


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#3 Le 02/12/2018, à 12:37

Nuliel

Re : "reconstituer" une partition

Merci à vous deux.

/!\  Ne pas confondre blocs et secteurs, ni badblocks et données smart !

Je confonds effectivement blocs et secteurs, pourrais tu expliquer la différence?
badblocks liste les blocs défectueux, y a t'il un rapport avec les pending sectors  du rapport smart?

Hors ligne

#4 Le 02/12/2018, à 23:17

moko138

Re : "reconstituer" une partition

Le secteur fait le plus souvent sur ce forum
soit  0,5 kio
soit  4 kio

Le bloc, sur ce forum, fait souvent 1 kio (*) ou 4 kio.
Le bloc est en principe l'unité de stockage minimale : crée un fichier .txt, mets-y un seul caractère et enregistre-le : il occupera un bloc entier. Ce qui explique les 2 tailles différentes données par ncdu pour un répertoire :

Total disk usage: 106,9MiB  Apparent size: 109,4MiB

Il n'y a jamais plus d'un fichier par bloc.

En pratique, ext4 et ntfs ont mis en place des bricolages pour minimiser l'espace occupé par les fichiers les plus petits.
On trouvera plus d'une taille de bloc ("blocksize") par défaut, en consultant le fichier /etc/mke2fs.conf.


Pour autant que je sache, la taille de secteur est imposée par le fabricant et ne change pas au formatage. C'était le point de vue de tiramiseb.

Pour autant que je sache, la taille de bloc d'une partition peut être changée au formatage. Cf.

man mke2fs
       -b taille_bloc
              Indiquer la taille des blocs en octets. Les  tailles  de  blocs  valables  sont
              1024, 2048 et 4096 octets par bloc. S'il est omis, taille_bloc est déterminé en
              fonction de la taille du système de fichiers et de son utilisation prévue (voir
              l'option  -T).  Si  taille_bloc  est précédé d'un signe négatif (« - »), mke2fs
              utilisera des heuristiques pour déterminer la taille  appropriée,  en  imposant
              que  la  taille  soit au moins de taille_bloc octets. C'est utile pour certains
              périphériques physiques qui nécessitent que la taille de bloc soit un  multiple
              de 2 ko.

Récemment, j'ai tenté d'imposer une taille de bloc. Ça a marché mais je me suis attiré cette réponse :

Avertissement : la taille de bloc 1024 spécifiée est plus petite que la taille de secteur physique 4096

Comme ce n'était pas ma partition, je n'ai pas voulu poursuivre et j'ai fait reformater avant mise en service.

Toutefois je suis loin d'avoir exploré toutes les options de mke2fs, parted, fdisk, sfdisk, cfdisk, gdisk...
  C'est ici que les lumières de jamesbad000, de Nasman ou de rmy seraient bien utiles !


/!\  Contrairement à une idée reçue, le bloc n'est pas le cluster. Cf.

man mke2fs
       -C taille-cluster
              Indiquer la taille du cluster en octets pour les systèmes de fichiers utilisant
              la fonctionnalité bigalloc. Les valeurs correctes pour  la  taille  du  cluster
              sont comprises entre 2048 octets et 256 Mo par cluster. Cela ne peut être indi‐
              qué que si la fonctionnalité bigalloc est activée. Consultez la page de  manuel
              de  ext4  (5)  pour  plus  de  détails  sur bigalloc). La taille du cluster par
              défaut, si bigalloc est activé, est égale à 16 fois celle du bloc.

Et je ne suis même pas sûr que Linux et Windows aient une même définition de cluster.



___
(*) Attention, fdisk -l emploie 2 unités différentes !
Comparer ces tailles :

moko@pc:~$ sudo lsblk -o name,fstype,size | grep -E "NAME|sdb"
NAME    FSTYPE    SIZE
sdb             149,1G
├─sdb1  vfat     54,9M
├─sdb2  ntfs       12G
├─sdb3              1K
├─sdb4  ext4    119,5G
(...)
moko@pc:~$ 

avec

moko@pc:~$ sudo fdisk -l
(...)
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 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

# ATTENTION :     SECTEUR     SECTEUR      BLOCS  /!\
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63      112454       56196   de  Dell Utility     #   54,9M
/dev/sdb2   *      112455    25286309    12586927+   7  HPFS/NTFS/exFAT  # 15G
/dev/sdb3        25294846    62068735    18386945    f  W95 Ext'd (LBA)  # 18G
/dev/sdb4        62076928   312581807   125252440   83  Linux            # 119,5G
(...)
moko@pc:~$ 

Où l'on voit :
1) que les colonnes "Start" et "End" emploient - sans le dire - le secteur comme unité, alors que fdisk -l affiche la taille en blocs ;

2) qu'ici les secteurs font 512 octets mais les blocs 1024 octets.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#5 Le 02/12/2018, à 23:19

moko138

Re : "reconstituer" une partition

Naziel a écrit :

badblocks liste les blocs défectueux, y a t'il un rapport avec les pending sectors  du rapport smart?

Oui et non :
Oui parce que, dans les deux cas, l'information concerne des zones dégradées du disque.

Non parce qu'un bloc n'est pas un secteur.
Non parce que la liste des badblocks ne concerne qu'une partition donnée, et une partition linux seulement.
Non parce que cette liste est inscrite dans cette même partition. Et effacée au premier reformatage. Si elle n'est pas devenue illisible avant.
Alors que les données smart sont stockées hors de la zone de données, sur une puce du circuit imprimé. Et que les données smart concernent tous les secteurs du disque, y compris ceux qui ne sont pas sur une partition linux et ceux qui sont hors partitions : tous les secteurs du disque, du premier au dernier.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#6 Le 03/12/2018, à 13:52

moko138

Re : "reconstituer" une partition

simon2018 a écrit :

peut tu expliquer,  ou tu vois des secteurs de 4 kio ?

https://www.manjaro.fr/forum/viewtopic.php?t=10611 (11/2018) :

Disque /dev/sda : 3,7 TiB, 4000787025920 octets, 976754645 secteurs
Modèle de disque : Backup+  Desk   
Unités : secteur de 1 × 4096 = 4096 octets
Taille de secteur (logique / physique) : 4096 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : gpt

  - -
https://www.alionet.org/archive/index.php/t-32948.html  (01/2017) :

Disque /dev/sda : 2,7 TiB, 3000592982016 octets, 732566646 secteurs
Unités : secteur de 1 × 4096 = 4096 octets
Taille de secteur (logique / physique) : 4096 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 268431360 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x00003185

Périphérique Amorçage Début Fin Secteurs Taille Id Type
/dev/sda1 256 732566527 732566272 2,7T 83 Linux

  - -

Et ici-même ./viewtopic.php?id=2031216 (de 2018, sur 1 To) :

Disque /dev/sdc : 931 GiB, 999667949568 octets, 244059558 secteurs
Unités : secteur de 1 × 4096 = 4096 octets
Taille de secteur (logique / physique) : 4096 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Type d'étiquette de disque : dos

et ./viewtopic.php?id=1955621 (de 12/2015) :

Disk /dev/sde: 4000.8 GB, 4000787025920 bytes
255 têtes, 63 secteurs/piste, 60800 cylindres, total 976754645 secteurs
Unités = secteurs de 1 * 4096 = 4096 octets
Taille de secteur (logique / physique) : 4096 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets

et ./viewtopic.php?pid=18780711#p18780711 (dès 12/2014, sur 120 Go) :

Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 têtes, 63 secteurs/piste, 1824 cylindres, total 29305206 secteurs
Unités = secteurs de 1 * 4096 = 4096 octets
Taille de secteur (logique / physique) : 4096 octets / 4096 octets

.
Et avec la démocratisation des disques de grande capacité, je crois que nous en verrons de plus en plus.


  - -

si tu lis sur le forum

Taille de secteur (logique / physique) : 512 octets / 4096 octets

cela indique que physiquement sur le disque le secteur fais effectivement 4096 octets, mais pour le système hote linux, il ne fera que toujours 512 octets, les 4096 octets physique sont gérés par l'électronique du disque dur et complément transparent vis à vis du système.
c'est vrai que même wikipedia peut induire en erreur quelque fois mais là je suis formel:
https://en.wikipedia.org/wiki/Advanced_Format

Puisque tu t'intéresses à l'"Advanced Format" (512/4096), tu auras noté le lien que donnait tiramiseb en #10 :
"(surtout la première réponse, écrite par Rod Smith)"
réponse que j'avais reportée et traduite dans ./viewtopic.php?pid=18848181#p18848181, "[Résolu] Partition bios-grub non vue et démarrage impossible", messages #42 à 44.

Cette réponse de Rod Smith montre que non, les 4096 octets physiques ne sont pas toujours "complètement transparent vis à vis du système".    Et qu'il vaut mieux en être informé.
Ça fait donc trois ans que j'ai traduit son texte.
Et qui est Rod Smith ? le rédacteur de man gdisk.


  - -

cluster est en effet  typique aux système de fichiers Windows

Ce n'est pas le point de vue du rédacteur de man mke2fs (cf. plus haut).


  - -

affirme lui aussi que des blocs sont des clusters.

Alors comment expliques-tu (déjà cité) :

man mke2fs

Les valeurs correctes pour  la  taille  du  cluster sont comprises entre 2048 octets et 256 Mo (...)
La taille du cluster par défaut, si bigalloc est activé, est égale à 16 fois celle du bloc.

?

  - -

simon2018 a écrit :

mais c'est pas grave bonne journée.

Merci !  smile  À toi aussi !

Dernière modification par moko138 (Le 03/12/2018, à 14:01)


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#7 Le 03/12/2018, à 14:44

maxire

Re : "reconstituer" une partition

Salut,

Vous vous éloignez largement du fil de discussion.

Secteur disque = unité physique de lecture élémentaire, ce que le logiciel du disque va lire/écrite en une opération d'entée/sortie

Bloc = unité logique de lecture d'un système de fichiers, ce que le logiciel de gestion de fichiers va lire/écrire en un ordre de lecture/écriture générant lui-même plusieurs ordres de lecture/écriture physiques, c'est en général un multiple de secteurs mais pas toujours.
À noter que le bloc n'est pas utilisé uniquement par les gestionnaires de fichiers, une commande comme dd utilise la notion de bloc.

Plus d'information ici  https://fr.wikipedia.org/wiki/Secteur_de_disque

Cluster, cela ne veut pas dire autre chose que agrégat ou regroupement en français et aura une signification  différente en fonction des éditeurs de logiciels, la notion de cluster en ntfs/windows étant sans doute différente de celle de cluster VSAM (Virtual storage access method) gestionnaire de fichiers d'IBM Z/OS.
Donc inutile de s'étriper à cause de la notion de cluster.

Dernière modification par maxire (Le 03/12/2018, à 14:45)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#8 Le 03/12/2018, à 16:20

moko138

Re : "reconstituer" une partition

Merci, maxire, de ces précisions !


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne