USB'ye yazma durumunu izlemek neden güvenilir değil?


1

ISO dosyalarını USB flaş sürücülere çok yazıyorum ve yazma durumunu izlemenin bir yolunu bulmaya çalışıyorum. Bu Googling, dahil çözümleri, bir demet bulduk pv, dcflddve USR1 sinyalini ddkomutu.

Her durumda, bu durum böyle görünüyor:

  1. Dosya, yaklaşık 100 MB / sn. Hızdaki sürücüye yazılmıştır.
  2. Transfer 10 saniyeden az bir sürede bitiyor (veya% 99,99'da donuyor)
  3. Aktarma komutu, birkaç dakika boyunca yanıt vermiyor , kesintilere bile cevap vermiyor
  4. Transfer biter

Beklediğim davranış, belki de 5 MB / sn civarında nispeten yavaş bir yazma ve% 0 ile% 100 arasında eşit şekilde ilerleyen bir ilerleme çubuğu olacaktır. Dosyanın hızlı bir şekilde bir tür tampon belleğe yazıldığı, daha sonra yavaşça diske girdiği anlaşılıyor.

Temel olarak aynı sonuçlara sahip, denediğim bazı komutlar:

# işlevi vdd {
> sudo dd "$ @" &
> sudo sh -c "pkill -10 ^ dd $; 5'i uyu; bitti"
>}
# vdd bs = 4096 eğer = "/ yol / - / ubuntu-15.04-desktop-amd64.iso" = / dev / sdb
= = / dev / sdb = = / / / / ubuntu-15.04-desktop-amd64.iso = = / devd / sdb ise dcfldd bs = 4096
pv "/path/to/ubuntu-15.04-desktop-amd64.iso" | dd bs = 4096 = = / dev / sdb
pv -B 4096 "/path/to/ubuntu-15.04-desktop-amd64.iso"> / dev / sdb

Ben için man sayfalarına aramış dd, pvve dcflddsözcük sonuçlarla "flush" ...


Bunu USB aktarımlarında görmedim ancak ağ aktarımlarının özellikle eğilimli olduğunu gördüm. Aktarımın durumunu incelerken, onu kesilmeyen G / Ç'de bulurum ve bu bir ağ sürücüsü sınırlamasıdır. USB ile benzer bir sorundan şüpheleniyorum, muhtemelen yazma işleminden sonra denemeler nedeniyle ağırlaştırılmış olan kalem sürücüsündeki kötü el sıkışmasından kaynaklanıyordur. Eğer öyleyse, herhangi bir ilerleme izleyicinin çalışacağını göremiyorum.
AFH,

@AFH Umarım durum böyle değildir ... 100 MB / sn'nin üzerinde yazabildiğim USB 3.0 çubuğum olması, sadece donma nedeniyle etkili bir 5 MB / sn'ye düşürülmesi utanç verici.
Hubro,

Katılıyorum, ancak her zaman kalem sürücüleri ve SD kartlarını USB disklerden çok daha az güvenilir buldum, özellikle de doldurduklarında, kameralarda daha fazla sorun yaşamadım, belki de daha yavaş yazma oranları nedeniyle.
AFH,

Yanıtlar:


1

Bir cli aracı için ihtiyacınız varsa

USB="/dev/sdb"
ISO_IMAGE="/path/to/ubuntu-15.04-desktop-amd64.iso"
SIZE=$(du -h -B1 "$ISO_IMAGE" | awk '{print $1}')

dd if="$ISO_IMAGE" | pv -s "$SIZE" | dd of="$USB" bs=4M oflag=dsync

Burada dd, diske tamamen senkronize çıktı isteyecektir.

Floş'ten bahsettiniz, muhtemelen bazı UI'lerin ilerleme satırlarını satır sırayla yazmak için kullanmak istiyorsunuz pv -n.

 USB="/dev/sdb"
 ISO_IMAGE="/path/to/ubuntu-15.04-desktop-amd64.iso"
 SIZE=$(du -h -B1 "$ISO_IMAGE" | awk '{print $1}')

 (dd if="$ISO_IMAGE" | pv -n -s "$SIZE" | dd of="$USB" bs=4M oflag=dsync) 2>&1 | \
  yad --center --borders=6 --title="Image writer" --text="$(echo -e "Writing $(basename "$ISO_IMAGE"):")"\
        --width=300 --progress --no-buttons --auto-close --image=system-run --window-icon=drive-removable-media-usb
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.