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