  	if err := unix.Mount("", "/", "", uintptr(flag), ""); err != nil {
  		return err
  	}
-@@ -834,6 +849,9 @@ func msMoveRoot(rootfs string) error {
- 			}
- 		}
+@@ -892,9 +907,14 @@ func msMoveRoot(rootfs string) error {
  	}
+ 
+ 	// Move the rootfs on top of "/" in our mount namespace.
+-	if err := unix.Mount(rootfs, "/", "", unix.MS_MOVE, ""); err != nil {
+-		return err
+-	}
 +	// WSL2: mount --move {path} / fails silently.
 +	// The chroot() still works (changes dir to ., which is rootfs).
 +	// Therefore the container still starts, but "exec" will be in the wrong place.
- 	if err := unix.Mount(rootfs, "/", "", unix.MS_MOVE, ""); err != nil {
- 		return err
- 	}
++	/*
++		if err := unix.Mount(rootfs, "/", "", unix.MS_MOVE, ""); err != nil {
++			return err
++		}
++	*/
+ 	return chroot()
+ }
+ 
 diff --git a/libcontainer/setns_init_linux.go b/libcontainer/setns_init_linux.go
-index 0b9cd885..e391d4bb 100644
+index 6b1e9a6e..fa601a9d 100644
 --- a/libcontainer/setns_init_linux.go
 +++ b/libcontainer/setns_init_linux.go
-@@ -32,6 +32,21 @@ func (l *linuxSetnsInit) Init() error {
+@@ -31,6 +31,21 @@ func (l *linuxSetnsInit) Init() error {
  	runtime.LockOSThread()
  	defer runtime.UnlockOSThread()
  

-	}
+	*/
 
 	unix.Umask(0022)
 	return nil
@@ -713,6 +727,7 @@ func prepareRoot(config *configs.Config) error {
 	if config.RootPropagation != 0 {
 		flag = config.RootPropagation
 	}

+	return unix.Chdir("/")
+}
-- 
2.30.1

