Coder Social home page Coder Social logo

Comments (1)

poettering avatar poettering commented on June 16, 2024

It expects files to be aligned to 512 bytes, which is properly documented. However nowhere seems to exist a technical limitation that warrants this limitation.

Linux block devices have a sector size, which must be an exponent of 2, with 512 as smallest supported sector size.

Typical sector sizes are 512 (old hdds), 2048 (cdroms) and 4096 (new hdds).

Reading/Writing from block devices is only supported in multiples of the native sector size. Hence, by checking for a multiple of 512 early we just do a lightweight, early, superficial validity test, that filters out the worst offenders, but shouldn't limit us on any devices, because 512 after all is the minimum sector size linux knows, and 2048 and 4096 are multiples of it.

The copy_bytes_full function that is used seems to be quite capable of copying single bytes. And the size of the partition is also round up to a way greater value.

Sure it's generic, you can use it to copy files to files, as well as to copy into block devices. For the former it's good it can work byte exact, but for the block devices things must be sector based.

What kind of fs image are you trying to write into your partition? How could it possibly not be a multiple of 512bytes?

from systemd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.