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 dd
và seek
tham 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ó.