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 03/08/2020, à 21:44

Nuliel

[Résolu] monter partition en deux morceaux

Bonjour,
J'ai eu un problème lors d'une copie d'un disque dur ne contenant qu'une partition: mon disque dur est trop petit de 35 MB, donc j'ai d'un côté mon disque dur plein, et de l'autre côté les 35 MB restants.
Est il possible de créer un périphérique (une sorte de /dev/loop) qui rassemblerait les deux morceaux pour pouvoir monter la partition?
Merci d'avance,
Nuliel

Edit: je rajoute qu'il est possible de restreindre ce problème à réunir deux partitions vu que le fichier de 35 MB peut être monté par un /dev/loop. Il faut peut être utiliser LVM, mais je maîtrise pas

Dernière modification par Nuliel (Le 04/08/2020, à 23:26)

Hors ligne

#2 Le 04/08/2020, à 10:34

Nuliel

Re : [Résolu] monter partition en deux morceaux

Après pas mal de recherches, il est peut être possible de monter le fichier de 35 MB en /dev/loop, puis de faire un RAID 0 avec les deux morceaux (j'ai pas l'impression que LVM soit adapté, et je ne vois pas de paramètre qui pourrait résoudre mon problème dans le man de losetup)
Si quelqu'un pouvait me guider dans l'utilisation de mdadm, ce serait sympa!

HS: si quelqu'un est intéressé par la méthode que j'ai suivi pour remettre en marche un maxtor brické (bug de firmware, réparé avec le port série), je peux expliquer rapidement comment j'ai procédé

Hors ligne

#3 Le 04/08/2020, à 11:29

diesel

Re : [Résolu] monter partition en deux morceaux

Je ne comprends pas bien ton problème.

Tu nous parles de copie. De quoi, comment, avec quels outils, les fichiers ont-ils été copiés ou transférés... ?

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#4 Le 04/08/2020, à 11:45

moko138

Re : [Résolu] monter partition en deux morceaux

Nuliel a écrit :

HS: si quelqu'un est intéressé par la méthode que j'ai suivi pour remettre en marche un maxtor brické (bug de firmware, réparé avec le port série), je peux expliquer rapidement comment j'ai procédé

Bien sûr que ça m'intéresse !  Tu ouvres un fil spécifique ?
Merci d'avance !  smile


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

Hors ligne

#5 Le 04/08/2020, à 12:09

Nuliel

Re : [Résolu] monter partition en deux morceaux

Merci pour vos réponses.

@diesel: En gros, j'ai un disque maxtor de 1 To qui était en panne et que j'ai réparé (problème de firmware), j'ai donc fait une copie avec ddrescue du disque maxtor vers mon disque dur externe de 1 To, sauf que mon disque dur externe fait 35 MB de moins que le maxtor. Du coup mon disque dur externe contient une copie exacte du maxtor sauf les 35 derniers MB qui sont dans un fichier sur un autre disque dur.
Le disque maxtor contient une seule partition, pour pouvoir la monter il faudrait que je réassemble les deux morceaux.

@moko138: ok, je vais ouvrir un fil spécifique pour ça


Edit: je viens de tester avec un raid 0 avec la commande

sudo mdadm --create /dev/md0 --level=0  --raid-devices=2 /dev/disk/by-id/usb-WD_Elements_25A2_5758363141343838364A4A34-0\:0-part1 /dev/loop0

ça me parle de supprimer le partitionnement de mon disque de copie sad

Dernière modification par Nuliel (Le 04/08/2020, à 12:23)

Hors ligne

#6 Le 04/08/2020, à 13:52

MicP

Re : [Résolu] monter partition en deux morceaux

Bonjour

mdadm n'est peut-être pas le bon outil pour faire ce que tu veux faire.
Il faudrait voir avec la bibliothèque Advanced Forensics Format
du paquetage afflib-tools

Hors ligne

#7 Le 04/08/2020, à 13:58

Nuliel

Re : [Résolu] monter partition en deux morceaux

Merci MicP pour ta réponse, je vais regarder ça

Hors ligne

#8 Le 04/08/2020, à 14:08

MicP

Re : [Résolu] monter partition en deux morceaux

Sinon, si tu as la place dans ton système de fichiers
de faire un fichier image copie du disque incomplet,
il est possible d'ajouter à ce fichier image disque
le contenu du fichier de 35MB avec dd :

Si le fichier image disque N'a PAS une taille en bits divisible par 512 bits
il faudra faire une copie bit à bits :

dd if=fichier35MB of=fichierIncompletImageDisque bs=1b seek=tailleEnBitsDuFichierIncompletImageDisque

