Add additional information on cvsup'ing various sources.
[dragonfly.git] / nrelease / root / README
1                             DRAGONFLY CDROM README FILE
2
3     This CDROM boots DragonFly BSD.  Basically what you get is a full base
4     system on CD with certain critical directories, such as /tmp, remounted
5     read-write using MFS.  Your existing hard drive is not effected by
6     booting this CDROM.
7
8     NOTE!!! DRAGONFLY IS UNDERGOING DEVELOPMENT AND CONSIDERED EXPERIMENTAL!
9     BSD RELATED EXPERIENCE IS REQUIRED TO USE THIS CDROM.
10
11     If you just want to play with DragonFly and not mess with your hard disk,
12     this CDROM boots into a fully operational console-based system, though
13     without swap it should be noted that you are limited by available memory.
14
15                             AUTOMATIC INSTALLATION
16
17     We are currently developing automatic installation tools.  There are none
18     on this CD.
19
20                             MANUAL INSTALLATION
21
22     Manual installation of DragonFly onto an HD involve the following sequence
23     of commands.  You must be familiar with BSD style UNIX systems to do
24     installations manually.  The primary IDE hard drive is typically 'ad0'
25     and DragonFly is typically installed onto the first slice.
26
27
28         # This COMPLETE WIPES and repartitions your hard drive
29         fdisk -IB ad0
30
31         # This installs boot blocks onto the HD and verifies their 
32         # installation.
33         boot0cfg -B ad0
34         boot0cfg -v ad0
35
36         # This creates an initial label on the first slice of the HD.  If
37         # you have problems booting you could try wiping the first 32 blocks
38         # of the slice with dd and then reinstalling the label
39         #
40         # dd if=/dev/zero of=/dev/ad0s1 bs=32k count=16
41         disklabel -B -r -w ad0s1 auto
42
43         # Edit the label.  Create various standard partitions.  The typical
44         # configurations is:
45         #
46         #       ad0s1a  256m            This will be your /
47         #       ad0s1b  1024m           This will be your swap
48         #       ad0s1c                  (leave alone)
49         #       ad0s1d  256m            This will be your /var
50         #       ad0s1e  256m            This will be your /tmp
51         #       ad0s1f  8192m           This will be your /usr (min 4096m)
52         #       ad0s1g  *               All remaining space to yoru /home
53         #
54         disklabel -e ad0s1
55
56         # Newfs (format) the various filesystems.  Softupdates is not 
57         # normally enabled on the root filesystem.
58         #
59         newfs /dev/ad0s1a
60         newfs -U /dev/ad0s1d
61         newfs -U /dev/ad0s1e
62         newfs -U /dev/ad0s1f
63         newfs -U /dev/ad0s1g
64
65         # Mount the filesystems
66         #
67         mount /dev/ad0s1a /mnt
68         mkdir /mnt/var
69         mkdir /mnt/tmp
70         mkdir /mnt/usr
71         mkdir /mnt/home
72         mount /dev/ad0s1d /mnt/var
73         mount /dev/ad0s1e /mnt/tmp
74         mount /dev/ad0s1f /mnt/usr
75         mount /dev/ad0s1g /mnt/home
76
77         # Copy the CDRom onto the target.  cpdup won't cross mount boundaries
78         # on the source (e.g. the MFS remounts) so it takes a few commands.
79         #
80         cpdup / /mnt
81         cpdup /var /mnt/var
82         cpdup /etc /mnt/etc
83         cpdup /dev /mnt/dev
84         cpdup /usr /mnt/usr
85
86         # Edit /mnt/etc/fstab to reflect the new mounts.  An example fstab
87         # file based on the above parameters exists as /mnt/etc/fstab.example
88         # which you can rename to /mnt/etc/fstab.
89         #
90         mv /mnt/etc/fstab.example /mnt/etc/fstab
91         vi /mnt/etc/fstab
92
93     Once you've duplicated the CD onto your HD you have to make some edits
94     so the system boots properly from your HD.  Primarily you must remove
95     or edit /mnt/boot/loader.conf
96
97         # Remove /mnt/boot/loader.conf so the kernel does not try to
98         # obtain the root filesystem from the CD.
99         #
100         rm /mnt/boot/loader.conf
101
102     At this point it should be possible to reboot.  The CD may be locked
103     since it is currently mounted.  Be careful of the CD drawer closing
104     on you when you open it during the reboot.  Remove the CD and allow
105     the system to boot from the HD.
106
107     WARNING do not just hit reset, the kernel may not have written out
108     all the pending data to your HD.  Either unmount the HD partitions
109     or type reboot.
110
111         # reboot
112         reboot
113         (remove CD when convenient, be careful of the CD drawer closing on you)
114
115     Once you have a working HD based system you can clean up /etc/rc.conf
116     to enable things like cron, sendmail, setup your networking, and so
117     forth.  If 'ifconfig' does not show your networking device you could
118     try to kldload it from /modules.  With a recognized network device
119     you can ifconfig its IP address or, if you have a DHCP server on your
120     network, use 'dhclient <interfacename>' to obtain an IP address from
121     the netweork.
122
123             USING CVSUP TO OBTAIN A CVS TREE, PORTS, AND DOING BUILDWORLDS
124
125     cvsup can be used to obtain the DragonFly cvs repository, the FreeBSD 
126     ports tree, and so on and so forth.  'man cvsup' for more information on
127     its capabilities.  cvsup is a port (not part of the base system), but
128     it IS included on the CD.  The cvsup example files are in
129     /usr/share/examples/cvsup.  You will primarily be interested in the
130     DragonFly CVS repository, DragonFly-supfile, and the FreeBSD ports,
131     FreeBSD-ports-supfile.  Once you have done the initial cvsup of the
132     blocks of data that you want you may wish to create a cron job to
133     keep it all up to date.  However, please do not run an unattended cvsup
134     more then once a day.
135
136     # get the CVS pository (it is placed in /home/dcvs)
137     cvsup /usr/share/examples/DragonFly-supfile
138     # install the source from the CVS hierarchy
139     cd /usr
140     cvs -R -d /home/dcvs checkout src
141     cvs -R -d /home/dcvs checkout dfports
142
143     # get the FreeBSD ports tree (it is directly broken out into /usr/ports)
144     cvsup -h cvsup.freebsd.org /usr/share/examples/FreeBSD-ports-supfile
145
146     # buildworld and installworld examples
147     #
148     cd /usr/src
149     make buildworld
150     make installworld
151
152     # buildkernel and installkernel examples.  Create your own custom kernel
153     # config in /usr/src/sys/i386/conf/<YOURKERNEL> and you can build and
154     # install custom kernels.
155     #
156     # WARNING!  Always keep a fully working backup kernel in / in case
157     # you blow it.  Remember that /kernel.old is overwritten when you 
158     # make installkernel.  It is usually a good idea to maintain an emergency
159     # kernel as /kernel.GENERIC or /kernel.bak.  If all else fails you can
160     # still fall back to booting the CD.
161     #
162     cd /usr/src
163     make buildkernel KERNCONF=GENERIC
164     make installkernel KERNCONF=GENERIC
165
166                         EMERGENCY RECOVERY FROM THE CD
167
168     Lets say you blew up your kernel or something else in / and you need to
169     boot the CD to fix it.  Remember that you have a fully operational 
170     system when booting the CD, but that you have to fsck and mount your
171     hard drive (typically onto /mnt) to get at the contents of your HD.
172
173     Your HD is typically an IDE hard drive, so the device is typically
174     /dev/ad0.  DragonFly is typically on the first slice, which is
175     /dev/ad0s1, and the root partition is always in partition 'a',
176     which is /dev/ad0s1a.
177
178     # fsck root before trying to mount it.  
179     fsck /dev/ad0s1a
180     # mount root read-write onto /mnt
181     mount /dev/ad0s1a /mnt
182     # copy files from the CD as appropriate to make it possible to boot
183     # from your HD again.  Note that /mnt/kernel may be flags-protected.
184     chflags noschg /mnt/kernel
185     cp /kernel /mnt/kernel
186     cp /modules/* /mnt/modules/
187
188     If you want to mount other partitions from your HD but have forgotten
189     what they are, simply cat /mnt/etc/fstab after mounting the root
190     partition.
191
192 $DragonFly: src/nrelease/root/README,v 1.3 2003/12/02 20:19:39 dillon Exp $
193