curtin does not put mount_options passed by MAAS into /etc/fstab
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Invalid
|
High
|
Unassigned | ||
curtin |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
Looks like MAAS properly passes mount_options to curtin, but curtin does not write an equivalent mount_options in /etc/fstab.
[curtin-
====
- device: sdk_format
id: sdk_mount
options: noatime,inode64
path: /var/lib/
type: mount
====
[/etc/fstab]
====
UUID=05538ac3-
====
"options: noatime,inode64" seems ignored and /etc/fstab just contains "defaults" as mount_options as a result.
Apologies for not attaching the whole content of curtin-
$ apt policy maas python3-curtin
maas:
Installed: 2.2.2-6099-
Candidate: 2.2.2-6099-
Version table:
*** 2.2.2-6099-
500 http://
500 http://
100 /var/lib/
2.
500 http://
500 http://
2.
500 http://
500 http://
python3-curtin:
Installed: 0.1.0~bzr505-
Candidate: 0.1.0~bzr505-
Version table:
*** 0.1.0~bzr505-
500 http://
500 http://
100 /var/lib/
0.
500 http://
500 http://
0.
500 http://
500 http://
Related branches
- Scott Moser (community): Approve
- Server Team CI bot: Approve (continuous-integration)
- Chad Smith: Approve
-
Diff: 349 lines (+191/-26)6 files modifiedcurtin/commands/block_meta.py (+50/-23)
doc/topics/storage.rst (+18/-0)
examples/tests/basic.yaml (+1/-0)
examples/tests/basic_scsi.yaml (+1/-0)
tests/unittests/test_commands_block_meta.py (+118/-2)
tests/vmtests/test_basic.py (+3/-1)
- curtin developers: Pending requested
-
Diff: 2108 lines (+1141/-114)57 files modifiedcurtin/__init__.py (+1/-1)
curtin/block/mkfs.py (+35/-23)
curtin/commands/block_meta.py (+62/-27)
curtin/commands/curthooks.py (+5/-6)
curtin/commands/install.py (+8/-1)
curtin/commands/main.py (+5/-5)
curtin/commands/unmount.py (+60/-0)
curtin/futil.py (+13/-0)
curtin/util.py (+26/-8)
debian/changelog (+17/-0)
debian/changelog.trunk (+5/-0)
doc/topics/config.rst (+20/-0)
doc/topics/storage.rst (+18/-0)
examples/tests/basic.yaml (+1/-0)
examples/tests/basic_scsi.yaml (+1/-0)
examples/tests/install_disable_unmount.yaml (+18/-0)
examples/tests/lvmroot.yaml (+42/-0)
examples/tests/uefi_lvmroot.yaml (+82/-0)
tests/unittests/helpers.py (+13/-0)
tests/unittests/test_block_mkfs.py (+7/-0)
tests/unittests/test_commands_block_meta.py (+118/-2)
tests/unittests/test_commands_unmount.py (+47/-0)
tests/unittests/test_curthooks.py (+47/-1)
tests/vmtests/__init__.py (+50/-24)
tests/vmtests/releases.py (+5/-0)
tests/vmtests/test_apt_config_cmd.py (+4/-0)
tests/vmtests/test_basic.py (+11/-1)
tests/vmtests/test_bcache_basic.py (+4/-0)
tests/vmtests/test_bcache_bug1718699.py (+4/-0)
tests/vmtests/test_install_umount.py (+56/-0)
tests/vmtests/test_iscsi.py (+4/-0)
tests/vmtests/test_journald_reporter.py (+4/-0)
tests/vmtests/test_lvm.py (+4/-0)
tests/vmtests/test_lvm_iscsi.py (+4/-0)
tests/vmtests/test_lvm_root.py (+155/-0)
tests/vmtests/test_mdadm_bcache.py (+34/-0)
tests/vmtests/test_mdadm_iscsi.py (+4/-0)
tests/vmtests/test_multipath.py (+4/-0)
tests/vmtests/test_network.py (+4/-0)
tests/vmtests/test_network_alias.py (+4/-0)
tests/vmtests/test_network_bonding.py (+14/-0)
tests/vmtests/test_network_bridging.py (+13/-6)
tests/vmtests/test_network_enisource.py (+5/-1)
tests/vmtests/test_network_ipv6.py (+4/-0)
tests/vmtests/test_network_ipv6_enisource.py (+1/-3)
tests/vmtests/test_network_ipv6_static.py (+4/-0)
tests/vmtests/test_network_ipv6_vlan.py (+4/-0)
tests/vmtests/test_network_mtu.py (+10/-0)
tests/vmtests/test_network_static.py (+4/-0)
tests/vmtests/test_network_static_routes.py (+5/-0)
tests/vmtests/test_network_vlan.py (+4/-0)
tests/vmtests/test_nvme.py (+8/-0)
tests/vmtests/test_raid5_bcache.py (+4/-0)
tests/vmtests/test_simple.py (+4/-0)
tests/vmtests/test_uefi_basic.py (+8/-0)
tools/build-deb (+41/-3)
tox.ini (+2/-2)
Changed in maas: | |
status: | Invalid → Triaged |
importance: | Undecided → High |
assignee: | nobody → Blake Rouse (blake-rouse) |
tags: | added: ci |
tags: | added: cpec |
tags: |
added: cpe-onsite removed: cpec |
tags: | added: internal |
tags: | added: canonical-bootstack |
Changed in curtin: | |
status: | Confirmed → Fix Committed |
Changed in maas: | |
status: | Triaged → Invalid |
assignee: | Blake Rouse (blake-rouse) → nobody |
I may be missing something, but "defaults" is hardcoded at this moment?
[curtin/ commands/ block_meta. py] get('fstype' ) != "swap": sep.join( [state[ 'target' ], path]) normpath( mount_point) dir(mount_ point) is_iscsi( volume_ path): append( "_netdev" )
631 if filesystem.
632 # Figure out what point should be
633 while len(path) > 0 and path[0] == "/":
634 path = path[1:]
635 mount_point = os.path.
636 mount_point = os.path.
637
638 # Create mount point if does not exist
639 util.ensure_
640
641 # Mount volume
642 util.subp(['mount', volume_path, mount_point])
643
644 path = "/%s" % path
645
646 options = ["defaults"]
647 # If the volume_path's kname is backed by iSCSI or (in the case of
648 # LVM/DM) if any of its slaves are backed by iSCSI, then we need to
649 # append _netdev to the fstab line
650 if iscsi.volpath_
651 LOG.debug("Marking volume_path:%s as '_netdev'", volume_path)
652 options.