Setting up Fossil D1242683514 Aa #Venti is necessary to get the most out of Fossil. See [setting up #Venti]. # #If you are using a Venti server on your local machine, you need to #find your local IP address (cat /net/ndb) and set # #! % venti=your-ip-address # #in your environment. # #The main data storage for Fossil is the Venti server. Fossil keeps #dirty blocks and ephemeral snapshots in a local disk partition #called the write buffer. # #The write buffer does not need to be as big as the file system you #wish to store, but it it doesn't hurt and it makes the #initialization easier. Rsc's laptop uses a fossil write buffer of a #gigabyte, and sources server uses a mere half gigabyte. # #Note that if you built a fossil (non-kfs) machine with the help of #the installer, many of the steps in this document have already been #done by the installer. It's probably worth your time to understand #what it did on your behalf, but you can skip over doing things until #the part about adding "listen" commands to serve files to other #machines. # #Format the write buffer with: # #! % fossil/flfmt /dev/sdC0/fossil # #Then create a file called flproto containing: # #! srv -p fscons #! srv fossil #! fsys main config /dev/sdC0/fossil #! fsys main open -AWP #! fsys main # #note: make sure the file ends in '\n' (i.e. hit enter after the last #line) -- otherwise, fossil will silently treat it as an error. # #See fossilcons(8) for more about what the commands mean. Run # #! % fossil/fossil -c '. flproto' #! % con -l /srv/fscons # #to start fossil, execute the flproto script, and connect to the #console. # #If any command in the script fails, the script does not continue. #Connecting to /srv/fscons should show you any errors. If you type #enter a few times you should get # #! prompt: #! main: #! main: # #(The first prompt is printed before the script runs. The last #command in the script changes the default file system to `main'; #subsequent prompts reflect this.) # #Draw a new window and mount fossil: # #! % mount -c /srv/fossil /n/fossil # #Now you have a console window and a window with fossil mounted. #You'll be switching between them quite a bit. The examples will show #the % prompt for the shell commands and main: for the fossil console #commands. # #The -AWP flags in the open command turn off authentication, turn on #arbitrary wstats, and turn off permission checking. # #The fossil file system has three main trees: /active, /archive, and #/snapshot. The active file system is in /active. When you mounted #/srv/fossil before, you attached to /active. See fossil(4) for more. # #Before you can create files with particular users and groups, you #need to add them to the users table. Execute the following at the #fossil console to create a users file: # #! main: create /active/adm adm sys d775 #! main: # #You'll probably want to use the same set of users from your current #file system. The file format has changed slightly from the old kfs #format, in that the first field is now a string rather than a #number. (The string is what gets stored in the fossil disk #structures, just like a number gets stored in the kfs and fs disk #structures.) You can convert by running: # #! % sed 's/^([^:]+):([^:]+)/\2:\2/' /adm/users >/n/fossil/adm/users # #Here, /adm/users comes probably from your local kfs. Then tell #fossil to reload the users file: # #! main: users -r /active/adm/users # #Test that the reload worked by running: # #! % echo hi >/n/fossil/foo #! % chgrp glenda /n/fossil/foo #! % ls -l /n/fossil/foo #! % rm /n/fossil/foo # #The chgrp should succeed. If it doesn't, the users table isn't right. # #Now you're in a good state for initializing the file system, which #you can do with: # #! % mount /srv/kfs /n/kfs #! % disk/mkfs -a -s /n/kfs /sys/lib/sysconfig/proto/allproto | #! disk/mkext -u -d /n/fossil # #If your kfs and fossil write buffer are on the same disk, you may #find that running one and then the other is much faster so they #don't contend for the disk: # #! % disk/mkfs -a -s /n/kfs /sys/lib/sysconfig/proto/allproto >/somewhere/else #! % disk/mkext -u -d /n/fossil /mnt/factotum/ctl # #to set up a key. This will be necessary for the mount to work once #you lose the -AWP flags. # #The user name should be your user name on the local machine. The #password can be anything. (Since both mount and fossil are using the #same factotum and thus the same keys, the authentication will #succeed!) # #Congratulations! You have a fossil. # #See fossil(4) and fossilcons(8) for more information. # #BOOTING A STANDALONE FOSSIL SYSTEM # #NOTE: this section relates to an older type of kernels, called #'pcfl' which have now been deprecated for the 'pcf' ones, which #allow you to change fossil configurations without having to #recompile kernels. # #If you have installed Plan 9 directly onto a disk without using a #kfs partition then you do not need to read this section. # #This is complicated and clunky. You will have to debug something #along the way. You really need to understand how the system works #and how all the pieces fit together before you attempt this. # #It is possible to build a kernel that boots from a local fossil #system. The pc kernel configuration pcfl is the starting point. Copy #pcfl to pcyour-sys-name and then: # # * change cpuserver = 0 to cpuserver = 1 in port if you want a cpu # server. # * change fl to your own system name in the paths in the bootdir # section. # #You need to create /sys/lib/sysconfig/your-sys-name and populate it. #The files in /sys/lib/sysconfig/fl are a good starting point. You'll #want to edit them to suit your setup. In particular, you need to: # # * change boot's cpuserver=no to cpuserver=yes if desired # * change boot's venti command line if desired # * change flproto to fit your configuration; note that the srv file # must be named boot and not fossil. # * change venti.conf to fit your configuration. # #You may also have to edit the set of boot files in the configuration #file for the kernel to include fdisk, and run fdisk -p from your #boot script, if your venti partitions need so to be learned. # #Now you should be able to build a kernel and boot it. Note that you #have to run lnfs in order to build. # #It probably won't boot because something isn't set up quite right. #You're on your own for debugging. #