diff options
author | Erik Troan <ewt@redhat.com> | 2000-05-05 19:45:20 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 2000-05-05 19:45:20 +0000 |
commit | b04ac2a2f48c8c8c6d6894d58efabf391fd4ec81 (patch) | |
tree | 9b3b4200f1b1110bb3da83db429437d904648af9 /loader | |
parent | 2ef75c5a9998f6b0473b917f653fcc4568494893 (diff) | |
download | anaconda-b04ac2a2f48c8c8c6d6894d58efabf391fd4ec81.tar.gz anaconda-b04ac2a2f48c8c8c6d6894d58efabf391fd4ec81.tar.xz anaconda-b04ac2a2f48c8c8c6d6894d58efabf391fd4ec81.zip |
1) made ks=nfs: actually work
2) rescue mode needs to be more pushy about asking for keyboard and lang
Diffstat (limited to 'loader')
-rw-r--r-- | loader/loader.c | 21 | ||||
-rw-r--r-- | loader/loader.h | 2 |
2 files changed, 18 insertions, 5 deletions
diff --git a/loader/loader.c b/loader/loader.c index 0088581b1..e98eaa81f 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1651,13 +1651,13 @@ static int parseCmdLineFlags(int flags, char * cmdLine, char ** ksSource, } else if (!strcasecmp(argv[i], "serial")) flags |= LOADER_FLAGS_SERIAL; else if (!strcasecmp(argv[i], "ks")) { - flags |= LOADER_FLAGS_KICKSTART; + flags |= LOADER_FLAGS_KSNFS; *ksSource = NULL; } else if (!strncasecmp(argv[i], "ks=cdrom:", 7)) { flags |= LOADER_FLAGS_KSCDROM; *ksSource = argv[i] + 9; } else if (!strncasecmp(argv[i], "ks=nfs:", 7)) { - flags |= LOADER_FLAGS_KICKSTART; + flags |= LOADER_FLAGS_KSNFS; *ksSource = argv[i] + 7; } else if (!strcasecmp(argv[i], "ks=floppy")) flags |= LOADER_FLAGS_KSFLOPPY; @@ -2141,11 +2141,12 @@ int main(int argc, char ** argv) { #endif #ifdef INCLUDE_NETWORK - if (FL_KICKSTART(flags) && !ksFile) { + if (FL_KSNFS(flags)) { ksFile = "/tmp/ks.cfg"; startNewt(flags); - kickstartFromNfs(&kd, ksFile, modInfo, modLoaded, &modDeps, flags, - ksSource, ksNetDevice); + if (!kickstartFromNfs(&kd, ksFile, modInfo, modLoaded, &modDeps, flags, + ksSource, ksNetDevice)) + flags |= LOADER_FLAGS_KICKSTART; } #endif @@ -2280,6 +2281,16 @@ int main(int argc, char ** argv) { argptr = anacondaArgs; if (FL_RESCUE(flags)) { + if (!lang) { + int rc; + + do { + rc = chooseLanguage(&lang, flags); + if (rc) break; + + rc = chooseKeyboard (&keymap, &kbdtype, flags); + } while (rc); + } *argptr++ = "/bin/sh"; } else { if (!access("./anaconda", X_OK)) diff --git a/loader/loader.h b/loader/loader.h index a9cc57488..1d16a608b 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -18,6 +18,7 @@ #define LOADER_FLAGS_KSFILE (1 << 12) #define LOADER_FLAGS_KSCDROM (1 << 13) #define LOADER_FLAGS_MCHECK (1 << 14) +#define LOADER_FLAGS_KSNFS (1 << 15) #define FL_TESTING(a) ((a) & LOADER_FLAGS_TESTING) #define FL_EXPERT(a) ((a) & LOADER_FLAGS_EXPERT) @@ -34,3 +35,4 @@ #define FL_KSFILE(a) ((a) & LOADER_FLAGS_KSFILE) #define FL_KSCDROM(a) ((a) & LOADER_FLAGS_KSCDROM) #define FL_MCHECK(a) ((a) & LOADER_FLAGS_MCHECK) +#define FL_KSNFS(a) ((a) & LOADER_FLAGS_KSNFS) |