AutoYaST is something very specific to YaST and linuxrc has nothing to do with it. So why would it have to deal with it at all?
In fact, linuxrc did ignore the autoyast
boot option for a long time and
just passed it on via /etc/install.inf
to yast.
There are several reasons why linuxrc has to get involved:
-
You can embed linuxrc options into the AutoYaST config https://doc.opensuse.org/projects/autoyast/#invoking_autoinst.linuxrc.
-
An AutoYaST config file
/autoinst.xml
is searched for and auto-loaded from a disk with labelOEMDRV
. -
There is the expectation that using
autoyast=ftp://foo/bar
(or any network URL) causes linuxrc to implicitly set up the network; much likeinstall=URL
ordud=URL
does.
For 3. to work linuxrc has to download the AutoYaST file to be sure the network setup has been done correctly.
For 2. (and partly 1.) there had been the autoyast2
option. But that was
limited to linuxrc-style URLs and did not make any attempt to deal with
AutoYaST rules.
The main obstacles so far to get it right were:
- AutoYaST has its own idiosyncratic set of URL schemes
- it's not obvious which file should actually be loaded when AutoYaST rules come into play
- linuxrc supports all AutoYaST URL schemes (see References below); this implies you can also use AutoYaST-style URLs in other places in linuxrc
- linuxrc downloads the AutoYaST config file and parses it for linuxrc options - unless it's a rules-based setup
- linuxrc converts the URL used with the
autoyast
option into the canonical AutoYaST format and passes this on via/etc/install.inf
; this means you can use both linuxrc-style and AutoYaST-style URLs in linuxrc - if the AutoYaST URL ends with a
/
(pointing to a directory) linuxrc assumes this to be a rules-based setup; for URLs with a mountable scheme, linuxrc goes looking for the specified directory; for all other URL schemes linuxrc does nothing and simply passes the URL on to YaST - for URL schemes
usb
andlabel
linuxrc identifies the device and converts the URL to adevice
scheme to ensure AutoYaST reads the same config; but if linuxrc could not find the AutoYaST file at the specified location, the original URL is passed - for the
slp
scheme, linuxrc does the URL query and offers the user a selection dialog; the selected URL is then passed on to YaST; this makes theslp
scheme work as documented (withdescr=XXX
query parameter) - which so far did not work - linuxrc implicitly looks for an AutoYaST config file
autoinst.xml
in the repository directory; the file is downloaded as/autoinst.xml
and a link to it passed on to YaST (using afile
URL) - there is not really an
autoyast=default
option; if this option is used, it just clears any previous autoyast setting; the reason is thatautoyast=default
is the default - linuxrc always looks for an AutoYaST config in the repository as described in 7.; see also https://en.opensuse.org/SDB:Linuxrc#AutoYaST_Profile_Handling - as this is a major change and issues are likely to show up, there is a boot option to get back
the old behavior:
autoyast.parse=0
- with this theautoyast
option is left alone and just passed on to YaST - the
autoyast2
option still exists for compatibility; it is ignored whenautoyast
is used - there's a short alias
ay
for theautoyast
option
AutoYaST URL scheme doc
Understanding AutoYaST rules handling
Implementation of AutoYaST config file reading in YaST