File:  [DragonFly] / src / nrelease / root / README
Revision 1.3: download - view: text, annotated - select for diffs
Tue Dec 2 20:19:39 2003 UTC (11 years ago) by dillon
Branches: MAIN
CVS tags: HEAD
Add additional information on cvsup'ing various sources.

Suggested-by: David Rhodus <drhodus@catpa.com>

			    DRAGONFLY CDROM README FILE

    This CDROM boots DragonFly BSD.  Basically what you get is a full base
    system on CD with certain critical directories, such as /tmp, remounted
    read-write using MFS.  Your existing hard drive is not effected by
    booting this CDROM.

    NOTE!!! DRAGONFLY IS UNDERGOING DEVELOPMENT AND CONSIDERED EXPERIMENTAL!
    BSD RELATED EXPERIENCE IS REQUIRED TO USE THIS CDROM.

    If you just want to play with DragonFly and not mess with your hard disk,
    this CDROM boots into a fully operational console-based system, though
    without swap it should be noted that you are limited by available memory.

			    AUTOMATIC INSTALLATION

    We are currently developing automatic installation tools.  There are none
    on this CD.

			    MANUAL INSTALLATION

    Manual installation of DragonFly onto an HD involve the following sequence
    of commands.  You must be familiar with BSD style UNIX systems to do
    installations manually.  The primary IDE hard drive is typically 'ad0'
    and DragonFly is typically installed onto the first slice.


	# This COMPLETE WIPES and repartitions your hard drive
	fdisk -IB ad0

	# This installs boot blocks onto the HD and verifies their 
	# installation.
	boot0cfg -B ad0
	boot0cfg -v ad0

	# This creates an initial label on the first slice of the HD.  If
	# you have problems booting you could try wiping the first 32 blocks
	# of the slice with dd and then reinstalling the label
	#
	# dd if=/dev/zero of=/dev/ad0s1 bs=32k count=16
	disklabel -B -r -w ad0s1 auto

	# Edit the label.  Create various standard partitions.  The typical
	# configurations is:
	#
	#	ad0s1a	256m		This will be your /
	#	ad0s1b	1024m		This will be your swap
	#	ad0s1c			(leave alone)
	#	ad0s1d	256m		This will be your /var
	#	ad0s1e	256m		This will be your /tmp
	#	ad0s1f	8192m		This will be your /usr (min 4096m)
	#	ad0s1g	*		All remaining space to yoru /home
	#
	disklabel -e ad0s1

	# Newfs (format) the various filesystems.  Softupdates is not 
	# normally enabled on the root filesystem.
	#
	newfs /dev/ad0s1a
	newfs -U /dev/ad0s1d
	newfs -U /dev/ad0s1e
	newfs -U /dev/ad0s1f
	newfs -U /dev/ad0s1g

	# Mount the filesystems
	#
	mount /dev/ad0s1a /mnt
	mkdir /mnt/var
	mkdir /mnt/tmp
	mkdir /mnt/usr
	mkdir /mnt/home
	mount /dev/ad0s1d /mnt/var
	mount /dev/ad0s1e /mnt/tmp
	mount /dev/ad0s1f /mnt/usr
	mount /dev/ad0s1g /mnt/home

	# Copy the CDRom onto the target.  cpdup won't cross mount boundaries
	# on the source (e.g. the MFS remounts) so it takes a few commands.
	#
	cpdup / /mnt
	cpdup /var /mnt/var
	cpdup /etc /mnt/etc
	cpdup /dev /mnt/dev
	cpdup /usr /mnt/usr

	# Edit /mnt/etc/fstab to reflect the new mounts.  An example fstab
	# file based on the above parameters exists as /mnt/etc/fstab.example
	# which you can rename to /mnt/etc/fstab.
	#
	mv /mnt/etc/fstab.example /mnt/etc/fstab
	vi /mnt/etc/fstab

    Once you've duplicated the CD onto your HD you have to make some edits
    so the system boots properly from your HD.  Primarily you must remove
    or edit /mnt/boot/loader.conf

	# Remove /mnt/boot/loader.conf so the kernel does not try to
	# obtain the root filesystem from the CD.
	#
	rm /mnt/boot/loader.conf

    At this point it should be possible to reboot.  The CD may be locked
    since it is currently mounted.  Be careful of the CD drawer closing
    on you when you open it during the reboot.  Remove the CD and allow
    the system to boot from the HD.

    WARNING do not just hit reset, the kernel may not have written out
    all the pending data to your HD.  Either unmount the HD partitions
    or type reboot.

	# reboot
	reboot
	(remove CD when convenient, be careful of the CD drawer closing on you)

    Once you have a working HD based system you can clean up /etc/rc.conf
    to enable things like cron, sendmail, setup your networking, and so
    forth.  If 'ifconfig' does not show your networking device you could
    try to kldload it from /modules.  With a recognized network device
    you can ifconfig its IP address or, if you have a DHCP server on your
    network, use 'dhclient <interfacename>' to obtain an IP address from
    the netweork.

	    USING CVSUP TO OBTAIN A CVS TREE, PORTS, AND DOING BUILDWORLDS

    cvsup can be used to obtain the DragonFly cvs repository, the FreeBSD 
    ports tree, and so on and so forth.  'man cvsup' for more information on
    its capabilities.  cvsup is a port (not part of the base system), but
    it IS included on the CD.  The cvsup example files are in
    /usr/share/examples/cvsup.  You will primarily be interested in the
    DragonFly CVS repository, DragonFly-supfile, and the FreeBSD ports,
    FreeBSD-ports-supfile.  Once you have done the initial cvsup of the
    blocks of data that you want you may wish to create a cron job to
    keep it all up to date.  However, please do not run an unattended cvsup
    more then once a day.

    # get the CVS pository (it is placed in /home/dcvs)
    cvsup /usr/share/examples/DragonFly-supfile
    # install the source from the CVS hierarchy
    cd /usr
    cvs -R -d /home/dcvs checkout src
    cvs -R -d /home/dcvs checkout dfports

    # get the FreeBSD ports tree (it is directly broken out into /usr/ports)
    cvsup -h cvsup.freebsd.org /usr/share/examples/FreeBSD-ports-supfile

    # buildworld and installworld examples
    #
    cd /usr/src
    make buildworld
    make installworld

    # buildkernel and installkernel examples.  Create your own custom kernel
    # config in /usr/src/sys/i386/conf/<YOURKERNEL> and you can build and
    # install custom kernels.
    #
    # WARNING!  Always keep a fully working backup kernel in / in case
    # you blow it.  Remember that /kernel.old is overwritten when you 
    # make installkernel.  It is usually a good idea to maintain an emergency
    # kernel as /kernel.GENERIC or /kernel.bak.  If all else fails you can
    # still fall back to booting the CD.
    #
    cd /usr/src
    make buildkernel KERNCONF=GENERIC
    make installkernel KERNCONF=GENERIC

			EMERGENCY RECOVERY FROM THE CD

    Lets say you blew up your kernel or something else in / and you need to
    boot the CD to fix it.  Remember that you have a fully operational 
    system when booting the CD, but that you have to fsck and mount your
    hard drive (typically onto /mnt) to get at the contents of your HD.

    Your HD is typically an IDE hard drive, so the device is typically
    /dev/ad0.  DragonFly is typically on the first slice, which is
    /dev/ad0s1, and the root partition is always in partition 'a',
    which is /dev/ad0s1a.

    # fsck root before trying to mount it.  
    fsck /dev/ad0s1a
    # mount root read-write onto /mnt
    mount /dev/ad0s1a /mnt
    # copy files from the CD as appropriate to make it possible to boot
    # from your HD again.  Note that /mnt/kernel may be flags-protected.
    chflags noschg /mnt/kernel
    cp /kernel /mnt/kernel
    cp /modules/* /mnt/modules/

    If you want to mount other partitions from your HD but have forgotten
    what they are, simply cat /mnt/etc/fstab after mounting the root
    partition.

$DragonFly: src/nrelease/root/README,v 1.3 2003/12/02 20:19:39 dillon Exp $