J'ai déjà créé une image avec dd
pour le disque d'entrée, l'image pour Windows 10, et je la restaure à partir du mode de récupération Ubuntu.
Lorsque je veux restaurer les fenêtres, j'efface le disque dur et supprime toutes les partitions.
wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda
La taille de l'image est de 5 Go compressée (format gz), 20 Go non compressée
J'ai eu trois partitions
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
/dev/sda2 1026048 208089944 207063897 98.8G 7 HPFS/NTFS/exFAT
/dev/sda3 208089949 1953520064 1745430116 832.3G f W95 Ext'd (LBA)
/dev/sda5 208090012 1953520064 1745430053 832.3G 7 HPFS/NTFS/exFAT
Tout ce dont j'avais besoin était de restaurer l'image créée à partir du disque d'entrée sur sda1 et sda2 uniquement, et de conserver sda5 (mes propres fichiers)
J'ai retiré sda1 et sda2 et créé une nouvelle partition sda1 de 100 Go. J'ai restauré l'image avec
wget -O- 'http://your_webhosting.com/Windows10template.img.gz' | gunzip | dd of=/dev/sda1
mais rien n'a changé. Mes partitions sont maintenant comme ça
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 195311615 195309568 93,1G 83 Linux
/dev/sda3 208089949 1953520064 1745430116 832,3G f W95 Ext'd (LBA)
/dev/sda5 208090012 1953520064 1745430053 832,3G 7 HPFS/NTFS/exFAT
La méthode normale et de travail a complètement effacé le disque dur. J'ai besoin d'une méthode de travail pour le restaurer sur une seule partition ou sur un espace non alloué
/dev/sda1
Comment faire cela avec dd
?
UPDATE
$ fdisk -l Windows10template.img
Disk Windows10template.img: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x266de740
Device Boot Start End Sectors Size Id Type
Windows10template.img1 * 2048 1026047 1024000 500M 7 HPFS/NTFS/exFAT
Windows10template.img2 1026048 41940991 40914944 19,5G 7 HPFS/NTFS/exFAT
Étant donné que les limites des partitions sur l'image de sauvegarde du lecteur sont alignées sur un sous-ensemble de celles de la structure de disque actuelle, il serait relativement simple de supprimer la partie pertinente de la sortie gunzip
et de l'écrire dans les parties droites de /dev/sda
avec dd
, mais je ne vais pas écrire une réponse qui vous aidera uniquement à écraser les données de quelqu'un d'autre. Même pour vous-même, il existe un risque important de faire un calcul de décalage erroné ou de saisir un nombre incorrect pour le même résultat.
Au lieu de cela, il serait bien préférable de décompresser l'image du lecteur sur un support de stockage suffisamment grand et de l'utiliser. Vous pouvez le faire même en mode de récupération. Mais ce serait beaucoup plus facile si vous utilisiez une interface utilisateur graphique (par exemple, à partir d’un DVD/USB en direct), même si vous finissiez par le faire sur un terminal.
Je suppose qu'il y a au moins 25 Go (suffisamment pour contenir l'image de sauvegarde compressée et décompressée) sur le système de fichiers sur /dev/sda5
.
Montez le système de fichiers sur /dev/sda5
.
Sur le terminal qui fonctionne avec:
udisksctl mount --block-device /dev/sda5 --options rw
udisksctl
vous dira où le lecteur a été monté.
Sinon, vous pouvez utiliser le gestionnaire de fichiers ou les disques Gnome pour monter le système de fichiers.
Je suppose que le point de montage est situé à /media/ubuntu/my-data
. Ajustez les commandes suivantes en fonction du point de montage réel.
Téléchargez l'image de lecteur compressée avec un navigateur Web ou votre client HTTP préféré sur le système de fichiers précédemment monté, e. g.:
wget -P /media/ubuntu/my-data 'http://your_webhosting.com/Windows10template.img.gz'
Décompressez l'image et stockez la sortie sur le même système de fichiers. Vous pouvez utiliser un gestionnaire d'archives comme File-Roller ou un outil de ligne de commande, e. g.:
gunzip /media/ubuntu/my-data/Windows10template.img.gz
Configurez un périphérique de boucle pour l’image de lecteur décompressée:
Sudo losetup -f --show /media/ubuntu/my-data/Windows10template.img
losetup
vous montrera le chemin d'accès au périphérique de boucle. Je suppose que c'est /dev/loop7
. Ajustez les commandes suivantes en fonction du chemin d'accès réel du périphérique.
Demandez au noyau de détecter la table de partition à l'intérieur du périphérique en boucle (sauvegardé par l'image du lecteur):
Sudo partprobe /dev/loop7
Le noyau ajoutera des nœuds de périphériques de bloc supplémentaires pour les partitions détectées, i. e. /dev/loop7p1
et /dev/loop7p2
.
Copiez les partitions exposées précédemment individuellement sur le périphérique cible. Vous pouvez utiliser un gestionnaire de partition tel que Gnome Disks ou GParted ou dd
. Pour ce dernier cela fera:
Sudo dd if=/dev/loop7p1 of=/dev/sda1 bs=8M
Sudo dd if=/dev/loop7p2 of=/dev/sda2 bs=8M
Vérifiez que vous avez entré le bon chemin du périphérique cible et que le /dev/sda
est ce que vous pensez en réalité! Ne comptez pas sur le noyau pour réaffecter le même nom à un périphérique en mode bloc dans l'ensemble du système redémarre!
Vous pouvez vérifier l'identité de /dev/sda
en consultant sa structure de partition (par exemple, avec fdisk /dev/sda
ou Gnome Disks) ou d'utiliser les identificateurs de périphérique uniques et (principalement) stables dans /dev/disk/by-*
.
Vérifiez que /dev/sda1
et /dev/sda2
contiennent les données souhaitées.
Vous avez terminé. Redémarrez dans Windows ou faites ce que vous voulez.
Nettoyez l’image de lecteur restante quand et comme vous le souhaitez. Supprimez le périphérique de boucle correspondant (si vous n’avez pas redémarré entre-temps) ou ne le supprimez pas tant que vous ne l’avez pas fait:
Sudo losetup -d /dev/loop7
dd est un outil très puissant mais aussi très dangereux. Veuillez sauvegarder tout ce qui est nouveau sur le lecteur cible (par exemple, dans la partition/dev/sda5) avant de commencer à manipuler dd.
Je pense que la méthode la moins dangereuse serait de
clone 'tout' de l'image de sauvegarde sur un lecteur supplémentaire
clonez la première partition du lecteur supplémentaire vers la première partition du lecteur cible.
Mais vous avez endommagé la tête du lecteur (le premier mibioctet). Vous devez donc également cloner cette partie de l'image de sauvegarde sur le lecteur cible. Vous pouvez utiliser count=N
pour copier uniquement N blocs. La taille de bloc par défaut est de 512 octets.
Une autre méthode plus rapide, mais plus risquée serait de cloner la première partie de la sauvegarde, de la tête de lecture jusqu'à la fin de la première partition.