<feed xmlns='http://www.w3.org/2005/Atom'>
<title>propellor/src/Propellor/Property/DiskImage.hs, branch master</title>
<subtitle>gnusosa's centralized propellor repository for hosts spin-up.
</subtitle>
<id>https://git.gnusosa.net/propellor/atom?h=master</id>
<link rel='self' href='https://git.gnusosa.net/propellor/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/'/>
<updated>2018-01-06T18:48:34Z</updated>
<entry>
<title>changes to allow GPT BIOS boot partitions</title>
<updated>2018-01-06T18:48:34Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2018-01-06T18:48:34Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=bc6045c8b5333ac5d407e8f4b96bb0d9f50dfa9a'/>
<id>urn:sha1:bc6045c8b5333ac5d407e8f4b96bb0d9f50dfa9a</id>
<content type='text'>
* Parted: Allow partitions to have no filesystem, for eg, GPT BIOS boot
  partitions. (API change)
* Added rawPartition to PartSpec, for specifying partitions with no
  filesystem.
* Added BiosGrubFlag to PartFlag.

Note that man parted does not list the "bios_boot" flag, but I found it in
its html documentation. Other flags may also be missing.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
</content>
</entry>
<entry>
<title>Grub.boots, Grub.bootsMounted: Pass --target to grub-install.</title>
<updated>2017-12-21T04:12:01Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-21T04:12:01Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=4b2f46e510080b6d5df0ee04a3fae8e53df1ea7a'/>
<id>urn:sha1:4b2f46e510080b6d5df0ee04a3fae8e53df1ea7a</id>
<content type='text'>
This is to support eg, coreboot. The GrubTarget passed to Grub.installed
is introspected to determine --target. If multiple grubs are installed,
it currently doesn't pass any --target. Might make more sense to run
grub-install repeatedly, but I don't know if that case is sane at all.

The Xen -&gt; "x86_64-xen" mapping is kind of arbitrarily
chosen since there's a i386-xen available too. I don't know when that
case would be used in any case though; chainPVGrub uses installed Xen,
but it does not run grub-install. If this does become a problem,
would probably need to split it into Xen64 and Xen32.

Renamed BIOS to GrubTarget in passing to match grub's terminology; BIOS was
kind of a joke term for this in propellor.

This commit was sponsored by Francois Marier on Patreon.
</content>
</entry>
<entry>
<title>say when resizing/creating disk image file</title>
<updated>2017-12-20T23:01:42Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-20T23:01:42Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=9beb0011f00b591757db34873e1b8fc353ff7e75'/>
<id>urn:sha1:9beb0011f00b591757db34873e1b8fc353ff7e75</id>
<content type='text'>
That can take quite a while, so let the user know why propellor has
stalled.
</content>
</entry>
<entry>
<title>two diskimage edge case fixes</title>
<updated>2017-12-20T22:17:42Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-20T22:16:14Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=9d4655cf55ec0ab2d95b707e6b5ff009f0515bcd'/>
<id>urn:sha1:9d4655cf55ec0ab2d95b707e6b5ff009f0515bcd</id>
<content type='text'>
* DiskImage: Fix rsync crash when a mount point does not exist in the
  chroot.
* Fix bug in unmountBelow that caused unmounting of nested mounts to
  fail.

This commit was sponsored by Jack Hill on Patreon.
</content>
</entry>
<entry>
<title>disk partition alignment</title>
<updated>2017-12-20T21:10:40Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-12-20T20:10:34Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=4e20a920baa6c9106179c3d8a1e8e66ffd50ce9c'/>
<id>urn:sha1:4e20a920baa6c9106179c3d8a1e8e66ffd50ce9c</id>
<content type='text'>
Cheap flash drives need partitions aligned to 4 MiB in order to not be slow
(and to avoid extra writes). &lt;https://lwn.net/Articles/428584/&gt;
And at least 1 MiB alignment is generally a good idea, and most people
seem to think 4 MiB is for all drives.

