Sorununuz muhtemelen bilgisayarınızda değil, kendi başınıza, muhtemelen sorun değil. Ancak bu USB flaş geçiş katmanı,% 90 hatalı flaş çipinin ne kadar olabileceğini telafi etmek için tüm yazdıklarınızı ortaya çıkarmak zorunda olan kendi işlemcisine sahiptir, kim bilir? Su bastın, sonra tamponlarını su bastın, sonra bütün otobüsü suya attın, sonra sıkışıp kaldın, dostum - sonuçta, tüm eşyalarının olduğu yer orası. Karşı sezgisel gelebilir, ancak gerçekte ihtiyacınız olan G / Ç'yi engellemektir - FTL'nin hızı ayarlamasına ve sonra da devam etmesine izin vermeniz gerekir.
(FTL mikro denetleyicilerini hacklemek üzerine: http://www.bunniestudios.com/blog/?p=3554 )
Yukarıdaki cevapların hepsi işe yaramalı, bu daha çok "benim de!" Olmalı. her şeyden çok: Tamamen orada bulundum adamım. Rsync - bwlimit arg ile kendi sorunlarımı çözdüm (2.5 mbs, tek, hatasız bir çalışma için güzel bir nokta gibi görünüyordu - daha fazlası ve yazmaya karşı koruma hatalarıyla giderim). rsync özellikle amacım için uyguntu çünkü tüm dosya sistemleriyle çalışıyordum - bu yüzden çok fazla dosya vardı - ve basitçe rsync'i ikinci kez çalıştırmak, ilk çalışmamın tüm sorunlarını çözecekti (sabırsızlanıp denediğimde gerekliydi. 2.5 mbs geçmiş rampa).
Yine de, sanırım bu tek bir dosya için pek pratik değil. Sizin durumunuzda ham-yazmaya ayarlanmış sadece gg'ye geçebilirdiniz - herhangi bir girişi bu şekilde halledebilirsiniz, ancak bir seferde sadece bir hedef dosya (tek bir dosya elbette tüm bir blok cihaz olsa da).
## OBTAIN OPTIMAL IO VALUE FOR TARGET HOST DEV ##
## IT'S IMPORTANT THAT YOUR "bs" VALUE IS A MULTIPLE ##
## OF YOUR TARGET DEV'S SECTOR SIZE (USUALLY 512b) ##
% bs=$(blockdev --getoptio /local/target/dev)
## START LISTENING; PIPE OUT ON INPUT ##
% nc -l -p $PORT | lz4 |\
## PIPE THROUGH DECOMPRESSOR TO DD ##
> dd bs=$bs of=/mnt/local/target.file \
## AND BE SURE DD'S FLAGS DECLARE RAW IO ##
> conv=fsync oflag=direct,sync,nocache
## OUR RECEIVER'S WAITING; DIAL REMOTE TO BEGIN ##
% ssh user@remote.host <<-REMOTECMD
## JUST REVERSED; NO RAW IO FLAGS NEEDED HERE, THOUGH ##
> dd if=/remote/source.file bs=$bs |\
> lz4 -9 | nc local.target.domain $PORT
> REMOTECMD
Netcat'ı bir veri çekerseniz veri aktarımı için ssh'den biraz daha hızlı bulabilirsiniz. Neyse, diğer fikirler çoktan alındı, öyleyse neden olmasın?
[EDIT]: Diğer yazıdaki lftp, scp ve ssh ifadelerinden bahsettim ve uzak bir kopyadan bahsettiğimizi düşündüm. Yerel çok daha kolay:
% bs=$(blockdev --getoptio /local/target/dev)
% dd if=/src/fi.le bs=$bs iflag=fullblock of=/tgt/fi.le \
> conv=fsync oflag=direct,sync,nocache
[EDIT2]: Ödünç verildiği yerdeki kredi: fark etmeden önce ptman yorumda beni beş saat kadar dövdü.
Kesinlikle burada bs için performans için $ bs ayarlayabilirsin - ancak bazı dosya sistemleri hedef f'in sektör boyutunun bir katı olmasını gerektirebilir, bu yüzden bunu aklında tut.
ionice
diskten diske kopyalama işleminizin normal işlemlerden daha düşük önceliğe sahip bir G / Ç olarak planlandığından emin olmak için kullanılabilir.