Saya memiliki gambar disk, ini adalah disk image "keseluruhan", mis., Berisi banyak partisi, dan saya ingin mengkloning salah satunya (bukan yang pertama ..) ke sebuah partisi di drive eksternal dengan banyak partisi di atasnya ( Saya juga tidak mengkloningnya ke partisi pertama disk ...)
FDisk'ing gambar memberikan ini:
# fdisk -l 2013-02-09-wheezy-raspbian.img Disk 2013-02-09-wheezy-raspbian.img: 1939 MB, 1939865600 byte 255 kepala, 63 sektor / jalur, 235 silinder, total 3.788.800 sektor Unit = sektor 1 * 512 = 512 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte Ukuran I / O (minimum / optimal): 512 byte / 512 byte Pengidentifikasi disk: 0x00014d34 Perangkat Booting Mulai Akhir Blok Sistem Id 2013-02-09-wheezy-raspbian.img1 8192 122879 57344 c W95 FAT32 (LBA) 2013-02-09-wheezy-raspbian.img2 122880 3788799 1832960 83 Linux #
dan perangkat blok terlihat seperti ini:
# fdisk -l / dev / sdc Disk / dev / sdc: 8014 MB, 8014266368 byte 247 kepala, 62 sektor / jalur, 1022 silinder, total sektor 15652864 Unit = sektor 1 * 512 = 512 byte Ukuran sektor (logis / fisik): 512 byte / 512 byte Ukuran I / O (minimum / optimal): 512 byte / 512 byte Pengidentifikasi disk: 0x00000000 Perangkat Booting Mulai Akhir Blok Sistem Id / dev / sdc1 2048 131071 64512 e W95 FAT16 (LBA) / dev / sdc2 131072 15652863 7760896 83 Linux #
Saya ingin partisi kedua dari gambar untuk menggantikan partisi kedua dari perangkat blok. Jangan khawatir tentang trailing free space yang rusak, saya akan menggunakan GParted untuk membersihkannya, dan saya tetap membutuhkannya untuk hal lain.
Jawaban:
Jika
--partscan
tidak berhasil, Anda juga dapat menggunakan salah satu dari:atau solusi pemetaan partisi serupa.
Anda mungkin harus memasangnya terlebih dahulu hanya untuk melihat apakah itu hal yang benar atau apa.
Tentu saja Anda juga dapat membaca output fdisk dan memberikan
dd
yangskip=131072
atau apa pun secara langsung, yaitu membuatnya melewatkan banyak blok masukan sehingga mulai membaca di mana partisi terletak; tetapi lebih baik untuk melihat partisi aktual dengan perangkat loop.sumber
losetup
Perintah Anda tidak berfungsi - katanya opsi tidak dikenal--find
. Saya menghapusnya, katanya tidak mengenali--show
. Melepaskannya menyebabkannya mengeluh--partscan
, pada titik mana saya menyadari bahwa perintah tidak akan melakukan apa pun untuk saya dalam waktu dekat. Saya memutuskan untuk mencoba yang lain, tetapi keduanyapartx
dankpartx
kembali "perintah tidak ditemukan".dd if=2013-02-09-wheezy-raspbian.img of=/dev/sdc skip=122880
, tetapi itu kembalidd: ‘2013-02-09-wheezy-raspbian.img’: cannot skip: Invalid argument
.skip
tergantung padabs
, jadi jika Anda menggunakanbs=1M
(atau memiliki alias yang melakukan ini), itu akan menjelaskan mengapa itu tidak berhasil. coba denganbs=512
. Juga, mengapa 122880 ketika fdisk mengatakan 131072? Kerugian saya jugalosetup from util-linux 2.22.2
. sama untuk partx. kpartx berasal dari multipath-tools (device mapper bekas).kpartx
adalah untuk LVM.partprobe
juga akan melakukan pekerjaan itu, dari paket yang dibelah.Sesuatu seperti ini seharusnya bekerja:
if = mengatur gambar yang ingin Anda tiru
of = mengatur partisi target tempat Anda ingin mengkloning gambar
sumber
dd: opening ‘2013-02-09-wheezy-raspbian.img2’: No such file or directory
losetup -fP yourImage.img
dd
, Anda bisa melakukannyadd if=/dev/loop0p1 of=image.img
, tetapi saya pikir Anda ingin yangcat
lebih baik. Dalam shell root, cukup lakukancat /dev/loop0p1 > image.img
. Kedua contoh mengasumsikan bahwa Anda menginginkan partisi pertama, dan perangkat loopback yang ditugaskan kepada Anda/dev/loop0
losetup -d /dev/loop0
. Sekali lagi, ini mengasumsikan bahwa itu/dev/loop0
adalah perangkat loopback Anda.sumber
Anda bisa melakukannya:
sumber
Anda dapat menyalin hanya partisi kedua ke gambar terpisah dengan ini
dan setelah itu Anda dapat menyalinnya di tempat partisi pada disk
atau Anda bahkan dapat melakukannya dalam satu perintah
Pastikan bahwa Anda melepas / dev / sdc2 sebelum Anda menulisnya.
sumber