File:  [DragonFly] / src / nrelease / root / README
Revision 1.12: download - view: text, annotated - select for diffs
Thu Apr 22 16:53:17 2004 UTC (10 years, 8 months ago) by cpressey
Branches: MAIN
CVS tags: HEAD
Split the suggested invocation of fdisk (which is failing for some
people) into two seperate invocations (which seems to work for them.)

The real solution would be to find out why fdisk -IB is troublesome,
but in the interim, this should save some frustration.

Problem-experienced-by: geekgod.com, Devon H. O'Dell, Dave Leimbach
Workaround-stumbled-upon-by: cpressey

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