'toram' kernel parameter does not work with subiquity
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
curtin |
Fix Released
|
Undecided
|
Michael Hudson-Doyle | ||
subiquity |
Fix Released
|
High
|
Unassigned |
Bug Description
When starting the installer with the 'toram' kernel parameter, the installation fails on probing multipath for /dev/shm with curtin command curthooks at curtin/util.py:141:
Unknown device "/dev/shm": Inappropriate ioctl for device
Working 'toram' autoinstallations are handy for servers that do not have netboot, IPMI nor USB, but can boot from the same storage as normally and that storage can be written to out of band. In other words, installation starts from the same device as will be installed to.
Since d-i is no longer available, netboot images that were suited for this can no longer be used.
Use cases know to me include at least rented servers with hosting-provided rescue. There are a few other approaches such as manual bootstrapping, kexec and imaging that work. However, the toram approach would allow the same install method as with other types of servers and requires less manual effort.
Related branches
- Server Team CI bot: Needs Fixing (continuous-integration)
- Chad Smith: Approve
-
Diff: 10726 lines (+6948/-918)83 files modifiedMakefile (+15/-6)
curtin/__init__.py (+2/-0)
curtin/block/__init__.py (+190/-12)
curtin/block/bcache.py (+242/-1)
curtin/block/clear_holders.py (+34/-51)
curtin/block/lvm.py (+43/-6)
curtin/block/mdadm.py (+10/-25)
curtin/block/mkfs.py (+8/-2)
curtin/block/multipath.py (+90/-11)
curtin/block/schemas.py (+13/-2)
curtin/commands/apt_config.py (+1/-5)
curtin/commands/block_discover.py (+11/-2)
curtin/commands/block_meta.py (+597/-474)
curtin/commands/clear_holders.py (+44/-9)
curtin/commands/curthooks.py (+225/-38)
curtin/distro.py (+18/-1)
curtin/storage_config.py (+64/-36)
curtin/udev.py (+25/-2)
curtin/util.py (+13/-2)
debian/changelog (+58/-0)
dev/null (+0/-6)
doc/topics/storage.rst (+108/-19)
examples/tests/bcache-ceph-nvme-simple.yaml (+2/-2)
examples/tests/bcache-ceph-nvme.yaml (+2/-2)
examples/tests/filesystem_battery.yaml (+1/-0)
examples/tests/mirrorboot-uefi.yaml (+17/-1)
examples/tests/multipath-lvm-part-wipe.yaml (+125/-0)
examples/tests/multipath-lvm.yaml (+121/-0)
examples/tests/multipath.yaml (+6/-0)
examples/tests/preserve-bcache.yaml (+82/-0)
examples/tests/preserve-lvm.yaml (+77/-0)
examples/tests/preserve-partition-wipe-vg-simple.yaml (+62/-0)
examples/tests/preserve-partition-wipe-vg.yaml (+116/-0)
examples/tests/preserve-raid.yaml (+4/-2)
examples/tests/reuse-lvm-member-partition.yaml (+94/-0)
examples/tests/reuse-msdos-partitions.yaml (+77/-0)
examples/tests/reuse-raid-member-wipe-partition.yaml (+2/-0)
examples/tests/reuse-raid-member-wipe.yaml (+2/-1)
examples/tests/uefi_reuse_esp.yaml (+4/-2)
examples/tests/vmtest_defaults.yaml (+19/-1)
helpers/common (+11/-5)
tests/data/probert_storage_bogus_wwn.json (+1258/-0)
tests/data/probert_storage_nvme_multipath.json (+310/-0)
tests/data/udevadm_info_sandisk_cruzer.txt (+54/-0)
tests/unittests/helpers.py (+52/-3)
tests/unittests/test_apt_custom_sources_list.py (+2/-0)
tests/unittests/test_apt_source.py (+2/-0)
tests/unittests/test_block.py (+104/-5)
tests/unittests/test_block_lvm.py (+31/-1)
tests/unittests/test_block_mdadm.py (+8/-6)
tests/unittests/test_block_mkfs.py (+9/-0)
tests/unittests/test_block_multipath.py (+45/-0)
tests/unittests/test_block_zfs.py (+24/-20)
tests/unittests/test_clear_holders.py (+51/-37)
tests/unittests/test_commands_block_meta.py (+885/-7)
tests/unittests/test_commands_clear_holders.py (+24/-0)
tests/unittests/test_commands_collect_logs.py (+2/-0)
tests/unittests/test_curthooks.py (+483/-8)
tests/unittests/test_distro.py (+51/-2)
tests/unittests/test_gpg.py (+50/-44)
tests/unittests/test_make_dname.py (+3/-3)
tests/unittests/test_storage_config.py (+189/-3)
tests/unittests/test_udev.py (+43/-6)
tests/unittests/test_util.py (+25/-2)
tests/vmtests/__init__.py (+53/-17)
tests/vmtests/releases.py (+20/-3)
tests/vmtests/test_basic.py (+33/-19)
tests/vmtests/test_fs_battery.py (+7/-0)
tests/vmtests/test_mdadm_bcache.py (+34/-0)
tests/vmtests/test_multipath.py (+80/-3)
tests/vmtests/test_multipath_lvm.py (+76/-0)
tests/vmtests/test_preserve_bcache.py (+67/-0)
tests/vmtests/test_preserve_lvm.py (+80/-0)
tests/vmtests/test_preserve_partition_wipe_vg.py (+59/-0)
tests/vmtests/test_reuse_lvm_member.py (+34/-0)
tests/vmtests/test_reuse_msdos_partitions.py (+31/-0)
tests/vmtests/test_reuse_raid_member.py (+1/-1)
tests/vmtests/test_ubuntu_core.py (+9/-0)
tools/block-discover-to-config (+1/-1)
tools/schema-validate-storage (+1/-0)
tools/vmtest-filter (+2/-1)
tools/vmtest-sync-images (+1/-0)
tox.ini (+19/-0)
- Server Team CI bot: Approve (continuous-integration)
- Ryan Harper (community): Approve
-
Diff: 16 lines (+6/-0)1 file modifiedcurtin/block/__init__.py (+6/-0)
Changed in curtin: | |
status: | New → In Progress |
assignee: | nobody → Michael Hudson-Doyle (mwhudson) |
Changed in subiquity: | |
status: | Triaged → Fix Released |
So the command that is failing is
udevadm info --query=property --export /dev/shm
which is being executed because /dev/shm is in /proc/mounts. I guess we could fix this by getting casper to choose a different name (afaik the "from" label has no significance when mounting a tmpfs) but to get new curtin to work with existing media we'll need to fix curtin too.