J'ai une image disque, c'est une image disque "entière", par exemple, contient plusieurs partitions, et je veux cloner une seule d'entre elles (pas la première ..) sur une partition sur un disque externe avec plusieurs partitions ( Je ne le clone pas non plus sur la première partition du disque ...)
FDisquez l'image donne ceci:
# fdisk -l 2013-02-09-wheezy-raspbian.img Disque 2013-02-09-wheezy-raspbian.img: 1939 Mo, 1939865600 octets 255 têtes, 63 secteurs / piste, 235 cylindres, total 3788800 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille du secteur (logique / physique): 512 octets / 512 octets Taille d'E / S (minimum / optimal): 512 octets / 512 octets Identificateur de disque: 0x00014d34 Système d'identification des blocs de début de démarrage de périphérique 2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA) 2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux #
et le périphérique de bloc ressemble à ceci:
# fdisk -l / dev / sdc Disque / dev / sdc: 8014 Mo, 8014266368 octets 247 têtes, 62 secteurs / piste, 1022 cylindres, total 15652864 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille du secteur (logique / physique): 512 octets / 512 octets Taille d'E / S (minimum / optimal): 512 octets / 512 octets Identificateur de disque: 0x00000000 Système d'identification des blocs de début de démarrage de périphérique / dev / sdc1 2048 131071 64512 e W95 FAT16 (LBA) / dev / sdc2 131072 15652863 7760896 83 Linux #
Je veux que la deuxième partition de l'image remplace la deuxième partition du périphérique de bloc. Ne vous inquiétez pas de l'espace libre corrompu, je vais utiliser GParted pour nettoyer cela, et j'en ai besoin pour autre chose de toute façon.
Réponses:
Si
--partscan
cela ne fonctionne pas, vous pouvez également utiliser l'un des éléments suivants:ou des solutions de mappage de partition similaires.
Vous devriez probablement le monter d'abord pour voir si c'est la bonne chose ou quoi.
Bien sûr, vous pouvez également lire la sortie fdisk et donner directement
dd
leskip=131072
ou quoi que ce soit, c'est-à-dire faire sauter autant de blocs d'entrée pour qu'il commence à lire à l'emplacement de la partition; mais il est plus agréable de voir les partitions réelles avec un périphérique en boucle.la source
losetup
commande n'a pas fonctionné - elle indiquait une option non reconnue--find
. J'ai supprimé cela, il a dit qu'il ne reconnaissait pas--show
. Le retirer--partscan
m'a fait me plaindre , à quel point j'ai réalisé que le commandement n'allait rien faire pour moi de sitôt. J'ai décidé d'essayer les autres, mais les deuxpartx
et dekpartx
retourner "commande non trouvée".dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdc skip=122880
, mais ça revientdd: ‘2013-02-09-wheezy-raspbian.img’: cannot skip: Invalid argument
.skip
dépendbs
, donc si vous avez utilisébs=1M
(ou avez un alias qui fait cela), cela expliquerait pourquoi cela ne fonctionne pas. essayez avecbs=512
. Aussi, pourquoi 122880 quand fdisk dit 131072? Mon losetup aussilosetup from util-linux 2.22.2
. idem pour partx. kpartx est issu d'outils multi-chemins (mappeur de périphériques utilisé).kpartx
est pour LVM.partprobe
fera également le travail, à partir du package séparé.Quelque chose comme ça devrait fonctionner:
if = définit l'image que vous souhaitez cloner
of = définit la partition cible où vous souhaitez cloner l'image
la source
dd: opening ‘2013-02-09-wheezy-raspbian.img2’: No such file or directory
losetup -fP yourImage.img
dd
, vous pouvez le fairedd if=/dev/loop0p1 of=image.img
, mais je pense que vous aimeriezcat
mieux. Dans un shell racine, faites simplementcat /dev/loop0p1 > image.img
. Les deux exemples supposent que vous voulez la première partition, et le périphérique de bouclage qui vous a été attribué était/dev/loop0
losetup -d /dev/loop0
. Encore une fois, cela suppose qu'il/dev/loop0
s'agit de votre périphérique de bouclage.la source
Vous pourriez faire:
la source
Vous pouvez copier uniquement la deuxième partition vers une image distincte avec ce
et après cela, vous pouvez le copier à la place de la partition sur le disque
ou vous pouvez même le faire en une seule commande
Assurez-vous simplement de démonter / dev / sdc2 avant de l'écrire.
la source