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