kết hợp phân vùng với một hình ảnh đĩa


13

Tôi có 3 hình ảnh. Mỗi hình ảnh được thực hiện bằng cách nhân bản (bằng dd) một phân vùng (các phân vùng này được định dạng bằng hệ thống tệp ext3). Một phân vùng có khả năng khởi động với GRUB1 (CentOS)

Làm thế nào tôi có thể kết hợp chúng vào một hình ảnh đĩa?

(Tôi có thể sao chép hình ảnh phân vùng bằng lệnh dd, nhưng tôi không biết cách tạo bảng phân vùng và làm cho boot hoạt động).


1
Bạn thực sự đang cố gắng làm gì? Nhân bản một hệ thống làm việc lên phần cứng mới, vv? Có phải ba phân vùng từ các điểm gắn kết khác nhau trên một hệ thống?
Mike Renfro

Mục tiêu là gì? bạn có thể sử dụng các thiết bị loopback để làm việc với hình ảnh hệ thống tập tin, nhưng sửa đổi hình ảnh đĩa thay vì hình ảnh phân vùng / hệ thống tập tin là khó khăn hơn nhiều.
Michael Lowman

Câu trả lời:


15

Tạo một hình ảnh đĩa. Lệnh sau sẽ tạo hình ảnh thưa thớt 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

Phân vùng hình ảnh với fdisk:

# fdisk mydisk.img

Hãy chắc chắn rằng bạn tạo các phân vùng có kích thước tối thiểu bằng các phân vùng bạn đã chụp! Với ví dụ này tôi đã tạo bố cục sau:

# 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

Sử dụng kpartxđể tạo các thiết bị tương ứng với từng phân vùng:

# 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

Điều này sẽ tạo các mục trong /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

Bây giờ bạn có thể sao chép hình ảnh phân vùng của bạn vào phân vùng của bạn:

# 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

Bây giờ xóa ánh xạ thiết bị:

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

Và bạn đã sẵn sàng!

Ghi chú

  • Bạn cũng có thể thực hiện điều tương tự bằng cách sử dụng ddseektham số (để bắt đầu ghi ở phần bù thích hợp trong tệp ảnh đĩa của bạn) thay vì sử dụng kpartx, nhưng tôi nghĩ rằng việc sử dụng kpartxít bị lỗi hơn.

  • Điều này sẽ không dẫn đến một hình ảnh có thể khởi động. Nếu bạn muốn điều đó, bạn cũng sẽ phải cài đặt bộ tải khởi động lên nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.