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