Commit Graph

55 Commits

Author SHA1 Message Date
Adriaan de Groot
e186e54434 [fstab] Don't fail with a KeyError in misconfigured installations
Use get() instead of [] to avoid KeyError when the host system
confuguration is entirely missing a setting for *mountOptions*.

FIXES #1702
2021-05-24 22:16:54 +02:00
Chrysostomus
b16bd6bb23 Fix name error 2021-02-06 20:03:30 +02:00
Chrysostomus
8c0c84f162 Create all fstab entries one way instead of having special handling 2021-01-27 15:41:01 +02:00
Chrysostomus
14fbbd92dc Get configured subvolumes from the global storage 2021-01-26 22:56:31 +02:00
Chrysostomus
97eb32bf5c Correct the path of swapfile on btrfs 2020-12-07 22:47:32 +02:00
Chrysostomus
80a538665e Generate entry for subvolume @swap 2020-12-07 22:39:21 +02:00
Chrysostomus
3f0612b4ad Use different location for swapfile on btrfs root 2020-12-07 22:31:20 +02:00
Adriaan de Groot
0b61a02c31 [fstab] Avoid dd in creating a zeroed-file for swap
- Create a 16kiB buffer of zeroes
- write that out in a loop
2020-10-14 16:55:14 +02:00
Adriaan de Groot
0b3a6baeea [fstab] If swap is "file" then create it here
- handle swapfiles when writing /etc/fstab in the target system
  - special-case mountpoint
  - since swapfiles are not a partition, take the setting out
    of partitionChoices
- create the physical swapfile as well (there's no other place
  where it would make sense)
2020-10-06 17:05:22 +02:00
Adriaan de Groot
1cd9b93a22 REUSE: Giant boilerplate cleanup
- point to main Calamares site in the 'part of' headers instead
  of to github (this is the "this file is part of Calamares"
  opening line for most files).
- remove boilerplate from all source files, CMake modules and completions,
  this is the 3-paragraph summary of the GPL-3.0-or-later, which has
  a meaning entirely covered by the SPDX tag.
2020-08-26 02:28:38 +02:00
Adriaan de Groot
863a4cc2a4 REUSE: (GPL-3.0-or-later) Python modules 2020-08-26 02:22:49 +02:00
Adriaan de Groot
1b23520f20 REUSE: (CC0-1.0) module descriptors and configuration files
In spite of there being considerable documentation sometimes in the
config file, we go with CC0 because we don't want the notion of
'derived work' of a config file.

The example `settings.conf` is also CC0. Add some docs to
it while we're at it.
2020-08-26 02:22:49 +02:00
Adriaan de Groot
2eecd431fe REUSE: (CC0-1.0) test data
There's lots of (YAML) test data that is just trivial configurations
for modules. Since the configurations themselves are **also** CC0-1.0,
and the tests are less interesting, license them equally liberally.
2020-08-26 02:05:46 +02:00
Adriaan de Groot
86f66e8f16 REUSE: (GPL-3.0-or-later) all the schema files
- these are vaguely derived from the schema's written by
  artoo@manjaro.org, but totally re-done for JSON-Schema
2020-08-26 02:01:58 +02:00
Adriaan de Groot
050d74b4be Fix YAML schemas for all the remaining config files 2020-08-12 10:29:24 +02:00
Adriaan de Groot
4a07bd4ae3 CI: import all the rest of the YAML schema
- These have **not** been fixed for validation, so the schema's themselves
  will fail to load. This is a consequence of variations in JSON-Schema
  representations through various drafts. Fixing the schemata is
  fairly straightforward.

This gives us 19 new tests, all of which fail.
2020-06-16 16:06:56 +02:00
Adriaan de Groot
fe069bdb23 [fstab] Add some discussion about *discard* option
- drop the *discard* from filesystems-on-SSD in the standard example
  configuration.
- keep the table **with** *discard* around for referece and explanation.

