Portál AbcLinuxu, 7. května 2025 03:25

Dotaz: vystup prikazu dd

19.10.2014 13:35 Milan Roubal | skóre: 25
vystup prikazu dd
Přečteno: 654×
Odpovědět | Admin
Potreboval bych poradit s interpretaci vysledku prikazu dd.

# dd if=/dev/zero of=/dev/sdq bs=1M
dd: writing '/dev/sdq': No space left on device
1907724+16 records in
1907722+17 records out
Co ve vysledku znamenaji ty +16 a +17? Chapu, kdyby tam bylo +1, ze posleni 1M blok se nepodaril zapsat cely, ale tato velka cisla?

Prikaz byl spusteni na serveru Synology, disk je pripojeny pres USB. V dmesg zadne chyby disku hlasene nejsou, pocet chyb na disku ve smart je stale 0.

Disk by mel byt darovan a neni zadouci, aby obsahoval chyby.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.10.2014 15:23 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
Odpovědět | | Sbalit | Link | Blokovat | Admin
http://en.wikipedia.org/wiki/Dd_%28Unix%29#Output_messages
19.10.2014 15:33 NN
Rozbalit Rozbalit vše Re: vystup prikazu dd
Tomu rikam vysvetleni..
19.10.2014 15:43 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
A ty to víš líp, než ta wikipedia? Proč jsi se tedy nepředvedl...
19.10.2014 17:32 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: vystup prikazu dd
diky za link, ale to bohuzel nevysvetluje dusledky. To tedy tech +16 u IN znamena, ze se 16x nepovedl precist 1M z /dev/zero? Da se tedy z toho neco interpretovat o stavu disku z techto castecne prectenych/zapsanych bloku?
19.10.2014 17:47 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: vystup prikazu dd
Disk je v pořádku.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Řešení 1× (Milan Roubal (tazatel))
19.10.2014 18:02 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
Ok, už to vidím, blbě jsem si přečetl zadání, sorry.

Tady https://bugzilla.redhat.com/show_bug.cgi?id=668247 píší o tom, že dd negarantuje, že na vstupu bude čekat, dokud nedorazí celý vstupní buffer dat. Takže může docházet k přenosu nekompletních (partial) bloků - to jsou ty za plusem. Zkus to samé s tím iflag=fullblock.

19.10.2014 18:04 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
Jinak samozřejmě ten disk bude OK, chyby bys viděl v dmesg. Ale narazil jsi na zajímavý problém. Ty lidi se v tom bugreportu docela rozčilují a skoro bych je i chápal :-)
19.10.2014 21:43 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: vystup prikazu dd
Vyborny link, dekuji. Nechapu tedy, k cemu je to standartni nepredikovatelne chovani dobre. Nedokazal jsem vymyslet jediny pripad, kdy by se hodilo chovani bez toho iflag parametru.
20.10.2014 06:16 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
Tady je pěkné vysvětlení

http://unix.stackexchange.com/questions/121865/create-random-data-with-dd-and-get-partial-read-warning-is-the-data-after-the

Dvě citace:

dd is a cranky tool which is hard to use correctly. Don't use it, despite the numerous tutorials that tell you so. dd has a “unix street cred” vibe attached to it — but if you truly understand what you're doing, you'll know that you shouldn't be touching it with a 10-foot pole.

So when you use count, technically you should always use iflag=fullblock as well.

Pěkné jsou ty ukázky příkazů, které doporučuje používat místo toho.

Jinak díky za tvůj dotaz, naučil jsem se díky němu spoustu nového, co jsem vůbec netušil :-)

20.10.2014 10:33 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: vystup prikazu dd
Tak podle toho clanku to vypada, ze hlavni podil na vysledku neni v utilite dd, ale v tom, ze ve druhem okne bezelo
while true; do killall -SIGUSR1 dd; sleep 60; done
pro zobrazeni prubehu. Jak je videt, obcas muze byt zdroj divneho chovani tam, kde by ho clovek vubec nehledal. Nastesti pro me jsem dd nespoustel s parametrem count, takze vysledek je presne takovy, jaky byl ocekavan, tedy disk plny nul.

dd z busybox nema parametr iflag, co pouzit pro kopirovani priste vcetne zobrazeni prubehu? Pokud pouziji ten priklad s head, tak jak zobrazit progress? Utilita pv na tom busybox systemu neni.
20.10.2014 11:06 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: vystup prikazu dd
Jasně, jak to píšou v té diskusi - standard je volat read ve smyčce, jenže dd (bez toho iflagu) to tak nedělá. Takže když se read přeruší tím signálem USR1, už pak nedočte chybějící data do plného bloku, přenese neúplný a začne číst blok nový. Pokud se nepoužije count, je to jedno, stejně se všechna data přenesou. Ale s countem bloků z toho pak lezou nečekané počty.

V busyboxu je dd implementován taky divně, jen bez volitelného fullblocku http://git.busybox.net/busybox/tree/coreutils/dd.c#n380 Řekl bych, že je to ekvivalentní funkci iread v normálním dd http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/dd.c;h=78433ff58848d1cefe2fe7cc88971600a2fb4011;hb=HEAD#l1067 . Očividně tam chybí ta smyčka v iread_fullblock http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/dd.c;h=78433ff58848d1cefe2fe7cc88971600a2fb4011;hb=HEAD#l1105

Co na sledování průběhu v čistém busyboxu fakt netuším.

20.10.2014 17:58 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: vystup prikazu dd
Hezké. To asi není domácí komp, když ses dopočítal až k disku Q, že.
20.10.2014 18:02 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: vystup prikazu dd
Jeno udev pravidlo…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
20.10.2014 18:31 Milan Roubal | skóre: 25
Rozbalit Rozbalit vše Re: vystup prikazu dd
Standartni Synology server. Prvni USB disk tam zacina sdq.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.