]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Fix mount squashfs on kernel 5.4 399/head
authorShengjing Zhu <i@zhsj.me>
Wed, 22 Jan 2020 04:11:29 +0000 (12:11 +0800)
committerShengjing Zhu <i@zhsj.me>
Wed, 22 Jan 2020 04:12:09 +0000 (12:12 +0800)
kernel 5.4 failed to mount squashfs

[764311.251432] squashfs: Unknown parameter 'discard'

mkosi

diff --git a/mkosi b/mkosi
index f0d51204faba359e145f9a956623d122955e7ef2..7ce62befe74fe0a6c52b5e4274bebbcd91a00e0e 100755 (executable)
--- a/mkosi
+++ b/mkosi
@@ -941,18 +941,22 @@ def prepare_srv(args: CommandLineArguments, dev: Optional[str], cached: bool) ->
 def mount_loop(args: CommandLineArguments, dev: str, where: str, read_only: bool = False) -> None:
     os.makedirs(where, 0o755, True)
 
-    options = "-odiscard"
+    options = []
+    if not args.output_format.is_squashfs():
+        options.append("discard")
 
     if args.compress and args.output_format == OutputFormat.gpt_btrfs:
         if isinstance(args.compress, bool):
-            options += ",compress"
+            options.append("compress")
         else:
-            options += f",compress={args.compress}"
+            options.append(f",compress={args.compress}")
 
     if read_only:
-        options += ",ro"
+        options.append("ro")
+
+    options_arg = "-o" + ",".join(options) if options else ""
 
-    run(["mount", "-n", dev, where, options], check=True)
+    run(["mount", "-n", dev, where, options_arg], check=True)
 
 
 def mount_bind(what: str, where: str) -> None: