1 DRAGONFLY CDROM README FILE
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
8 NOTE!!! DRAGONFLY IS UNDERGOING DEVELOPMENT AND IS CONSIDERED
9 EXPERIMENTAL! BSD RELATED EXPERIENCE IS RECOMMENDED WHEN USING
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.
19 AUTOMATIC INSTALLATION
21 There are currently two installation tools available - the installer, and
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
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.
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'.
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).
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'.
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.
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.
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
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.
86 # WARNING: This COMPLETELY WIPES and repartitions your hard drive.
88 dd if=/dev/zero of=/dev/ad0 bs=32k count=16
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).
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
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.
109 # dd if=/dev/zero of=/dev/ad0s1 bs=32k count=16
110 disklabel -B -r -w ad0s1 auto
112 # Edit the label. Create various standard partitions. The typical
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
123 # An example disklabel can be found in /etc/disklabel.ad0s1.
127 # If you are not using ad0s1 as in the previous commands, you will
128 # need to create the device nodes for that slice. Change the
129 # slice number (ad0s2a) to match the disk slice you are using.
131 # The device nodes are automatically created for ad0s1, so you can
132 # safely skip this step if you are using that disk slice.
134 cd /dev && MAKEDEV ad0s2a
136 # Newfs (format) the various filesystems. Softupdates is not
137 # normally enabled on the root filesystem because large kernel or
138 # world installs/upgrades can run it out of space due to softupdate's
139 # delayed bitmap freeing code.
147 # Mount the filesystems.
149 mount /dev/ad0s1a /mnt
154 mount /dev/ad0s1d /mnt/var
155 mount /dev/ad0s1e /mnt/tmp
156 mount /dev/ad0s1f /mnt/usr
157 mount /dev/ad0s1g /mnt/home
159 # Copy the CDRom onto the target. cpdup won't cross mount boundaries
160 # on the source (e.g. the MFS remounts) so it takes a few commands.
162 # Note that /etc contains the config files used for booting from the
163 # CDROM itself, and /etc.hdd contains those for booting off a
164 # hard disk. So it's the latter that you want to copy to /mnt/etc.
168 cpdup /etc.hdd /mnt/etc
172 # Cleanup. Also, with /tmp a partition it is usually reasonable
173 # to make /var/tmp a softlink to /tmp.
177 ln -s /tmp /mnt/var/tmp
179 # Edit /mnt/etc/fstab to reflect the new mounts. An example fstab
180 # file based on the above parameters exists as /mnt/etc/fstab.example
181 # which you can rename to /mnt/etc/fstab.
183 mv /mnt/etc/fstab.example /mnt/etc/fstab
186 # Save out your disklabel just in case. It's a good idea to save
187 # it to /etc so you can get at it from your backups. You do intend
188 # to backup your system, yah? :-) (This isn't critical but it's a
191 disklabel ad0s1 > /mnt/etc/disklabel.ad0s1
194 MISC CLEANUPS BEFORE REBOOTING
196 Once you've duplicated the CD onto your HD you have to make some edits
197 so the system boots properly from your HD. Primarily you must remove
198 or edit /mnt/boot/loader.conf, which exists on the CD to tell the kernel
199 to mount the CD's root partition.
201 # Remove or edit /mnt/boot/loader.conf so the kernel does not try
202 # to obtain the root filesystem from the CD, and remove the other
203 # cruft that was sitting on the CD that you don't need on the HD.
205 rm /mnt/boot/loader.conf
206 rm /mnt/README* /mnt/autorun* /mnt/index.html /mnt/dflybsd.ico
210 At this point it should be possible to reboot. The CD may be locked
211 since it is currently mounted. To remove the CD, type 'halt' instead
212 of 'reboot', wait for the machine to halt, then the CD door should be
213 unlocked. Remove the CD and hit any key to reboot.
215 Be careful of the CD drawer closing on you if you try to remove the CD
216 while the machine is undergoing a reboot or reset.
218 WARNING: Do not just hit reset; the kernel may not have written out
219 all the pending data to your HD. Either unmount the HD partitions
220 or type halt or reboot.
223 (let the machine halt)
224 (remove CD when convenient, be careful of the CD drawer closing on you)
225 (hit any key to reboot)
230 You will notice in the boot menu that you can choose to boot with or
231 without ACPI. ACPI is an infrastructure designed to allow an operating
232 system to configure hardware devices associated with the system.
233 Unfortunately, as usual, PC BIOS makers have royally screwed up the
234 standard and ACPI is as likely to hurt as it is to help. Worse, some
235 PCs cannot be booted without it, so there is no good 'default' choice.
237 The system will use ACPI by default. You can disable it in the default
238 boot by adding the line 'hint.acpi.0.disabled=1' in /boot/loader.conf.
239 If you boot without hitting any menu options the system will boot without
240 ACPI. To boot without ACPI no matter what, place 'unset acpi_load' in
241 our /boot/loader.conf instead. This is not recommended.
244 IF YOU HAVE PROBLEMS BOOTING FROM HD
246 There are a couple of things to try. If you can select CHS or LBA mode
247 in your BIOS, try changing the mode to LBA. If that doesn't work, boot
248 from the CD again and use boot0cfg to turn on packet mode (boot0cfg -o
249 packet ad0). Also try booting with and without ACPI (option 1 or 2 in
252 Once you have a working HD based system you can clean up /etc/rc.conf
253 to enable things like cron, sendmail, setup your networking, and so
254 forth. If 'ifconfig' does not show your networking device you could
255 try to kldload it from /modules. With a recognized network device
256 you can ifconfig its IP address or, if you have a DHCP server on your
257 network, use 'dhclient <interfacename>' to obtain an IP address from
261 USING CVSUP TO OBTAIN A CVS TREE AND DOING BUILDWORLDS
263 cvsup can be used to obtain the DragonFly cvs repository. 'man cvsup'
264 for more information on its capabilities. cvsup is a package (not part
265 of the base system), but it IS included on the CD. The cvsup example
266 files are in /usr/share/examples/cvsup. You will primarily be interested
267 in the DragonFly CVS repository, DragonFly-cvs-supfile. Once you have
268 done the initial cvsup of the blocks of data that you want you may wish
269 to create a cron job to keep it all up to date. However, please do not
270 run an unattended cvsup more than once a day.
272 # get the CVS repository (it is placed in /home/dcvs)
273 cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile
274 # install the source from the CVS hierarchy
276 cvs -R -d /home/dcvs checkout src
278 # buildworld and installworld examples
284 # buildkernel and installkernel examples. Create your own custom kernel
285 # config in /usr/src/sys/config/<YOURKERNEL> and you can build and
286 # install custom kernels.
288 # WARNING! Always keep a fully working backup kernel in / in case
289 # you blow it. Remember that /kernel.old is overwritten when you
290 # make installkernel. It is usually a good idea to maintain an emergency
291 # kernel as /kernel.GENERIC or /kernel.bak. If all else fails you can
292 # still fall back to booting the CD.
295 make buildkernel KERNCONF=GENERIC
296 make installkernel KERNCONF=GENERIC
299 OBTAINING A PKGSRC TREE TO BUILD/INSTALL PACKAGES
301 In order to obtain a reasonably current snapshot of the pkgsrc tree, use
302 the tarball from NetBSD:
304 fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz
305 cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc
307 This tree can then be kept up to date with cvs update:
309 cd /usr/pkgsrc; cvs up
312 EMERGENCY RECOVERY FROM THE CD
314 Lets say you blew up your kernel or something else in / and you need to
315 boot the CD to fix it. Remember that you have a fully operational
316 system when booting the CD, but that you have to fsck and mount your
317 hard drive (typically onto /mnt) to get at the contents of your HD.
319 Your HD is typically an IDE hard drive, so the device is typically
320 /dev/ad0. DragonFly is typically on the first slice, which is
321 /dev/ad0s1, and the root partition is always in partition 'a',
322 which is /dev/ad0s1a.
324 # fsck root before trying to mount it.
326 # mount root read-write onto /mnt
327 mount /dev/ad0s1a /mnt
328 # copy files from the CD as appropriate to make it possible to boot
329 # from your HD again. Note that /mnt/kernel may be flags-protected.
330 chflags noschg /mnt/kernel
331 cp /kernel /mnt/kernel
332 cp /modules/* /mnt/modules/
334 If you want to mount other partitions from your HD but have forgotten
335 what they are, simply cat /mnt/etc/fstab after mounting the root
338 $DragonFly: src/nrelease/root/README,v 1.22 2006/10/24 17:09:45 swildner Exp $