mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zipl: Allow optional entries that are left out when files are missing.
Debian carried a patch forever that allowed zipl to run even if not all menu items had files attached. If a required file is missing for an entry (e.g. vmlinuz.old or initrd.img.old) and it is marked as "optional" in the config, the section will be skipped. This allows zipl to install after bootstrapping, as booting on s390 still relies on the kernel/initrd symlinks in the root directory. Closes: https://github.com/ibm-s390-linux/s390-tools/pull/2 Signed-off-by: Philipp Kern <pkern@debian.org> Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> [sth@linux.ibm.com: adapted patches to latest changes, merged patches] Signed-off-by: Stefan Haberland <sth@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
455ad953a9
commit
ee2c6d4160
+13
-12
@@ -47,45 +47,45 @@ enum scan_key_state scan_key_table[SCAN_SECTION_NUM][SCAN_KEYWORD_NUM] = {
|
||||
* ult to tofs e mete file isk ent et pt out ultm dump
|
||||
* rs enu
|
||||
*
|
||||
* targ targ targ targ targ defa kdum secu
|
||||
* etba etty etge etbl etof ulta p re
|
||||
* targ targ targ targ targ defa kdum secu opti
|
||||
* etba etty etge etbl etof ulta p re onal
|
||||
* se pe omet ocks fset uto
|
||||
* ry ize
|
||||
*/
|
||||
/* default auto */
|
||||
{opt, inv, inv, inv, inv, inv, inv, inv, req, opt, opt, inv, inv, inv,
|
||||
opt, opt, opt, opt, opt, opt, inv, opt},
|
||||
opt, opt, opt, opt, opt, opt, inv, opt, inv},
|
||||
/* default menu */
|
||||
{inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req, inv, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, opt},
|
||||
inv, inv, inv, inv, inv, inv, inv, opt, inv},
|
||||
/* default section */
|
||||
{req, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, opt},
|
||||
inv, inv, inv, inv, inv, inv, inv, opt, inv},
|
||||
/* ipl */
|
||||
{inv, inv, inv, req, opt, opt, opt, inv, req, inv, inv, inv, inv, inv,
|
||||
opt, opt, opt, opt, opt, inv, opt, opt},
|
||||
opt, opt, opt, opt, opt, inv, opt, opt, opt},
|
||||
/* segment load */
|
||||
{inv, inv, inv, inv, inv, inv, inv, req, req, inv, inv, inv, inv, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
inv, inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
/* part dump */
|
||||
{inv, req, inv, inv, inv, inv, inv, inv, opt, inv, inv, inv, inv, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
inv, inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
/* fs dump */
|
||||
{inv, inv, req, inv, opt, opt, inv, inv, req, inv, inv, inv, inv, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
inv, inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
/* ipl tape */
|
||||
{inv, inv, inv, req, opt, opt, opt, inv, inv, inv, inv, inv, req, inv,
|
||||
inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
inv, inv, inv, inv, inv, inv, inv, inv, inv},
|
||||
/* multi volume dump */
|
||||
{inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, inv, req,
|
||||
inv, inv, inv, inv, inv, inv, inv, inv}
|
||||
inv, inv, inv, inv, inv, inv, inv, inv, inv}
|
||||
};
|
||||
|
||||
/* Determines which keyword may be present in a menu section */
|
||||
static enum scan_key_state scan_menu_key_table[SCAN_KEYWORD_NUM] = {
|
||||
/* menu section */
|
||||
opt, inv, inv, inv, inv, inv, inv, inv, req, opt, opt, inv, inv, inv,
|
||||
opt, opt, opt, opt, opt, inv, inv, opt
|
||||
opt, opt, opt, opt, opt, inv, inv, opt, inv
|
||||
};
|
||||
|
||||
/* Mapping of keyword IDs to strings */
|
||||
@@ -114,6 +114,7 @@ static const struct {
|
||||
{ "tape", scan_keyword_tape},
|
||||
{ "kdump", scan_keyword_kdump},
|
||||
{ "secure", scan_keyword_secure},
|
||||
{ "optional", scan_keyword_optional},
|
||||
};
|
||||
|
||||
/* List of keywords that are used without an assignment */
|
||||
|
||||
Reference in New Issue
Block a user