Gerçek bölümler sığacaksa daha büyük bir SD kartı daha küçük bir SD karta klonlamak için dd'yi kullanabilir miyim?


9

Üzerinde birkaç bölüm olan 16GB'lık bir SD kartım var (aslında bir Raspberry Pi için kart). Birincil kartı klonlamak istediğim birkaç tane daha 4GB kartım var. Birincil karttaki 3 bölüm:

  • Törpü açılış bölümü, FAT, 60MB
  • Linux bölümü, ext2, 1GB
  • Ek "depolama" bölümü, FAT, 1GB

ddKartın bir görüntüsünü şu yolla oluşturmak için kullanırsam :

dd if=/dev/sdb of=~/sd-card.bin

elde edilen .bin boyutu 16 GB'tır. ddGerçekte ne kullanıldığını kopyalamak için kullanmanın bir yolu var mı , yani <4GB, böylece bunu ddyeni bir 4GB karta alabilir miyim? Yoksa kullanmam gereken daha iyi bir çözüm var mı?


Sonunda yeni bir 4GB kartta tam içerikler oluşturdum ve ddbunu bir miktar başka kartla klonladım. Yine de, ilk sorunun çözülmesinin mümkün olup olmadığını bilmek istiyorum.

Yanıtlar:


9

Ahududu pi kendisi değil, kopyasını gerçekleştirmek için bir PC linux veya mac bilgisayar kullandığınızı varsayıyorum. Muhtemelen bir blok boyutu eklemeniz gerekecektir.

Bs = 1M veya bs = 4M belirterek Raspberry pi diskleri için kullanılan bir ve dört megs gördüm. Büyük aktarımlar daha küçük olanlardan daha hızlı olduğu için diski yazarken blok boyutunun daha önemli olduğunu düşünüyorum. Bu, disk için blok boyutunu ayarlamaz, sadece dd'nin kullandığı aktarımların boyutunu etkiler. Büyük bir blok boyutu belirlemenin bir nedeni, flaşı yazmadan önce silme gereksinimidir. Bu otomatik olarak yapılır ancak minimum silme boyutundan daha büyük aktarımlar için daha hızlıdır.

Dd tarafından kopyalanan toplam veri sayısını "count" kullanarak sınırlayabilirsiniz. "count" blok birimlerinde. Kaynak diskteki son bölümün sonu hedefin boyutundan önce ise, istediğinizi yapabilirsiniz.

Böyle dd if=/dev/sdb of=~/sd-card.bin bs=1M count=4000bir şey , 4000 MB boyutunda bir görüntü oluşturacaktır.

Daha fazla bilgi için http://en.wikipedia.org/wiki/Dd_(Unix) ve http://elinux.org/RPi_Easy_SD_Card_Setup adresine bakın . Son bölümün sonunu veya kartların toplam boyutunu nasıl bulacağınızdan emin değilim. Ancak diskleri biçimlendirdiyseniz, bunu nasıl yapacağınızı muhtemelen bileceksiniz.


Bilgi için teşekkürler. Sayma seçeneğinin farkında değildim. Bunu deneyeceğim.

@charlie, sayım seçeneği ile ve sayma seçeneği olmadan deneyebilir ve geri rapor ederseniz büyüleyici olurdu. diskin boyutunun nasıl bildirildiğini ve diske dosya ekleyip ekleyemeyeceğinizi ve boyutun değişip değişmediğini kontrol ettiğinizden emin olun. çünkü dd farklı büyüklükteki disklerle ilgili başarısız olduğunda, bu tür problemlerle karşılaşırsınız. Burada iki farklı boyutlu sürücü ile dd ile berbat bir örnek. superuser.com/questions/538583/difficulty-resizing-a-partition Sonunda klonu yapmak için dd kullanmadım.
barlop

3

Üzerine Genişleyen William'ın cevap , tek kullanarak son bölüm sonunu hesaplamak olabilir fdiskve bir hesap makinesi:

$ fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 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
Disklabel type: dos
Disk identifier: 0x00057540

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        2048  186367  184320   90M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      186368 3667967 3481600  1.7G  5 Extended
/dev/mmcblk0p5      188416 3667967 3479552  1.7G 83 Linux

Bayt cinsinden toplam kullanılan alan = son bölüm X sektör boyutunun son sektörü (burada 3667967 x 512).

GB cinsinden toplam kullanılan alan = bayt / 1024 3 cinsinden toplam kullanılan alan (burada 1.749023 GB).

Genellikle, son yararlı veriye kadar ayrıştırılmış bir görüntü oluşturmak hayati değildir, bu nedenle yukarıdaki örnekte, daha önceki aynı cevapta William tarafından açıklanan yöntemi kullanarak 2 GB'lık bir görüntü oluşturacağım :

dd if=/dev/mmcblk0 of=/path/to/pi_updated.img bs=1M count=2048

Görüntünün sonunda, son yararlı verilerinizden sonra işe yaramaz guff'un küçük bir kısmı olacaktır, ancak prensip olarak, görüntüyü medyanıza geri yazdığınızda üzerine yazılacak olan gereksiz guff'tan farklı değildir.

Bu yöntem benim için bir düzine kadar klon üzerinde çalışıyor. Bu yöntemde ölümcül kusurlar varsa, henüz ortaya çıkmadılar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.