summaryrefslogtreecommitdiffstats
path: root/loader
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2000-05-05 19:45:20 +0000
committerErik Troan <ewt@redhat.com>2000-05-05 19:45:20 +0000
commitb04ac2a2f48c8c8c6d6894d58efabf391fd4ec81 (patch)
tree9b3b4200f1b1110bb3da83db429437d904648af9 /loader
parent2ef75c5a9998f6b0473b917f653fcc4568494893 (diff)
downloadanaconda-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.c21
-rw-r--r--loader/loader.h2
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)