I noticed that Parted.partitioned does not do that; the first
partition started at an offset of 1 MB, and subsequent partitions
from where it ends. (The 1 MB offset came from the PartedVal PartSize
instance, and note that it was not 1 MiB.)

* Parted: Add an Alignment parameter. (API change)
  A good default to use is safeAlignment, which is 4MiB,
  well suited for inexpensive flash drives, and fine for other disks too.
  Previously, a very non-optimial 1MB (not 1MiB) alignment had been used.
* DiskImage: Use safeAlignment. It didn't seem worth making the
  alignment configurable here.

Alignment is implemented by offsetting the first partition's start
position so it's aligned (making sure to leave room for the partition
table). Each partition is then extended as needed so the next partition
will start properly aligned.

Note that parted rejects partition tables that don't fit in cylinder
bounderies. Before, propellor let parted deal with the fine details
of layout, so that was not a problem. Now it's possible to set some
wacky Alignment not divisible by 512, or use Byte sizes for partitions
and create a partition table that parted rejects. But, using
safeAlignment and MegaBytes should always be safe.

Also, this fixes a rounding bug in Parted.calcPartTable.
It was rounding up to the nearest MegaByte when allocating remaining
disk space, so returned partition table that was actually larger than
the disk size.

This commit was sponsored by an anonymous bitcoiner.
</content>
</entry>
<entry>
<title>add comma</title>
<updated>2017-11-19T19:50:17Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-19T19:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=c2a99c2c6d868e319990c5d3fc660c5133164874'/>
<id>urn:sha1:c2a99c2c6d868e319990c5d3fc660c5133164874</id>
<content type='text'>
</content>
</entry>
<entry>
<title>partition table in Info</title>
<updated>2017-11-19T19:21:53Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-19T19:21:53Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=c7a8c812add892eb7f7b7068d258efa01095fcde'/>
<id>urn:sha1:c7a8c812add892eb7f7b7068d258efa01095fcde</id>
<content type='text'>
Diskimage.imageBuiltFor: New property to build a disk image for a Host,
using partition table information configured via the new properties
hasPartitionTableType, hasPartition and adjustPartition.

This lets Machine properties include eg /boot partitions that are known to
be needed by the bootloader, and the user can adjust those partitions and
add others.

This commit was sponsored by Brock Spratlen on Patreon.
</content>
</entry>
<entry>
<title>reorganized</title>
<updated>2017-11-18T09:02:24Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-18T09:02:24Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=492c52bfabb4d1772034eb15b263f5e257d2548b'/>
<id>urn:sha1:492c52bfabb4d1772034eb15b263f5e257d2548b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Service: Avoid starting services when noServices is used.</title>
<updated>2017-11-18T01:58:53Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-18T01:58:39Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=6dae019be9ebed76f282ec3cb258df7bf5891320'/>
<id>urn:sha1:6dae019be9ebed76f282ec3cb258df7bf5891320</id>
<content type='text'>
Reconsidered making services never run inside chroots, that seemed too
potentially limiting.

Using Info rather than checking policy-rc.d because it will also work
outside of debian, but more because policy-rc.d has an extremely
complicated interface and I didn't want to deal with it.

This commit was sponsored by Jochen Bartl on Patreon.
</content>
</entry>
<entry>
<title>propellor spin</title>
<updated>2017-11-17T19:21:58Z</updated>
<author>
<name>Joey Hess</name>
<email>joeyh@joeyh.name</email>
</author>
<published>2017-11-17T19:21:58Z</published>
<link rel='alternate' type='text/html' href='https://git.gnusosa.net/propellor/commit/?id=e7ffe778fe41ad87e3d02251d9cbf0b87d972909'/>
<id>urn:sha1:e7ffe778fe41ad87e3d02251d9cbf0b87d972909</id>
<content type='text'>
</content>
</entry>
</feed>