Remember that the example configurations are intended as **examples**,
to document available settings, and do not reflect a sensible
production configuration.

FIXES #1395
2020-05-15 12:26:41 +02:00
Adriaan de Groot
5247c13f98 [partition] Follow 'claimed' settings for claiming swap
- By the time the GS is actually written, new (for partition state)
  is always false. So "new" is the wrong thing to track. It should
  have had a better name anyway,
- We store custom properties on the partition objects to indicate
  what happens to them; use those properties (instead of state,
  as done originally), call it "claimed" to indicate that the partition
  is part of this installation.

For now, only new (as in, formatted, created-by-us) partitions are
claimed.

- The effect here is that only "new" swap will be added to the system,
  so in erase-disk installations, or manual partitioning.
- Install-alongside and replace will now **not** claim the swap already
  on the disk; I think we'll need another UI knob for that one.

FIXES #1316
2020-02-20 16:38:40 +01:00
Adriaan de Groot
f9d9cd2df4 [fstab] Document the remapping of fs names
- Shuffle the code a little so it's clear where the remapping
  happens, and explain why we look for "swap" in fstab and
  "linuxswap" elsewhere.
2020-02-20 11:33:02 +01:00
Adriaan de Groot
1b80cf82de [fstab] Don't add swap that wasn't made new for us 2020-02-18 10:44:54 +01:00
Adriaan de Groot
dab841df02 [fstab] Tighten up the *efiMountOptions* documentation 2019-08-02 09:27:54 +02:00
apt-ghetto
0f5ff9a517 Add possibility to set mount options for the ESP
Added new configuration "efiMountOptions" to fstab.conf
When generating the fstab entry for the ESP, take the mount options from
the new configuration or fall back to "mountOptions".
2019-07-29 18:03:32 +02:00
apt-ghetto
8a545941d4 Remove flake8 errors
Remove the flake8 errors. This commit does not change any behaviour.
2019-07-29 16:01:30 +02:00
Adriaan de Groot
ec0fe2ccd3 Modules: Improve error reporting
- [initcpio] remove superfluous inner function
 - [initcpio] catch errors from mkinitcpio itself and report them in a nice
   readable format.

 - Save translators the effort of doing a dozen messages
   with just the name of the module changed. All of these modules
   bail out on bad configurations with a meaningful message.
   - [initcpiocfg]
   - [fstab]
   - [initramfscfg]
   - [localecfg]
   - [luksbootkeyfile]
   - [luksopenswaphookcfg]

 - [machineid] Warn on bad config. It's conceivable that this is run
   with an empty rootMountPoint (i.e. "") to modify the running system,
   so only bail on None.
2019-04-28 14:34:39 -04:00
Adriaan de Groot
c364e4fc38 [dracut] [fstab] Translate module names and error messages 2019-04-19 17:08:53 +02:00
Adriaan de Groot
63c03068c0 [modules] Documentation for fstab, grubcfg, mkinitcpio
- These modules were entirely documented as "use the source",
 - The sources aren't terribly clear either.
2018-06-26 06:39:30 -04:00
Adriaan de Groot
762ad54344 Documentation: change http links to GitHub to https 2017-12-20 08:39:09 -05:00
Adriaan de Groot
d8a47bb8be Simplify dict() construction for fstab-lines 2017-09-13 06:13:28 -04:00
Gabriel C
b82042a078 fstab: fix btrfs with LUKS and systemd we forgot to fix that in #730 tested with efi/BIOS+LUKS+btrfs , efi/BIOS+btrfs 2017-09-13 10:58:33 +02:00
Adriaan de Groot
47dcbefe2c Apply patch from V3n3RiX.
https://gitlab.com/redcore/redcore-desktop/raw/master/app-admin/calamares/files/calamares-3.1.1-luks-fstab-write-devmapper.patch

