u-root / cpu

cpu command in Go, inspired by the Plan 9 cpu command
BSD 3-Clause "New" or "Revised" License
239 stars 29 forks source link

elaborate on CPUD(as remote):9p mount no such device #36

Open orangecms opened 3 years ago

orangecms commented 3 years ago

On the remote, in a chroot, I am running:

cpud -d -remote -init

On my host machine, I then invoke:

export PATH="$(pwd)/bin:$PATH"
cpu -timeout9p 1000ms -d victure hello

Here is what I get:

On the remote (env vars stripped):

1970/01/01 00:02:43 CPUD:attempt to bind 127.0.0.1 0 granted
1970/01/01 00:02:44
CPUD:the handler is here, cmd is [cpud -remote -bin cpud -port9p 38098 hello]
1970/01/01 00:02:44
CPUD:the command is {/bbin/cpud [cpud -remote -bin cpud -port9p 38098 hello] [SHELL=/usr/bin/fish ... _=./cpu CPUNONCE=c57c260c0e9896b99dc53a35e5b198fa]  <nil> <nil> <nil> [] 0xc6f800 <nil> <nil> <nil> <nil> false [] [] [] [] <nil> <nil>}
1970/01/01 00:02:44
CPUD:command started with pty
1970/01/01 00:02:44
CPUD:wait for /bbin/cpud -remote -bin cpud -port9p 38098 hello
1970/01/01 00:02:44
CPUD:cmd returns with exit status 1
1970/01/01 00:02:44
CPUD:CPUD:child exited with  exit status 1
1970/01/01 00:02:44
CPUD:handler exits

On my host:

2021/04/06 20:41:47 
Running as client
2021/04/06 20:41:47 listener *ssh.tcpListener &{0xc0000661b0 0xc0000640a0 0xc0000122a0} addr 127.0.0.1:38098 port 0xc000098800
2021/04/06 20:41:47 command is "cpud -remote -bin cpud -port9p 38098 \"hello\""
2021/04/06 20:41:47 srv: try to accept
2021/04/06 20:41:48 Start remote with command "cpud -remote -bin cpud -port9p 38098 \"hello\""
1970/01/01 00:02:44 mkdir /home: read-only file system
2021/04/06 20:41:48 srv got &{0xc000232000 0xc0000661b0 0xc00021abd0}
2021/04/06 20:41:48 srv: read the nonce back got c57c260c0e9896b99dc53a35e5b198fa
1970/01/01 00:02:44 CPUD(as remote):9p mount no such device
2021/04/06 20:41:48 SSH error Process exited with status 1

I am not exactly sure where I get with that.

orangecms commented 2 years ago

This was likely due to the vendor kernel not supporting 9p. I'll recheck and see what the current behavior is, rewrite to a more elaborate error message with a hint or something.

rminnich commented 2 years ago

yeah, one option is to have it print out the right config values to add to the kernel?

osamakhan commented 1 year ago

Leaving this here as an FYI: I was facing the same issue and the comment from @orangecms put me on the right path to working around this. I was trying to run cpud on AmazonLinux and failing. Tried with Ubuntu and it worked just fine.

PLangowski commented 12 months ago

Hi, I have encountered a similar problem. I am trying to run cpud on a machine with a custom distro. On the remote I run:

cpud -pk /home/root/.ssh/key.pub

An on the host:

./cpu -key $KEY -namespace=/home 192.168.4.189 /bin/date
CPUD:Namespace: 9p mount no such device

If this is a kernel config issue, does anybody know how to enable support for 9p?