lore file.
[akaros.git] / Documentation / using_go9p_netroot
1 We can serve the root file system for NxM directly from Linux or OS X,
2 allowing access to the full Linux namespace during run-time.
3 For this, we use go9p. 
4
5 You need to have Go installed, e.g.
6
7 pacman -S go
8
9 apt-get install golang
10
11 Set a GOPATH, e.g.
12  $ export GOPATH=~/go
13  $ go get code.google.com/p/go9p/p
14
15 This *should* work
16
17  $ go install code.google.com/p/go9p/p
18
19 but does not (Why?)
20
21 Find the directory, in my case it is:
22
23 /home/rminnich/go/src/code.google.com/p/go9p/p/srv/examples/ufs
24
25 cd there, type
26
27  $ go build
28
29 and you'll see the ufs binary.
30
31 You can now run ufs, specifying the appropriate root directory:
32
33  $ sudo ufs -addr=:564 -root=whereever
34
35 Here is an example qemu command which some of us use:
36
37 A more complex usage (Ron's case) involves serving a root file system
38 to an NxM instance being run on an Arch virtual machine guest in
39 vmware fusion. That's not near as hard as it sounds. The OSX machine
40 is called rminnich-macbookair; the arch Linux guest VM is called arch.
41
42 On OSX, we start two commands:
43
44 $ ufs -addr:7777
45
46 $ ssh -R 564:rminnich-macbookair:7777 root@arch
47
48 This ssh command sets up a reverse proxy on the arch linux guest to
49 the ufs server running on OSX.  On arch linux, we run the qemu command
50 shown above. When we get the root is from prompt, we use the ip
51 address 10.0.2.2. That's it.