Odpověď na názor

Odpovídáte na názor k článku Další chyba v Ubuntu 25.10 kvůli rust-coreutils. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 24. 10. 2025 20:03

    Jan Hrach
    Stříbrný podporovatel

    Tak to jste si ale dost zahrával, protože dd je minové pole. tl;dr dd bez flagu fullblock prostě yolo udělá syscall read s velikostí podle nastavené velikosti bloku, a když mu kernel vrátí méně dat, tak to neřeší a zapíše je na výstup a počítá to za plný blok. Takže můžete snadno přenést méně dat než jste chtěl. Skoro mi podle popisu bugu přijde, že tohle je sice bug v rust-coreutils (kromě částečného přečtení na vstupu udělá i částečný zápis na výstupu a ztratí přečtená data), ale kdyby se situace sešla, tak problém nastane i s normálním dd.

    Já se na dd vykašlal, soubory přenáším normálně catem (nebo ještě lépe pv - zobrazuje průběh, navíc celou dobu a nemusí se dráždit jak dd), a začátky a konce usekávám pomocí head a tail (-c 100, -c +100).

    Průběh obecně zobrazuji nástrojem progress, podporuje spoustu programů (gzip a další *zip, md5sum a další *sum…). Funguje tak, že se podívá do /proc/pid/fd aby zjistil, který soubor je vstup a výstup, a pak do /proc/pid/fdinfo, kde se dozví aktuální pozici. Pokud jsem na systému, kde není a nechci/nemůžu ho instalovat, tak tohle podívání se udělám ručně.