combina le partizioni su un'immagine del disco


13

Ho 3 immagini. Ogni immagine è stata fatta clonando (con dd) una partizione (queste partizioni formattate usando il file system ext3). Una partizione è avviabile con GRUB1 (CentOS)

Come posso combinarli su un'immagine del disco?

(Posso copiare le immagini delle partizioni usando il comando dd, ma non so come creare una tabella delle partizioni e far funzionare il boot).


1
Cosa stai davvero cercando di fare? Clonare un sistema funzionante su nuovo hardware, ecc.? Le tre partizioni di punti di montaggio differenti erano su un unico sistema?
Mike Renfro,

Qual è l'obiettivo? puoi usare i dispositivi di loopback per lavorare con le immagini del filesystem, ma modificare le immagini del disco piuttosto che le immagini di partizione / filesystem è molto più complicato.
Michael Lowman,

Risposte:


15

Crea un'immagine del disco. Il seguente comando creerà un'immagine sparsa 10G :

# dd if=/dev/zero of=mydisk.img bs=1 count=0 seek=10G
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.6554e-05 s, 0.0 kB/s
# ls -lh mydisk.img
-rw-r--r--. 1 root root 10G Jun 17 15:27 mydisk.img

Partiziona l'immagine con fdisk:

# fdisk mydisk.img

Assicurati di creare partizioni grandi almeno quanto quelle che hai ripreso! Per questo esempio ho creato il seguente layout:

# fdisk -l mydisk.img
Disk mydisk.img: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders, total 20971520 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
Disk identifier: 0x5519250f

     Device Boot      Start         End      Blocks   Id  System
mydisk.img1            2048     2099199     1048576   83  Linux
mydisk.img2         2099200     4196351     1048576   83  Linux

Utilizzare kpartxper creare dispositivi corrispondenti a ciascuna delle partizioni:

# kpartx -av mydisk.img
add map loop0p1 (253:3): 0 2097152 linear /dev/loop0 2048
add map loop0p2 (253:4): 0 2097152 linear /dev/loop0 2099200

Questo creerà voci sotto /dev/mapper:

# ls -l /dev/mapper
lrwxrwxrwx. 1 root root       7 Jun 17 15:33 loop0p1 -> ../dm-3
lrwxrwxrwx. 1 root root       7 Jun 17 15:33 loop0p2 -> ../dm-4

Ora puoi copiare le immagini delle tue partizioni sulle tue partizioni:

# dd if=image_of_partition_1.img of=/dev/mapper/loop0p1 bs=1M
# dd if=image_of_partition_2.img of=/dev/mapper/loop0p2 bs=1M

Ora rimuovi i mapping dei dispositivi:

# kpartx -dv mydisk.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

E sei pronto!

Appunti

  • Puoi anche ottenere lo stesso risultato utilizzando dde il seekparametro (per iniziare a scrivere dall'offset appropriato nel file di immagine del disco) invece di utilizzare kpartx, ma penso che l'utilizzo kpartxsia meno soggetto a errori.

  • Ciò non si tradurrà in un'immagine di avvio. Se lo desideri, dovrai anche installare un boot loader su di esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.