Date: Sat, 20 Apr 2019 21:35:36 +0100 From: Igor Mozolevsky <igor@hybrid-lab.co.uk> To: Ian Lepore <ian@freebsd.org> Cc: Hackers freeBSD <freebsd-hackers@freebsd.org> Subject: Re: bhyve VM stopped to boot after moving virtio disks Message-ID: <CADWvR2jXx3A8YdQ=Jwc36Z=%2BVzye78FEtmhPdp%2BtkOHcOqKKPA@mail.gmail.com> In-Reply-To: <de0f2df8b187e0f556ac6c259c338a4e0832071f.camel@freebsd.org> References: <alpine.BSF.2.20.1904192255290.97274@puchar.net> <2006ff8da153bbe5e7f620da9260ee1518bd248f.camel@freebsd.org> <alpine.BSF.2.20.1904201729190.99712@puchar.net> <b0d23ad4b9f442a1a7342306443b855407f0765c.camel@freebsd.org> <CADWvR2iR2THrrx7yK%2BguWKn_Zydnb%2BSFgD5FHFhVk-XeAzyZHQ@mail.gmail.com> <de0f2df8b187e0f556ac6c259c338a4e0832071f.camel@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 20 Apr 2019 at 19:29, Ian Lepore wrote: > > On Sat, 2019-04-20 at 18:45 +0100, Igor Mozolevsky wrote: > > On Sat, 20 Apr 2019 at 18:00, Ian Lepore wrote: > > > > <snip> > > > dd absolutely will fail to copy the last block of the source if it > > > isn't exactly the blocksize and you didn't specify conv=sync, and > > > it > > > will return a zero status when doing so. It appears you've > > > convinced > > > yourself otherwise, but for anyone else reading this thread, be > > > aware: > > > conv=sync is required to copy the last part of the source if it's > > > smaller than the blocksize. > > > > > > Isn't that contrary to the POSIX Spec? Reading the manual [1], it is > > implied (from STDERR part of the main section) that dd will read and > > write partial blocks, cf. truncated blocks?.. > > > > 1. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/dd.html > > > > > > Damn, why do people trim away the entire useful context of an email > thread when replying? I almost don't want to reply to this because at > this point all the useful info is gone. I only trimmed because you were appearing to be speaking generally and not specifically, so the trimmed part was superfluous. > In any case, in retrospect, what I said was wrong. Using conv=sync is > important when the output is a device that has fixed block sizes where > you cannot write a partial block. When the destination is a file where > short writes work correctly, it will copy the entire source correctly. Thanks for clarifying, I was starting to think I misread the POSIX standard when implementing a local version of dd. -- Igor M.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADWvR2jXx3A8YdQ=Jwc36Z=%2BVzye78FEtmhPdp%2BtkOHcOqKKPA>