xref: /dragonfly/nrelease/root/README (revision 9ddb8543)
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 affected 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    It is a good idea to test your hardware for compatibility from a CD boot
16    before spending time installing the dist on your hard disk.
17
18
19			    AUTOMATIC INSTALLATION
20
21    There are currently two installation tools available - the installer, and
22    rconfig.
23
24    The installer can be run with a text-based (curses) user interface
25    from the serial console or a VTY, and provides a straightforward method
26    for installing DragonFly on your HD.  To start it, just login with the
27    username 'installer'.
28
29    The installer can also be run with a web-based (CGI) user interface.
30    To set this up manually is a bit of work, but much of it can be automated
31    by writing a couple of lines into a configuration file on a floppy disk
32    or USB pendrive, and inserting or attaching that to the computer before
33    booting the CDROM.  See the file /etc/defaults/pfi.conf for more info.
34
35    rconfig is a client/server protocol which requires a server (typically on
36    the same network).  An example server setup can be found in
37    /usr/share/examples/rconfig.  If you have multiple machines you can setup
38    an installation script and run rconfig on a server and then install the
39    clients from CD boot with network connectivity (e.g. dhclient <blah>)
40    and then, typically, 'rconfig -a'.
41
42    You can also just boot from the CD, login as 'root' to get a shell
43    prompt, copy the sample script to /tmp, edit, and run it directly
44    (assuming that blowing away your existing disk is ok).
45
46
47				  CONSOLE OPERATION
48
49    The second stage boot (boot2) and third stage boot (loader) default
50    to dual serial & video console I/O.  The system will also throw a login
51    prompt up on ttyd0 by default.  You can direct the boot output
52    to just the serial port by creating the file /boot.config with the
53    line '-h', or to just the screen using '-V'.  If you wish to leave
54    boot2 in dual I/O mode but want the third stage to use just one or the
55    other, you can set the 'console' environment variable in /boot/loader.conf
56    to either 'console=vidconsole' or 'console=comconsole'.
57
58    The dual serial port operation might have to be disabled if you use
59    the serial port for things like UPSs.  Also note that by default
60    the CD will run a login prompt on the serial port after booting is
61    complete.  This can be disabled by editing the 'ttyd0' line in /etc/ttys
62    after installation is complete.
63
64    Note that the kernel itself currently only supports one console or the
65    other.  If both are enabled, the kernel will use the video console or
66    the last one for which input was received.
67
68
69				MANUAL INSTALLATION
70
71    Manual installation of DragonFly onto an HD involves the following sequence
72    of commands.  You must be familiar with BSD style UNIX systems to do
73    installations manually.  The primary IDE hard drive is typically 'ad0'
74    and DragonFly is typically installed onto the first free slice
75    (ad0s1 if disk is empty, ad0s2 if your first slice contains
76    another OS, etc).  Be careful to substitute the correct partition name
77    in the steps below.
78
79	# OPTIONAL STEP: If your disk is already partitioned and you
80	# have a spare primary partition on which you want to install
81	# Dragonfly, skip this step.  However, sometimes old boot
82	# blocks or cruft in the boot area can interfere with the
83	# initialization process.  A cure is to zero out the start of
84	# the disk before running fdisk.
85	#
86	# WARNING: This COMPLETELY WIPES and repartitions your hard drive.
87	#
88	dd if=/dev/zero of=/dev/ad0 bs=32k count=16
89	fdisk -I ad0
90	fdisk -B ad0
91
92	# If you didn't zero the disk as above, but have a spare slice
93	# whose partition type you want to change to UFS, use fdisk(8).
94
95	# This installs boot blocks onto the HD and verifies their
96	# installation.  See note just above the 'reboot' below for
97	# things to try if it does not boot from your HD.  If you
98	# already have a multi-OS bootloader installed you can skip
99	# this step.
100	#
101	boot0cfg -B ad0
102	boot0cfg -v ad0
103
104	# This creates an initial label on the chosen slice of the HD.  If
105	# you have problems booting you could try wiping the first 32 blocks
106	# of the slice with dd and then reinstalling the label.  Replace
107	# 'ad0s1' with the chosen slice.
108	#
109	# dd if=/dev/zero of=/dev/ad0s1 bs=32k count=16
110	disklabel -B -r -w ad0s1 auto
111
112	# Edit the label.  Create various standard partitions.  The typical
113	# configuration is:
114	#
115	#	ad0s1a	256m		This will be your /
116	#	ad0s1b	1024m		This will be your swap
117	#	ad0s1c			(leave alone)
118	#	ad0s1d	256m		This will be your /var
119	#	ad0s1e	256m		This will be your /tmp
120	#	ad0s1f	8192m		This will be your /usr (min 4096m)
121	#	ad0s1g	*		All remaining space to your /home
122	#
123	# An example disklabel can be found in /etc/disklabel.ad0s1.
124	#
125	disklabel -e ad0s1
126
127        # Newfs (format) the various filesystems.  Softupdates is not
128	# normally enabled on the root filesystem because large kernel or
129	# world installs/upgrades can run it out of space due to softupdate's
130	# delayed bitmap freeing code.
131	#
132	newfs /dev/ad0s1a
133	newfs -U /dev/ad0s1d
134	newfs -U /dev/ad0s1e
135	newfs -U /dev/ad0s1f
136	newfs -U /dev/ad0s1g
137
138	# Mount the filesystems.
139	#
140	mount /dev/ad0s1a /mnt
141	mkdir /mnt/var
142	mkdir /mnt/tmp
143	mkdir /mnt/usr
144	mkdir /mnt/home
145	mount /dev/ad0s1d /mnt/var
146	mount /dev/ad0s1e /mnt/tmp
147	mount /dev/ad0s1f /mnt/usr
148	mount /dev/ad0s1g /mnt/home
149
150	# Copy the CDRom onto the target.  cpdup won't cross mount boundaries
151	# on the source (e.g. the MFS remounts) so it takes a few commands.
152	#
153	# Note that /etc contains the config files used for booting from the
154	# CDROM itself, and /etc.hdd contains those for booting off a
155	# hard disk.  So it's the latter that you want to copy to /mnt/etc.
156	#
157	cpdup / /mnt
158	cpdup /var /mnt/var
159	cpdup /etc.hdd /mnt/etc
160	cpdup /usr /mnt/usr
161
162	# Cleanup.  Also, with /tmp a partition it is usually reasonable
163	# to make /var/tmp a softlink to /tmp.
164	#
165	chmod 1777 /mnt/tmp
166	rm -rf /mnt/var/tmp
167	ln -s /tmp /mnt/var/tmp
168
169	# Edit /mnt/etc/fstab to reflect the new mounts.  An example fstab
170	# file based on the above parameters exists as /mnt/etc/fstab.example
171	# which you can rename to /mnt/etc/fstab.
172	#
173	mv /mnt/etc/fstab.example /mnt/etc/fstab
174	vi /mnt/etc/fstab
175
176	# Save out your disklabel just in case.  It's a good idea to save
177	# it to /etc so you can get at it from your backups.  You do intend
178	# to backup your system, yah? :-)  (This isn't critical but it's a
179	# good idea).
180	#
181	disklabel ad0s1 > /mnt/etc/disklabel.ad0s1
182
183
184			MISC CLEANUPS BEFORE REBOOTING
185
186    Once you've duplicated the CD onto your HD you have to make some edits
187    so the system boots properly from your HD.  Primarily you must remove
188    or edit /mnt/boot/loader.conf, which exists on the CD to tell the kernel
189    to mount the CD's root partition.
190
191	# Remove or edit /mnt/boot/loader.conf so the kernel does not try
192	# to obtain the root filesystem from the CD, and remove the other
193	# cruft that was sitting on the CD that you don't need on the HD.
194	#
195	rm /mnt/boot/loader.conf
196	rm /mnt/README* /mnt/autorun* /mnt/index.html /mnt/dflybsd.ico
197	rm /mnt/boot.catalog
198	rm -r /mnt/rr_moved
199
200    At this point it should be possible to reboot.  The CD may be locked
201    since it is currently mounted.  To remove the CD, type 'halt' instead
202    of 'reboot', wait for the machine to halt, then the CD door should be
203    unlocked.  Remove the CD and hit any key to reboot.
204
205    Be careful of the CD drawer closing on you if you try to remove the CD
206    while the machine is undergoing a reboot or reset.
207
208    WARNING: Do not just hit reset; the kernel may not have written out
209    all the pending data to your HD.  Either unmount the HD partitions
210    or type halt or reboot.
211
212	# halt
213	(let the machine halt)
214	(remove CD when convenient, be careful of the CD drawer closing on you)
215	(hit any key to reboot)
216
217
218				    THE ACPI ISSUE
219
220    You will notice in the boot menu that you can choose to boot with or
221    without ACPI.  ACPI is an infrastructure designed to allow an operating
222    system to configure hardware devices associated with the system.
223    Unfortunately, as usual, PC BIOS makers have royally screwed up the
224    standard and ACPI is as likely to hurt as it is to help.  Worse, some
225    PCs cannot be booted without it, so there is no good 'default' choice.
226
227    The system will use ACPI by default.  You can disable it in the default
228    boot by adding the line 'hint.acpi.0.disabled=1' in /boot/loader.conf.
229    If you boot without hitting any menu options the system will boot without
230    ACPI.  To boot without ACPI no matter what, place 'unset acpi_load' in
231    our /boot/loader.conf instead.  This is not recommended.
232
233
234			IF YOU HAVE PROBLEMS BOOTING FROM HD
235
236    There are a couple of things to try.  Try booting from the CD again and
237    use boot0cfg to turn off packet mode (boot0cfg -o nopacket ad0).  If you
238    can select CHS or LBA mode in your BIOS, try changing the mode to LBA.
239    Also try booting with and without ACPI (option 1 or 2 in the boot menu).
240
241    Once you have a working HD based system you can clean up /etc/rc.conf
242    to enable things like cron, sendmail, setup your networking, and so
243    forth.  If 'ifconfig' does not show your networking device you could
244    try to kldload it from /modules.  With a recognized network device
245    you can ifconfig its IP address or, if you have a DHCP server on your
246    network, use 'dhclient <interfacename>' to obtain an IP address from
247    the network.
248
249
250	    USING GIT TO OBTAIN A SOURCE TREE AND DOING BUILDWORLDS
251
252    Instructions on how to obtain and maintain DragonFly source code using
253    git are in the development(7) manual page.
254
255    To upgrade a DragonFly system from sources you run the following
256    sequence:
257
258    cd /usr/src
259    make buildworld
260    make buildkernel KERNCONF=<KERNELNAME>
261    make installkernel KERNCONF=<KERNELNAME>
262    make installworld
263
264    You will also want to run the 'upgrade' target to upgrade your /etc
265    and the rest of your system.  The upgrade target is aware of stale
266    files created by older DragonFly installations and should delete them
267    automatically.
268
269    make upgrade
270
271    See the build(7) manual page for further information.
272
273    Once you've done a full build of the world and kernel you can do
274    incremental upgrades of either by using the 'quickworld' and
275    'quickkernel' targets instead of 'buildworld' and 'buildkernel'.  If
276    you have any problems with the quick targets, try updating your repo
277    first, and then a full buildworld and buildkernel as shown above, before
278    asking for help.
279
280
281		OBTAINING A PKGSRC TREE TO BUILD/INSTALL PACKAGES
282
283    In order to obtain a reasonably current snapshot of the pkgsrc tree, use
284    the tarball from NetBSD:
285
286    fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz
287    cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc
288
289    This tree can then be kept up to date with cvs update:
290
291    cd /usr/pkgsrc; cvs up
292
293
294			EMERGENCY RECOVERY FROM THE CD
295
296    Lets say you blew up your kernel or something else in / and you need to
297    boot the CD to fix it.  Remember that you have a fully operational
298    system when booting the CD, but that you have to fsck and mount your
299    hard drive (typically onto /mnt) to get at the contents of your HD.
300
301    Your HD is typically an IDE hard drive, so the device is typically
302    /dev/ad0.  DragonFly is typically on the first slice, which is
303    /dev/ad0s1, and the root partition is always in partition 'a',
304    which is /dev/ad0s1a.
305
306    # fsck root before trying to mount it.
307    fsck /dev/ad0s1a
308    # mount root read-write onto /mnt
309    mount /dev/ad0s1a /mnt
310    # copy files from the CD as appropriate to make it possible to boot
311    # from your HD again.  Note that /mnt/kernel may be flags-protected.
312    chflags noschg /mnt/kernel
313    cp /kernel /mnt/kernel
314    cp /modules/* /mnt/modules/
315
316    If you want to mount other partitions from your HD but have forgotten
317    what they are, simply cat /mnt/etc/fstab after mounting the root
318    partition.
319
320