об'єднати розділи на одне зображення диска


13

У мене є 3 зображення. Кожне зображення було зроблено клонуванням (від dd) розділу (ці розділи відформатовані за допомогою файлової системи ext3). Один розділ може завантажуватися за допомогою GRUB1 (CentOS)

Як можна об'єднати їх на одне зображення диска?

(Я можу скопіювати зображення розділів за допомогою команди dd, але я не знаю, як створити таблицю розділів та зробити завантаження робочим).


1
Що ви насправді намагаєтесь зробити? Клонувати робочу систему на нове обладнання тощо? Чи були три перегородки з різних точок кріплення в одній системі?
Майк Ренфро

Яка мета? ви можете використовувати пристрої із зворотним зв'язком для роботи із зображеннями файлової системи, але змінити образи диска, а не зображення розділів / файлових систем - набагато складніше.
Майкл Лоуман

Відповіді:


15

Створіть образ диска. Наступна команда створить розрізнене зображення 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

Розділіть зображення за допомогою fdisk:

# fdisk mydisk.img

Переконайтеся, що ви створили розділи, принаймні такі великі, як ті, які ви зображали! Для цього прикладу я створив такий макет:

# 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

Використовуйте kpartxдля створення пристроїв, відповідних кожному з розділів:

# 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

Це створить записи під /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

Тепер ви можете скопіювати зображення розділів на свої розділи:

# 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

Тепер видаліть відображення пристрою:

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

І ви все налаштовані!

Примітки

  • Ви можете також виконати те саме, використовуючи ddі seekпараметр (для початку запису у відповідному зміщенні у вашому файлі образу диска), а не використовувати kpartx, але я думаю, що використання kpartxменш схильне до помилок.

  • Це не призведе до отримання завантажувального зображення. Якщо ви цього хочете, вам також доведеться встановити на нього завантажувач.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.