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 243