Ou alors, si le fichier image disque a une taille en bits divisible par 512 bits, (ça sera plus rapide, mais bon, il n'y a que 35MB à ajouter)

dd if=fichier35MB of=fichierIncompletImageDisque bs=512b seek=tailleEnSecteursDe512bitsDuFichierIncompletImageDisque

(l'option bs=512b n'est pas indispensable puisque par défaut, dd utilise des blocs de 512bits)

Après, il te suffira de créer un fichier de périphérique loop
en utilisant le fichier image disque complété.

=======
Mais il est aussi possible qu'aucun fichier n'utilise ces 35MB manquants,
voire même que la partition n'utilise pas ces 35MB
et tu pourrais alors essayer de monter directement la partition du disque.

Dernière modification par MicP (Le 04/08/2020, à 14:15)

Hors ligne

#9 Le 04/08/2020, à 14:26

Nuliel

Re : [Résolu] monter partition en deux morceaux

Malheureusement le disque de mon pc fait aussi 1 To, il ne peut donc pas accueillir le fichier image du disque incomplet
La taille du fichier de 35 MB est divisible par 512 (les blocs des deux disques ont une taille de 512 octets)

Malheureusement, j'ai le message d'erreur suivant en essayant de monter la partition ntfs sans les 35 MB:

Failed to read last sector (1953520000): Argument invalide
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
   or it was not setup correctly (e.g. by not using mdadm --build ...),
   or a wrong device is tried to be mounted,
   or the partition table is corrupt (partition is smaller than NTFS),
   or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/sdc1': Argument invalide
The device '/dev/sdc1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

ce qui est normal vu qu'il manque la fin

Dernière modification par Nuliel (Le 04/08/2020, à 14:28)

Hors ligne

#10 Le 04/08/2020, à 14:50

diesel

Re : [Résolu] monter partition en deux morceaux

Nuliel a écrit :

@diesel: En gros, j'ai un disque maxtor de 1 To qui était en panne et que j'ai réparé (problème de firmware), j'ai donc fait une copie avec ddrescue du disque maxtor vers mon disque dur externe de 1 To, sauf que mon disque dur externe fait 35 MB de moins que le maxtor. Du coup mon disque dur externe contient une copie exacte du maxtor sauf les 35 derniers MB qui sont dans un fichier sur un autre disque dur.
Le disque maxtor contient une seule partition, pour pouvoir la monter il faudrait que je réassemble les deux morceaux.

Donc, tu as fait une image binaire de ton disque de 1TO (comme avec dd).

Je ne connais pas ddrescue donc mes questions sont peut-être stupides.

Comment a-t-il fait pour aller mettre la fin de l'image binaire dans un autre fichier sur un autre disque dur ? C'est automatique ?, tu l'avais programmé ?

Es-tu certain que la concaténation des deux fichiers représente bien la totalité de ton disque initial ?

Si tu as une partition, donc, répartie sur deux supports, j'aurais tendance à utiliser LVM qui est fait pour ça.

Par ailleurs, le disque dur initial présente-t-il des défauts (physiques, logiques) ?

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#11 Le 04/08/2020, à 14:58

Nuliel

Re : [Résolu] monter partition en deux morceaux

ddrescue c'est dd sauf qu'en cas de secteurs illisibles, il va lire plus loin et essaie de copier un max de données.

Comment a-t-il fait pour aller mettre la fin de l'image binaire dans un autre fichier sur un autre disque dur ? C'est automatique ?, tu l'avais programmé ?

C'est pas automatique, j'ai programmé ça (j'ai laissé ddrescue remplir le disque, puis ddrescue a râlé, et j'ai demandé d'enregistrer le reste dans un fichier en renseignant le même fichier de log)
Pour info, le fichier de log permet de savoir ce qui reste à copier, les secteurs illisibles, ...

Es-tu certain que la concaténation des deux fichiers représente bien la totalité de ton disque initial ?

J'en suis sûr

Par ailleurs, le disque dur initial présente-t-il des défauts (physiques, logiques) ?

Malheureusement, en réparant le disque, j'ai été obligé de supprimer des trucs (c'est le bug BSY) et j'ai été obligé de supprimer des données smart, mais je n'ai eu aucun problème lors de la copie avec ddrescue, et la partition du disque maxtor fonctionne et est lisible (pour combien de temps je sais pas, j'ai pas encore mis le firmware à jour)

Dernière modification par Nuliel (Le 04/08/2020, à 15:00)

Hors ligne

#12 Le 04/08/2020, à 15:18

moko138

Re : [Résolu] monter partition en deux morceaux

Nuliel a écrit :

en réparant le disque, (...) et j'ai été obligé de supprimer des données smart,

???

En principe, les données SMART d'un disque sont stockées, non sur un de ses plateaux, mais sur une puce du circuit imprimé.

S'il te plaît, peux-tu préciser ce que tu as voulu dire ? Ou, à défaut, ce que tu as constaté ?


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

Hors ligne

#13 Le 04/08/2020, à 15:20

diesel

Re : [Résolu] monter partition en deux morceaux

Alors si la copie marche bien, tu pourrais réessayer avec dd (et non pas ddrescue) et envoyer la sortie de dd vers un utilitaire de compression afin que ça tienne dans les 1GO de ton disque cible.

A toi de choisir le bon algorithme qui sera reconnu au moment du montage.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#14 Le 04/08/2020, à 15:33

Nuliel

Re : [Résolu] monter partition en deux morceaux

@moko138: si j'ai bien compris le bug BSY est un bug qui fait que le firmware n'alloue pas assez de place pour stocker des infos type données smart. Une fois cet emplacement plein, le disque disparaît (pas de trace dans dmesg ni lsusb ni dans le bios, on entend juste le moteur du disque qui s'allume, c'est tout). Il faut alors se connecter au port série pour supprimer des trucs (je ne sais pas encore exactement ce que j'ai supprimé des données smart, je ferai un rapport smart dans quelques jours). Donc oui j'ai bien supprimé des trucs en rapport avec les données smart. Je ferai un fil pour expliquer tout ça, c'est un problème qui est quand même vraiment rare

@diesel: bonne idée, mais il me faudrait encore un autre disque dur pour stocker l'image compressée, malheureusement j'ai pas d'autre disque dur de 1 To

Dernière modification par Nuliel (Le 04/08/2020, à 15:34)

Hors ligne

#15 Le 04/08/2020, à 16:58

moko138

Re : [Résolu] monter partition en deux morceaux

Nuliel,
Peut-être une confusion avec la HPA (qui, elle, est sur un plateau) ?

Des infos sur la Host Protected Area (HPA) sont disponibles là :
https://www.cgsecurity.org/Articles/acquisition_disque/ 
§"Zone constructeur des disques ATA (SATA/PATA)".

Et pour aller plus loin, il y a rmy, bien sûr.


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

Hors ligne

#16 Le 04/08/2020, à 19:09

Nuliel

Re : [Résolu] monter partition en deux morceaux

Ça je ne sais pas, ce que je sais, c'est que j'ai remis des trucs à zéro et que maintenant ça marche.
Sinon il faut que je regarde du côté de mhddfs, mergerfs, unionfs, aufs, et afflib-tools

Dernière modification par Nuliel (Le 04/08/2020, à 19:10)

Hors ligne

#17 Le 04/08/2020, à 19:53

Nuliel

Re : [Résolu] monter partition en deux morceaux

@moko138: voilà le fil pour le débrickage : https://forum.ubuntu-fr.org/viewtopic.php?id=2055306

Hors ligne

#18 Le 04/08/2020, à 21:45

Zakhar

Re : [Résolu] monter partition en deux morceaux

Si ça peut t'aider, j'ai écrit (vite fait) un petit programme fuse faisant ce genre de chose.

A la base c'est pour considérer N fichiers comme un seul.

Cas d'usage : tu as 10 fichiers qui sont des "split" d'un gros fichier (voir la manpage de split)

Donc par exemple :
file.001
file.002
file.003
etc...

Il s'agit par exemple de "split" en morceaux de 1Go, plus facile à transférer, de ton dernier film de vacances.

Normalement tu commencerais à le réassembler avant de le lire par VLC. Mais ce faisant, tu subis un délai et tu as besoin d'espace disque temporaire pour le fichier rassemblé.

Au lieu de cela tu peux utiliser mon système fuse : mfs (Merge FileSystem)

La commande est simple :

mfs mountpoint file.001 file.002 file.003

Tu auras alors sous "mountpoint" un file.001 qui contient en fait tout est qui est accessible par n'importe quel logiciel, dont VLC. Le passage d'un "split" à l'autre lors de la lecture sera totalement transparent à VLC, c'est le driver fuse qui fait le job en traduisant les "offset/size" par des lectures sur le(s) bon(s) fichier(s) sous-jacent(s).

Le programme est un peu plus sophistiqué, dans le sens où il peut même "monter" des morceaux de fichiers et ou de partitions.

Par exemple, j'ai une machine W$ où suite à une bévue des administrateurs, j'ai pu récupérer la clé de déchiffrement BitLocker. Ainsi j'ai une fichier de 3,5ko qui contient les secteurs du disque quand la partition été "débloquée" avec la clé en clair. Je monte :
/dev/sda1 0 à X + les 3,5Ko de clé en clair + /dev/sda1 à partir X + 3,5ko
(X est l'offset de la clé en clair).

Cela me fait un seul gros fichier simulant le fait qu'on ait écrit 3,5Ko dans /dev/sda1 à l'emplacement indiqué, mais sans pour autant réellement écrire (pour ne pas "casser" le PC maintenant qu'il est à nouveau verrouillé).
Il suffit ensuite de monter cela avec dislocker, puis monter le fichier déchiffré que dislocker présente en loop-nfs, et pouf, on a accès au disque W$ sensé être chiffré.

Remarque que le cas d'usage cité ci-dessus avec des fichiers "split" peut être réalisé uniquement avec les outils de base GNU/Linux si tu comptes uniquement faire des accès séquentiels. En effet, dans ce cas il suffit de faire de "fifo" avec dd, et le tour est joué. Mon outil permet plus un usage "générique" quand l'accès n'est pas strictement séquentiel.

Ainsi pour récupérer des fichiers sur la partition W$ dans l'exemple cité, il y a un empilement de mfs (mon driver fuse), dislocker, montage nfs (aussi du Fuse) en loop... et tout ça marche très bien !..

Attention cependant, c'est un programme écrit "un peu vite". Il fonctionne pour des besoins expérimentaux, et pour te permettre par exemple de copier tes données ailleurs une fois l'opération de récupération de tes deux morceaux réalisée.
La partie "écriture" est encore plus expérimentale et moins testée...

Aussi, si tu montes des partitions avec mfs, il faut évidemment le faire en root, et donc avoir autorisé ça dans ta configuration fuse et spécifier l'option --allow-root (ou other).

Voila donc un petit outil en alternative temporaire. Bien sûr si tu comptes faire un utilisation "définitive" de ta partition en deux morceaux... LVM est quand même sans doute bien plus stable car il est fait pour ça !..

Une autre idée, bien sûr, est qu'une fois que tu as fait ton montage LVM tu procèdes à une réduction de ta partition, histoire qu'elle tienne dans ton disque cible. Ainsi tu peux après ça revenir en usage "classique" !..

Dernière modification par Zakhar (Le 04/08/2020, à 22:02)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#19 Le 04/08/2020, à 21:57

Nuliel

Re : [Résolu] monter partition en deux morceaux

Merci beaucoup Zakhar, je vais essayer ton programme, le principal étant de vérifier que la copie est lisible, je ne compte pas écrire dessus, au pire ce ne sera que de la lecture.
Je n'ai pour l'instant jamais utilisé LVM (et je ne sais pas m'en servir), mais je ne savais pas vraiment quel outil était adapté à mon problème, et c'est pas bête de réduire la partition!

Dernière modification par Nuliel (Le 04/08/2020, à 21:59)

Hors ligne

#20 Le 04/08/2020, à 22:08

Zakhar

Re : [Résolu] monter partition en deux morceaux

Dans ce cas tu n'as même pas besoin de mettre les 35Mo qui "débordent" dans une partition. Les poser dans un fichier suffira.

La commande (une fois que tu auras compilé le fichier unique mfs.c selon instructions dans le programme !) sera un truc du genre :

mkdir /tmp/mfs /tmp/test
sudo mfs /tmp/mfs /dev/sda1 fichier_35mo
sudo mount -o loop,ro /tmp/mfs/sda1 /tmp/test

Ensuite tu devrais pouvoir lire ce qui a été monté dans  /tmp/test

Bien sûr, adapter les noms si ta partition où tu as copié n'est pas /dev/sda1, et le nom du fichier de 35Mo (qui peut aussi être une autre partition).

Pour la compilation de mfs, une première étape si tu n'as pas déjà compilé des drivers fuse :

sudo apt-get install libfuse-dev

Et ensuite juste une ligne de commande :

cc -Wall -std=c99 -Wpedantic mfs.c `pkg-config fuse --cflags --libs` -o mfs

Pour le supprimer, il suffit de supprimer le mfs.c et le résultat de la compilation (tu peux même tout compiler dans /tmp si tu ne veux rien garder !).
Dans les commandes ci-dessus, il faut alors donner le chemin de mfs là où tu l'as compilé.

Si tu veux supprimer toutes les traces car tu n'as pas besoin de compiler d'autres drivers fuse, tu peux ensuite faire :

sudo apt-get purge libfuse-dev

(mais tu sais sans doute déjà ces choses très basiques !)

Par défaut mfs travaille en mode "read-only" pour ne pas être "destructif" !.. Donc pas se souci à se faire. Si tu veux vraiment qu'il écrive (à tes risques et péril !) dans ce cas il faut explicitement rajouter l'option -o rw

Pour jouer avec les partitions on pourrait certainement améliorer mfs pour qu'il expose un "fuse-block" au lieu d'un montage fuse classique. On pourrait alors monter ce pseudo-périphérique de block sans passer par loop... s'il te semble utile de contribuer ça à ce petit programme expérimental, sois le bienvenu !.. En réalité je n'en suis pas à mon premier driver fuse... mais je n'ai jamais fait de drivers fuse-block. Et comme loop fait bien le boulot (même si ça rajoute une couche et c'est donc moins performant), pour un usage épisodique ça va tel que c'est fait.

Dernière modification par Zakhar (Le 04/08/2020, à 22:23)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#21 Le 04/08/2020, à 22:21

Nuliel

Re : [Résolu] monter partition en deux morceaux

Super, ça marche impec! La partition est lisible, les données sont intactes, donc en cas de pépin sur le maxtor, la copie est utilisable

Je n'ai jamais utilisé fuse, je découvre en même temps les possibilités que cela offre

Dernière modification par Nuliel (Le 04/08/2020, à 22:26)

Hors ligne

#22 Le 04/08/2020, à 22:25

Zakhar

Re : [Résolu] monter partition en deux morceaux

Ravi que mfs t'ait été utile. big_smile

J'aime bien ce nom aussi, c'est un peu un "joke" en Français si tu prononces les lettres d'une certaine façon. Je vous laisse chercher ! lol

Dernière modification par Zakhar (Le 04/08/2020, à 22:26)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#23 Le 04/08/2020, à 22:34

Zakhar

Re : [Résolu] monter partition en deux morceaux

Nuliel a écrit :

Je n'ai jamais utilisé fuse, je découvre en même temps les possibilités que cela offre

Même si notre "Grand Gourou" Linus pense que Fuse est juste un "joujou"... c'est juste monstrueux de possibilités.

Les montages NTFS et SAMBA (partage W$) sont réalisés en fuse.

Un des filesystem fuse les plus utilisés après ceux-là est SSHFS qui permet de "monter" des filesystem d'un machine que tu peux accéder en SSH.

De mon côté, mon driver fuse le plus abouti est 1fichierfs.

En gros, si tu es abonné à 1fichier (LE meilleur rapport qualité/prix du monde pour le stockage Cloud actuellement), tu peux simplement "monter" ton compte 1fichier et t'en servir en read/write.

Oui, le "write" aussi marche... avec certaines limitations dues à la façon dont 1fichier fonctionne et au FTP qui est utilisé pour l'upload. Notamment uniquement écriture séquentielles... avec une "marge" pour permettre les très intéressants montages encfs (un autre système fuse que j'adore !) qui te permet le chiffrement/déchiffrement des données en local avant de les écrire/lire sur le Cloud. Celui-ci ne dispose donc pas de "tes originaux", mais est alors vraiment utilisé comme simple stockage de fichiers.

Ca marche aussi sur mon Raspberry Pi... lequel a donc "virtuellement" un espace de stockage de 2To (la base chez 1fichier) avec juste sa pauvre carte SD de 16Go qui sert à booter Raspbian. big_smile

Bien sûr à utiliser derrière une bonne connexion fibre, ainsi tu as un stockage "Gigabit" aussi rapide d'accès qu'un NAS local, car les performances de 1fichiers sont excellentes (à de rares exceptions près).

Dernière modification par Zakhar (Le 04/08/2020, à 22:45)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#24 Le 04/08/2020, à 22:34

nany

Re : [Résolu] monter partition en deux morceaux

Bonjour,


GG.

Zakhar a écrit :

J'aime bien ce nom aussi, c'est un peu un "joke" en Français si tu prononces les lettres d'une certaine façon. Je vous laisse chercher ! lol

Et mes fesses, tu les aimes mes fesses ?

Hors ligne

#25 Le 04/08/2020, à 22:40

Zakhar

Re : [Résolu] monter partition en deux morceaux

Merci pour le rappel Nany : et puisque c'est du Godard, je m'incline devant le maître ! lol

Dernière modification par Zakhar (Le 04/08/2020, à 22:43)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne