#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
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 !
%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
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
@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
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.
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 !
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
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.
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.
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 !
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 !
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