Fixes #772
2017-09-04 06:33:01 -04:00
Kai Dohmen
6f680c0269 Fix unknown partition-type Fat32 at mount and in fstab
Only the string "fat32" and "fat16" will be replaced with vfat. If an
case sensitive "Fat32" some problems occure:
- mount: partition cannot be mounted (e.g. a fat32 efi partition)
- fstab: system won't even boot because fstab does not know the type "Fat32"
2017-07-03 17:20:02 +02:00
Alf Gaida
4dbb097fd3 Fixed pep8 whining for module fstab
compact the fstab line
added myself to copyright
2017-06-02 20:55:26 +02:00
Teo Mrnjavac
a9d8107b3b Write Btrfs subvolume lines to fstab. 2016-11-11 16:47:08 +01:00
Kevin Kofler
0876af63d0 [fstab] Write configurable options to crypttab (default: luks).
fstab.conf: Add a new "crypttabOptions" option that defaults to "luks".
            Document that for Debian and Debian-based distributions, the
            setting should be changed to "luks,keyscript=/bin/cat".

main.py: Append the options from the above setting to the end of every
         line in crypttab.

At least the "luks" option should always be there, because there may be
different encryption types. The Debian initramfs-tools also require the
Debian-specific keyscript option and will otherwise ignore the keyfile
entirely (see pull request #254).
2016-10-13 19:01:13 +02:00
Kevin Kofler
4d28544e6f [fstab] Do not omit "/" from crypttab.
At least the Debian update-initramfs needs the entry to be there (see
pull request #254). Dracut will probably need it too. And logically, it
should be there.
2016-10-13 18:44:07 +02:00
Teo Mrnjavac
66a516038b Check for existence of LUKS information. 2016-06-17 17:35:33 +02:00
Teo Mrnjavac
0f8ef4220c Lint. 2016-06-17 17:10:09 +02:00
Teo Mrnjavac
e6806048e4 Add support for generating crypttab.
This relies on the luksbootkeyfile module, which should create a keyfile
at / and add it to all interested partitions.
2016-06-17 17:04:20 +02:00
Teo Mrnjavac
73e4cee81b Copyright. 2016-06-17 15:58:32 +02:00
Teo Mrnjavac
5a6bc95859 Support NVME device naming. 2016-06-17 15:57:53 +02:00
Gormogon
beb911863b A little more PEP 2015-06-14 06:56:56 -04:00
Ramon Buldó
bbe06aa587 Fix ssd detection for MMC devices. 2015-05-08 10:37:54 +02:00
Philip
06be842cfa [grubcfg] add python doc strings 2015-02-25 14:49:23 +01:00
Philip
3d8ba2b088 [fstab] add python doc strings 2015-02-25 14:49:23 +01:00
Gormogon
b4db9fe64b Fixing PEP – 257 Violations 2015-02-25 14:49:23 +01:00
Gormogon
113d9db7cb Python Better Docstrings 2015-02-25 14:49:23 +01:00
Gormogon
d8df3d7a59 [PEP 8] General Style Part 1 2015-02-18 09:37:03 -05:00
Gormogon
8e1480431a [PEP 263] Corrected Encoding Headers 2015-02-18 09:06:10 -05:00
demmm
2efd4aff5c Use swap mountpoint
Having swap set at "none" makes hibernating not possible.
AFAIK, no filesystem/partition sets mountpoint as "none" nor has any other besides swap an empty mountpoint at the stage where the fstab module is called.
Tests so far show this change creates a working fstab when using a swap partition.
2015-01-11 08:53:23 -05:00
Teo Mrnjavac
8f10c21e5b Big configuration overhaul.
Module descriptors are now module.desc, no configuration allowed inside.
Module config files are <modulename>.conf, installed in
share/calamares/modules.
settings.conf is read from /etc/calamares, then share/calamares, and if
running with --debug also in the current dir.
Module config files are read from /etc/calamares/modules, then
share/calamares/modules, and if running with --debug also in
src/modules/<modulename> relative to the current dir.
2014-08-06 11:54:45 +02:00