chiark / gitweb /
Merge nss-myhostname
[elogind.git] / src / fsck / fsck.c
index f25ec49442eaf6c378f107ae0f70082fd46b5cac..f5d38ad261192dccd59355144fecf54655ac714e 100644 (file)
@@ -112,7 +112,8 @@ static int parse_proc_cmdline(void) {
         if (detect_container(NULL) > 0)
                 return 0;
 
-        if ((r = read_one_line_file("/proc/cmdline", &line)) < 0) {
+        r = read_one_line_file("/proc/cmdline", &line);
+        if (r < 0) {
                 log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
                 return 0;
         }
@@ -125,13 +126,16 @@ static int parse_proc_cmdline(void) {
                         arg_force = true;
                 else if (strneq(w, "fsck.mode=skip", l))
                         arg_skip = true;
-                else if (startswith(w, "fsck.mode"))
-                        log_warning("Invalid fsck.mode= parameter. Ignoring.");
-#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
-                else if (strneq(w, "fastboot", l))
+                else if (startswith(w, "fsck"))
+                        log_warning("Invalid fsck parameter. Ignoring.");
+#ifdef HAVE_SYSV_COMPAT
+                else if (strneq(w, "fastboot", l)) {
+                        log_error("Please pass 'fsck.mode=skip' rather than 'fastboot' on the kernel command line.");
                         arg_skip = true;
-                else if (strneq(w, "forcefsck", l))
+                } else if (strneq(w, "forcefsck", l)) {
+                        log_error("Please pass 'fsck.mode=force' rather than 'forcefsck' on the kernel command line.");
                         arg_force = true;
+                }
 #endif
         }
 
@@ -140,11 +144,17 @@ static int parse_proc_cmdline(void) {
 }
 
 static void test_files(void) {
-        if (access("/fastboot", F_OK) >= 0)
+#ifdef HAVE_SYSV_COMPAT
+        if (access("/fastboot", F_OK) >= 0) {
+                log_error("Please pass 'fsck.mode=skip' on the kernel command line rather than creating /fastboot on the root file system.");
                 arg_skip = true;
+        }
 
-        if (access("/forcefsck", F_OK) >= 0)
+        if (access("/forcefsck", F_OK) >= 0) {
+                log_error("Please pass 'fsck.mode=force' on the kernel command line rather than creating /forcefsck on the root file system.");
                 arg_force = true;
+        }
+#endif
 
         if (access("/run/systemd/show-status", F_OK) >= 0 || plymouth_running())
                 arg_show_progress = true;
@@ -296,7 +306,7 @@ int main(int argc, char *argv[]) {
                 }
 
                 if (!(udev = udev_new())) {
-                        log_error("Out of memory");
+                        log_oom();
                         goto finish;
                 }