home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / faqs / comp / answers / 386bsd-faq / part3 < prev    next >
Internet Message Format  |  1997-10-14  |  81KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news-out.internetmci.com!newsfeed.internetmci.com!206.229.87.25!news-peer.sprintlink.net!news-sea-19.sprintlink.net!news-in-west.sprintlink.net!news.sprintlink.net!Sprint!204.248.21.3!neonramp.com!cynjut.neonramp.com!cynjut.neonramp.com!not-for-mail
  2. From: burgess@cynjut.neonramp.com (Dave Burgess)
  3. Newsgroups: comp.unix.bsd.netbsd.announce,comp.unix.bsd.freebsd.announce,comp.answers,news.answers,comp.unix.openbsd.announce
  4. Subject: [comp.unix.bsd] NetBSD, FreeBSD, and OpenBSD FAQ (Part 3 of 10)
  5. Supersedes: <386bsd-faq-3-875343603@cynjut.neonramp.com>
  6. Followup-To: comp.unix.bsd.netbsd.misc
  7. Date: 13 Oct 1997 02:00:11 -0500
  8. Organization: Dave's House in Omaha
  9. Lines: 1865
  10. Approved: news-answers-request@MIT.Edu,cgd@sun-lamp.cs.berkeley.edu
  11. Expires: 10/31/97 01:00:03 CDT
  12. Message-ID: <386bsd-faq-3-876726003@cynjut.neonramp.com>
  13. References: <386bsd-faq-1-876726003@cynjut.neonramp.com>
  14. Reply-To: burgess@cynjut.neonramp.com (BSD FAQ Maintainer)
  15. NNTP-Posting-Host: cynjut.neonramp.com
  16. Keywords: FAQ 386bsd NetBSD FreeBSD !Linux
  17. X-Posting-Frequency: Posted on/about the 13th and the 27th of every month.
  18. Xref: senator-bedfellow.mit.edu comp.unix.bsd.netbsd.announce:563 comp.unix.bsd.freebsd.announce:734 comp.answers:28477 news.answers:114369
  19.  
  20. Posted-By: auto-faq 3.1.1.2
  21. Archive-name: 386bsd-faq/part3
  22.  
  23. Section 2.    (Common installation questions)
  24.  
  25.  
  26. 2.0    Install process
  27.     
  28.     Once the files are on floppies, thoughts usually turn to
  29.     questions about how to install the boot image on a floppy.  The 
  30.     rawrite program (for DOS) is used to write the bootable images 
  31.     (dist.fs and fixit.fs) onto floppies.  The same image can used 
  32.     for 3 1/2 and 5 1/4 high density diskettes. NetBSD uses the .fs 
  33.     file extension for its floppy images.  FreeBSD uses the .flp 
  34.     extension.
  35.     
  36.     Once the bootable images are written onto the floppies, insert 
  37.     the dist.fs disk into the A: drive and reboot.  If the system
  38.     does not boot, see section 2.5 below for more information.
  39.     
  40.     If the disk boots, type install and proceed to use the 
  41.     INSTALL.NOTES to get more information.
  42.     
  43.     Problems with the install are either related to hardware (i.e.
  44.     Do you want to install on your T.V.?) or software.  Of the 
  45.     hardware issues, the most common FAQs are usually straight out 
  46.     of the installation notes.  Of the software issues, there are 
  47.     only two that really concern us.  The first is bad files.
  48.     
  49.     On some systems, files that are loaded from floppy appear to 
  50.     'go bad' when they arrive on the hard disk.  Try some of these 
  51.     solutions:
  52.  
  53.     - You forgot binary.  Don't get insulted.  Those of us that FTP 
  54.     for a living forget sometimes.  If so, the distribution will
  55.     come out with all different sizes and install will complain
  56.     about every disk.
  57.     
  58.     - One or two of the files are no good.  Try getting them again.  
  59.     As a precaution, rename the bad files on your hard drive to
  60.     names like foo.1 and bob.23.  Copy the files again from floppy.  
  61.     If they are still bad, rename the file, and the one immediately 
  62.     before the first bad file (bin01.23 if bin01.24 is bad) and
  63.     copy them again.  If they are still bad, download those files 
  64.     again from the distribution site (including the one before and 
  65.     after the bad one) and try again.  
  66.  
  67.     The reason for renaming the files is that sometimes, especially 
  68.     with drive that do not auto-magically record bad sectors, you
  69.     could copy a distribution file onto a bad spot on the disk.  If
  70.     this happens, you want to isolate the bad spot.  The easiest way
  71.     to do that is just leave the bad file on it.
  72.     
  73.     For those of you that have received your system on a CD-ROM,
  74.     you will need to find at least three things.  One is this file. 
  75.     Since you are reading it, I assume that you got it already. :-)  
  76.     If you can't read this file (you got it from the newsgroup, for 
  77.     example) there is one thing that you need to know so you don't 
  78.     look like a complete idiot on the net.
  79.  
  80.     There is no such thing as a Unix CD-ROM.  They are all in 
  81.     something called the ISO CD-ROM format.  You can read them as 
  82.     the D: drive in DOS, or mount them on your Sun or SVR4 system 
  83.     or whatever.
  84.  
  85.     Second, you will need to find the directory with the bootable
  86.     disk images in it.  They will have self explanatory names like:
  87.  
  88. <pre>
  89.     kerncopy.fs
  90.     base0-9.fs
  91.     fred.fs
  92.     genericaha.fs
  93.     boot-me-first.fs
  94.     this-is-the-file-with-the-fs-extension.fs
  95. </pre>
  96.  
  97.     You get the idea, right?  Look for the MS-DOS program
  98.     "RAWRITE.EXE".  It should be right near the file system (.fs) 
  99.     files.  Another clue for the truly lost will be that the file 
  100.     system files will all be 1.2 Meg big.  These files will fit 
  101.     onto either a 1.2Meg 5.25 inch diskette, or a 1.44Meg 2.5 inch 
  102.     diskette.  Use rawrite to write the fs files to diskettes and
  103.     boot from the diskettes.
  104.  
  105.     The FreeBSD system uses a system 'pretty much' the same as this,
  106.     except that the filesystem files are 1.2 Meg files and they all
  107.     have a '.flp' extension.  Other than that, the instructions
  108.     apply.
  109.  
  110.     You did back your system up, right?
  111.  
  112.     For those of you trying to build installation floppies, you
  113.     will need to verify the media type on the 'dd' and 'disklabel'
  114.     commands in the Makefile.  The default is to build to 1.2 Meg
  115.     disks (being the smallest in terms of room).  Change the 12100
  116.     and floppy5 entries to 14410 and floppy3 (respectivly).
  117.  
  118.  
  119. 2.0.1    Boot disks  (versions and media formats)
  120.     
  121. 2.0.1.1    I have the base system installed, and now I want to install the
  122.     rest of the system.  Where did the 'extract' program go?
  123.  
  124.     When installing NetBSD, the 'set_tmp_dir' and 'extract' programs 
  125.     are part of the .profile that is booted when you are installing.  
  126.     This .profile is overwritten as part of the install process, and
  127.     extract then disappears.  If you need extract again, you can mount 
  128.     the install disk and source .profile.  This will recreate these 
  129.     two routines.
  130.  
  131.     There is also an install procedure that FreeBSD uses that does
  132.     the same job.  It is defined as part of the .profile on one of the
  133.     installation floppies.  You can either copy it from there, or use
  134.     the procedure for 'real disk partitioning'.
  135.  
  136.     Failing that, you can use the following process to extract the
  137.     sources.
  138.  
  139.         -   First, 'cd' to where your files are.
  140.         -   Assuming you want to extract the kernel sources, use the 
  141.         following command to extract the files:
  142.  
  143.         "cat ksrc* | tar -xvf - -C /"
  144.  
  145.     This will combine the pieces, feed them to tar, and load the
  146.     files in the 'standard' place.
  147.  
  148. 2.0.1.2a    The floppy booted, but now the hard disk won't boot?
  149. 2.0.1.2b    I am trying to reinstall.  I run install and it loops
  150.           asking me if I want to use the whole disk?
  151.     
  152.     The most likely culprit is your hard disk controller.  If you
  153.     have an IDE or EIDE controller, it is probably doing some type 
  154.     of disk translation for you.  If this is the case (assume it 
  155.     is) then you will need to find out the real disk controller 
  156.     geometry, and rewrite your disk label.  See section 2.6.2, but 
  157.     before doing that get the program pfdisk.exe.  This program 
  158.     will tell you what the controller geometry is (right before 
  159.     it reboots your computer).  Make the disklabel agree with 
  160.     this program and your system should boot.  You may have to 
  161.     reinstall, but at least your disklabel will be right.  Note 
  162.     that this is a nearly required step for all NetBSD and 
  163.     FreeBSD installs.  You need to know what the disk geometry 
  164.     is before the BIOS messes with it.  If you start having these 
  165.     kinds of installation problems, I can virtually assure you that 
  166.     it is because your controller geometry and your disklabel 
  167.     geometry are different.
  168.  
  169.     NOTE:  If the hard disk controller does NOT have an option for
  170.     turning off the geometry, you may well be completely out of
  171.     luck.  There are very few controllers that fall into this
  172.     category.  The ones that do full time translation will often
  173.     boot up in translated mode.  pfdisk will help you determine the
  174.     correct geometry for your drive by telling you what the geometry
  175.     looks like when 386bsd boots up.  
  176.  
  177.     But on the other hand, maybe not...
  178.  
  179.     See section 2.5.5 below for a detailed set of instructions about
  180.     getting NetBSD (and by implication 386BSD and FreeBSD) to work with 
  181.     a system that uses full time translation.
  182.  
  183.  
  184. 2.0.1.4    What are the options on the boot prompt?
  185.  
  186.     The most amazing thing about the boot process in *BSD is the
  187.     boot up alternatives that are available.  There is little that
  188.     a person can NOT do from the boot prompt.  The boot diskette or
  189.     disk can be selected (fd(1,a) for fd1a (my B: drive is DOS))
  190.     can be the source of my kernel.  In addition, the name of the
  191.     kernel can be chosen (this allows you to boot with a test
  192.     kernel or reboot an older kernel if the new one gets hosed).
  193.     Finally, there are three choices for options that may or may
  194.     not work, depending on the age and proclivities of your boot
  195.     blocks.  These options are documented in 2.5.9 below.
  196.  
  197.  
  198. 2.0.1.5    I just used the '-s' option on the boot, but I can't write
  199.     anything onto the disk.  What is wrong?  If I use a plain 'mount'
  200.     command it tells me that my root file system is read-only.
  201.  
  202.     In single-user (system booted with -s or an error in one of 
  203.     the processes started by /etc/rc) the root filesystem mounts 
  204.     as read-only by default. This was intended so that some range 
  205.     of problems would not be made worse by writes to the disk.
  206.  
  207.     The 'dos' partitions mount as read-only in that there are 
  208.     reservations as to how well some of the FreeBSD tools work with 
  209.     the pcfs.  The same kind of reservations exist with NetBSD and 
  210.     the '-t msdosfs' option.  These options (-r for read-only, -w
  211.     for read-write) can be set in /etc/fstab.
  212.  
  213.     The status of both can be changed with 'mount -wu /{mount.dir}'
  214.     (where {mount-dir} is the name of the directory that the 
  215.     offending partition is mounted) to read-write.  Particularly for 
  216.     the dos filesystem, the man page for mount should be read in 
  217.     detail and the 'noexec' option examined.
  218.  
  219.     Note that mounting the file systems using the '-a' option will
  220.     mount all of the file systems that are normally mounted with
  221.     their usual read-write bits set normally.  Using this option
  222.     makes your root partition writable, and also mounts the rest of
  223.     the partitions in your /etc/fstab that are normally mounted
  224.     during boot-up.
  225.  
  226.  
  227. 2.1    Binary distribution
  228. 2.1.1    I want to install by NFS but I am having all kinds of problems
  229.     connecting to the Sun server where the files are.
  230.  
  231.     There is an unusual problem when installing over NFS.  This
  232.     solution may have been corrected in the documentation that comes
  233.     with FreeBSD and NetBSD, but if not, here it is.
  234.  
  235.     The most common problem seems to be that FreeBSD (and by
  236.     inference NetBSD and all the other 4.4 based systems) do not
  237.     send out NFS requests over privileged ports.  Sun's NFS
  238.     implementation (and others, once again by inference) expect
  239.     precisely the opposite.  These systems will quietly fail if you
  240.     try to NFS to them.
  241.  
  242.     The usual error message (which may ONLY appear in
  243.     /var/adm/messages) is "nfs_server: weak authentication, source
  244.     IP address=xx.xx.xx.xx"
  245.  
  246.     SunOS is particularly insidious at this point.  The mount
  247.     succeeds, but then everything else after that fails.  This means
  248.     that your FreeBSD or NetBSD system will return an EACCESS error
  249.     whenever you try to grab a file from the NFS filesystem.  The
  250.     solution (tested in FreeBSD) is to include the 'resvport' flag
  251.     like this:
  252.  
  253. <pre>
  254.     # mount -o resvport server:/fs /mnt_point
  255.  
  256. </pre>
  257.     or to use the -P flag (which does the same thing).  See the
  258.     mount and mount_nfs man pages for the details.
  259.  
  260.     In fact, the -P flag provides a solution to the FreeBSD NFS
  261.     installation problem.  When prompted for server/filesystem, type
  262.     in the flag before the server/filesystem pair:
  263.  
  264. <pre>
  265.       -P server:/fs
  266. </pre>
  267.  
  268.     If you are using an 8-bit network card, and want to avoid the
  269.     ring buffer overflow problems that seem to come standard with
  270.     this class of cards, you can also include the "-r4096 -w4096"
  271.     flags between the -P and the server.
  272.  
  273.  
  274. 2.2    Configuration
  275.  
  276.     By far, the most common configuration questions are partitioning, 
  277.     followed closely by all of the other software in the system.  
  278.     Sendmail and named are also problems occasionally, but the 
  279.     documentation that comes with them usually gets you through.  If 
  280.     you run into a problem, post a question to comp.os.386bsd.questions.  
  281.  
  282.     A less frequently asked question is "Where can I get info on how 
  283.     to configure a kernel?"  The answer to this question has been 
  284.     provided by Richard Murphey (Email address rich@Rice.edu).  
  285.     
  286.     --------------------------------------------------------------------
  287.     Ready-to-print PostScript files for each section of the net2 system 
  288.     maintainer's manual are on nova.cc.purdue.edu in 
  289.     pub/386bsd/submissions/bsd.manuals.
  290.     
  291.     smm.02.config.ps.Z describes kernel configuration for the VAX, 
  292.     however some of it is relevant to 386BSD.  There is no freely 
  293.     available rewrite for 386BSD that I know of.  
  294.     --------------------------------------------------------------------
  295.  
  296.     Most of these manuals are now included in the standard release of
  297.     NetBSD and FreeBSD in the /usr/share/doc directories.
  298.  
  299. 2.2.1    Partitions
  300.  
  301.     This section describes many of the questions that people ask about 
  302.     hard disk partitioning.
  303.     
  304.     The first is a brief explanation of the BSD system disk partitions.
  305.  
  306. 2.2.1.1    What is a 'disklabel' and why do I need one?
  307.  
  308.     The BSD partition table supplements the DOS partition table.  The 
  309.     entries in this table are meaningful to BSD.  There are eight 
  310.     partitions in the BSD partition table, and they are normally 
  311.     lettered from a: to h:.  This supplemental partition table is
  312.     often referred to as the 'disklabel'.
  313.  
  314.     There have been many good articles in both the mailing lists and
  315.     the newsgroups about disk labeling and partitioning.  I have
  316.     included a few of them here.  NOTE:  This information has not
  317.     really changed since 386BSD 0.1.  Some of the specifics may be
  318.     out of date (the use of the d: partition, for example) but the
  319.     steps and information are still pertinent.
  320.  
  321.     Phil Nelson (pail@cs.wu.edu) writes:
  322.     I have installed several disks that have > 1024 cylinders and 
  323.     have used both DOS and NetBSD.  What has worked for me EVERY TIME
  324.     is the following: 
  325.  
  326.         a) Tell the BIOS that you have 1023 cylinders and the correct
  327.     geometry for heads and sectors.  (This will limit your DOS part 
  328.     of the disk to be LESS than the first 1023 cylinders.) You need 
  329.     to have ALL of  your partition A (/dev/wd?a) in the first 1023 
  330.     cylinders so that the boot program can read the kernel from
  331.     the root partition using the BIOS routines.  (ed note: You can
  332.     specify the full number of cylinders in some BIOSes and it won't
  333.     make any difference.  The DOS part of the disk will always be less
  334.     than 1023 cylinders.)
  335.  
  336.     b) With fdisk, partition your 1023 cylinders as you want them.
  337.  
  338.     c) Use the real geometry in NetBSD.  Once the NetBSD kernel is 
  339.     booted, it does not have the 1024 cylinder limit: that is only 
  340.     for the BIOS.  NetBSD only looks at the BSD disklabel, not the 
  341.     DOS disk label.  The two disk labels (DOS and BSD) may not agree
  342.     on the BSD partition size!  This isn't a problem, since each
  343.     system's idea of the disks geometry is based on different
  344.     information.
  345.  
  346.     d) Use NetBSD!
  347.  
  348.     Chris Jones writes:
  349.  
  350.     I was getting different reports of disk geometry from different 
  351.     programs, so I opened up the computer and read the plastic label 
  352.     on the drive.  I then instructed the BIOS (which, when using 
  353.     auto-detect disagreed) what the disk geometry was.  Then, I 
  354.     used pfdisk to create partitions.  The first thing I did with it 
  355.     was to tell it what the geometry really was.  It said something 
  356.     about a symbolic mapping and dealt with it.  Then I was able to 
  357.     specify all partitions in real units instead of virtual ones.  
  358.     NetBSD boots fine, and if memory serves, it is the only program 
  359.     that has recognized the real disk geometry from the beginning.
  360.  
  361.     This tutorial is provided by by "Hacksaw" <hacksaw@user1.channel1.com>
  362.     and provides an  excellent overview of the hard disk partitioning 
  363.     procedure from start to finish.
  364.  
  365.         "Disk Partitioning for the Compleat Idiot"
  366.  
  367.     There are times, in our trials with our computers, that it becomes
  368.     necessary to mess about with the disklabel. For those not
  369.     knowledgeable of BSD or Unix Systems administration, this somewhat
  370.     simple task can be somewhat daunting. This document is the result of
  371.     my own short experience.
  372.  
  373.     This does not cover physical installation of the disk. For those who
  374.     are having trouble with that, I direct you to any of the fine manuals
  375.     dealing with hard drives and your hardware.
  376.  
  377.     It also does not deal with the vagaries of the DOS partition manager.
  378.     It assumes you have done that as well, if need be...
  379.  
  380.     After the drive is physically installed and is recognized in the BSD
  381.     startup, and it mentions both your drives, in the order you expect
  382.     them... Or perhaps just the one, if you had special problems with
  383.     installation. Now all you have to do is "disklabel" the drive... Well,
  384.     what is *THAT*??? 
  385.  
  386.     The disklabel is used by the kernel and other utilities to tell how
  387.     you want or have the drive set up *logically*. 
  388.  
  389.     In a beautiful world, we might have a very free hand at this set-up
  390.     and expect it to work. Unfortunately, the authors of the software
  391.     dealing with the hard drives either decided or were forced by
  392.     circumstance to make certain things about the disklabel inviolate. 
  393.     
  394.     When you let the installation disk set the disklabel for you first
  395.     drive it comes out like this:
  396. <pre>
  397.  
  398.         The a: partition is the primary partition.
  399.         The b: partition is the swap partition.
  400.         The c: partition is the amount of the disk used by 386bsd 
  401.             (swap and data)
  402.         The d: partition is the entire disk (on the PC version only).
  403. </pre>
  404.  
  405.     Of these, the only one that could be different is a:... 
  406.  
  407.     (Note for those of us who have spent far too much time using DOS: the
  408.     labels a: b: c: d: e: f: g: h: DO NOT refer to DOS drives, but to
  409.     partitions in your 386bsd partition... confusing, eh?  For the sake 
  410.     of consistency I will never make a reference to DOS drives except by
  411.     saying something like "DOS drive C:". )
  412.  
  413.     It's possible to divide up the disk a bit differently, but three
  414.     things MUST be:
  415.  
  416.     c: must refer to every cylinder you wish 386bsd to use, either
  417.     for your data or the swap space. 
  418.  
  419.     b: Must always refer to a swap partition. Note that on any
  420.     other than the first disk it does not have to, but if you
  421.     enable swapping on that drive, and you are using b: for
  422.     something else, that something else will be killed.
  423.  
  424.     The reason for this is simple: It's hard coded in.
  425.  
  426.     "WHY?" you ask? (I did...) Probably time constraints, maybe tradition.
  427.     But if you look at the code in "isofs" and "ufs" in your sys.386bsd
  428.     directory, you will see numerous comments asking some of the same
  429.     questions, which leads me to believe this may change in the future,
  430.     making our lives both more complicated and easier at the same time...
  431.  
  432.     Getting past the esoteric explanations, here is a method for figuring
  433.     out and "labeling" your disk.
  434.  
  435.     We'll start with the disklabel from my second disk, in the form most
  436.     understandable by humans... #'s signify the start of a comment.
  437.  
  438. <pre>
  439.     # /dev/rwd1d:
  440.     type: ESDI
  441.     disk: maxtor7245
  442.     label: 
  443.     flags:
  444.     bytes/sector: 512
  445.     sectors/track: 31
  446.     tracks/cylinder: 16
  447.     sectors/cylinder: 496
  448.     cylinders: 967
  449.     rpm: 3600
  450.     interleave: 1
  451.     trackskew: 0
  452.     cylinderskew: 0
  453.     headswitch: 0        # milliseconds
  454.     track-to-track seek: 0    # milliseconds
  455.     drivedata: 0 
  456.     
  457.     5 partitions:
  458.     #      size  offset  fstype [fsize bsize   cpg]
  459.       a:   198400       0  4.2BSD    512  4096    16     # (Cyl.    0 - 399)
  460.       b:    31744  447392    swap                      # (Cyl.  902 - 965)
  461.       c:   479136       0  unused      0     0           # (Cyl.    0 - 965)
  462.       d:   479136       0  unused      0     0           # (Cyl.    0 - 965)
  463.       e:   248992  198400  4.2BSD    512  4096    16    # (Cyl.  400 - 901)
  464. </pre>
  465.     
  466.     Some math:
  467.     Looking at the comments at the end and the size and offset columns,
  468.     size is a function of (last - first + 1) * sectors per cylinder:
  469.     a: 399 - 0 + 1 = 400 * 496 = 198400
  470.     b: 965 - 902 + 1 = 64 * 496 = 31744
  471.     c: & d: (Since I have no DOS partition, whatsoever)
  472.           965 - 0 + 1 = 966 * 496 = 479136
  473.     e: 901 - 400 + 1= 502 * 496 = 248992
  474.     
  475.     248992 + 198400 + 31744 = 479136 (all the parts should equal the whole)
  476.     
  477.     Some things I discovered  (for all you in novice land like me...)
  478.     
  479.     1. As you can see this disk has 967 cylinders, but I only refer to 966
  480.     of them, 0 - 965... This is because it's good practice to leave the
  481.     "Landing Zone" cylinder out of it... This is usually the last
  482.     cylinder, and it's where the read/write heads hang out when your disk
  483.     is off...
  484.  
  485.     Note from TSgt Dave:
  486.  
  487.     Most modern drive heads come to rest on a polished surface inside the 
  488.     highest cylinder.  I could be mistaken, of course, and the Hard Drive 
  489.     Bible (or other appropriate reference manual) will tell the tale for 
  490.     each drive.
  491.  
  492.     2. a: can be a regular partition, b: should be swap, c: everything
  493.     386bsd will get to use, including swap. d: is the entire disk from 
  494.     0 - (cylinder_per_disk - 2)   [leaving out the Landing Zone]
  495.  
  496.     On the boot drive (The drive that actually contains the kernel), a: 
  497.     is the boot partition.  On all other drives, it is a regular partition.
  498.     Regardless of whether you are using DOS or not, the entire a:
  499.     partition must reside completely within the first 1024 sectors.
  500.     This is a limitation of the PC architecture.
  501.  
  502.     You can then use e - h for your other partitions. I am not sure
  503.     whether you could specify b: as other than a swap partition and not
  504.     run into trouble, but you could surely make it a zero sized one
  505.     starting and stopping on the Landing Zone...
  506.  
  507.     Note from TSgt Dave:
  508.  
  509.     This is a good idea.  Another way to accomplish this is to
  510.     simply not specify it in the map.
  511.  
  512.     3. Stupid human trick: When doing the math don't forget that 400 - 900
  513.     refers to 50*1* cylinders. I did, for a while. No great problem I
  514.     suspect, but why waste a cylinder...
  515.  
  516.     4. newfs'ing really is that simple if you have the label right:
  517.     "newfs /dev/rwd?x config_template" where the question mark is the 
  518.     physical disk, the x is a partition letter, and the config_template 
  519.     is the configuration from /etc/disktab for your disk drive. 
  520.  
  521.     * NOTE:  This is a thumbnail sketch; read the man page to verify all 
  522.     of the options and be sure about how to proceed...
  523.     
  524.     5. then fsck the partition: 
  525.     fsck /dev/rwd?x 
  526.     
  527.     Don't forget that fsck should be run on the RAW device.
  528.  
  529.     6. As long as it checks out, you can then mount it and do disk things
  530.     with it...
  531.  
  532.     7. Add it to the fstab... (follow the man page).  Don't forget 
  533.     that your new swap partition won't work if your kernel isn't 
  534.     configured for it, but it won't cause you any problem to have 
  535.     it there. 
  536.  
  537.     One last note from TSgt Dave:
  538.  
  539.     And I have yet to figure out a way to determine if it is or
  540.     isn't using the swap partition anyway.  There is a program called
  541.     'swapinfo' and it is part of the NetBSD source tree.  On my system, 
  542.     it tells me that I never use the swap area. :)
  543.  
  544.     A note for those trying to use the CCD: to figure out what the
  545.     disk label should be for your concatenated device, assuming
  546.     your disks are identical, just add up the cylinders (minus the
  547.     ones your reserved for the individual disk labels). I know
  548.     this works for purely concatenated (not striped) IDE disks, I
  549.     am assuming it should work on stripped SCSI disks.
  550.  
  551.     Commonly used definitions:
  552.  
  553.     bsize:
  554.     Block Size:  This is the smallest allocatable area on a disk file 
  555.     system, sort of.  A file uses the maximum amount of blocks until it
  556.     can not completely fill up a block. 
  557.  
  558.     fsize:
  559.     Fragment Size:  This is the size of the 'leftover' data that didn't
  560.     fit into a full block.  For example, assuming a using an 8K Block
  561.     Size/1K Fragment Size, a 34.5K file, would use up 4-8K Blocks (4 *
  562.     8K = 32K) and 3 1K fragments (3 * 1K = 3K).  There is 512 bytes of
  563.     wasted space, since 32K + 3K = 35K, which is 512 bytes larger than
  564.     34.5K.  If you want to reduce the amount of wasted space, you can
  565.     reduce your fragment size, but you also reduce the amount of data
  566.     you read at one time, so your disk performance decreases also.
  567.     A good setup is 8K/1K for performance, but if you are really
  568.     concerned about wasted space you can consider using a 4K/512byte
  569.     filesystem.
  570.  
  571.     For further information, find an article that explains the Berkeley
  572.     FFS in more detail.
  573.  
  574.     cpg:
  575.     Cylinders Per Group, it determines the cylinder group size, which 
  576.     in turn determines the number and location of the alternate 
  577.     superblocks.
  578.  
  579.  
  580. 2.2.1.2    What other kinds of information do I need if I really want to
  581.     tune my hard drive's performance in conjunction with a newfs?
  582.  
  583.     Having taken Aim's suggestion and changed my newfs values, I 
  584.     think I've now made some empirical observations that suggest 
  585.     that the defaults for newfs should definitely be changed.
  586.  
  587.     With all the disks I tested with, -n 1 (which isn't even 
  588.     *documented!*) provided greatly improved performance, as 
  589.     opposed to all other values of -n.  I think that with 
  590.     sector-addressed drives with complex physical geometries, 
  591.     rotational position optimization is a technique which is no 
  592.     longer valid.
  593.  
  594.     If _anyone_ has _any_ disk larger than 300MB or so (or even 
  595.     a small disk) manufactured within the last few years for which 
  596.     larger values of -n produce better performance than -n 1, I'm 
  597.     very curious to hear about it.  I'd be particularly interested 
  598.     in any disk for which the default value produces optimal results.
  599.  
  600.     Increasing maxcontig seemed to always improve write scores, but 
  601.     values of maxcontig above 16 seemed to have a noticeable _negative_ 
  602.     impact on read performance.  -a 512, for example, on the disk in 
  603.     my machine at home, yielded a peak write rate (4MB file, 8K record 
  604.     size) of 4.7MB/s, much better than the 4.3MB/s value for -a 64, 
  605.     but read performance was reduced from 2.6MB/s to 2.1MB/s.  I do 
  606.     not understand why this is the case, and I'd love suggestions.
  607.  
  608.     I believe that with rotational position optimization turned 
  609.     off (-n 1), the value of the -r option is of no consequence.  I 
  610.     believe that the fact that with the default value for -n, the 
  611.     -r option seemed to have little or no impact on performance 
  612.     serves to demonstrate that rotational optimization does not 
  613.     work correctly on modern drives.
  614.  
  615.     The default value of the -d option also produces much worse 
  616.     results than -d 0.  I'm probably inexact up above; I believe 
  617.     that -n 1 -d 0 is what turns off rotational position optimization 
  618.     entirely.  I'm all for it. :-)
  619.  
  620.     I suggest that the defaults for newfs be changed to:
  621.  
  622. <pre>
  623.         -n 1 -d 0 -a 16 -r 5400
  624. </pre>
  625.  
  626.     The -r value just in case someone decides to try playing with 
  627.     rotational position optimization for some incomprehensible 
  628.     reason.  Though actually, anyone with a disk where said 
  629.     optimization is a win might want -r 3600 after all.
  630.  
  631.     If someone can explain why values of -a above 16 seem to 
  632.     negatively impact read performance, I'm all for making -a very 
  633.     very large, like 512 or 1024 -- in this case the filesystem 
  634.     code will automatically limit maxcontig to the maximum transfer 
  635.     size for a given controller/disk, right?  What are some typical 
  636.     such sizes?  Why does -a 512 hurt read performance so much, and 
  637.     how can it be fixed?  From comments by Larry McVoy, a good 
  638.     implementation of UFS with clustering will yield disk speed 
  639.     on writes, and about 25% less on reads.
  640.  
  641.     Right now, on my hardware at least, we seem to _surpass_ 
  642.     slightly the speed of raw writes to the disk device on writes, 
  643.     but on reads we lose big as the maxcontig value goes up, and we 
  644.     seem to lose worst on large file/record sizes, where the raw 
  645.     device delivers about 5MB/s in my case, but with -a 512 I get 
  646.     only about 2.5MB/s under UFS.
  647.  
  648.     If you can't guess, I'm incredibly curious as to why the value 
  649.     of -a affects reads as much as it does, or at all, for that matter.
  650.  
  651.     Still, we don't do so badly -- with -a 16, we pretty much hit 
  652.     Larry's "good" value on reads of 75% efficiency, and we still 
  653.     just barely surpass the raw device write figures.  (I am very, 
  654.     very, very curious as to how this is possible at all.  Anyone?)
  655.  
  656.  
  657. 2.2.2    Common Disk Label Problems.
  658.  
  659. 2.2.2.1    Increasing the *BSD partition size.
  660.  
  661.     There is no easy way to increase this swap partition without 
  662.     relabeling the drive.   Unfortunately, relabeling usually involves 
  663.     reinstalling.  That involves re-doing just about everything you have 
  664.     just finished doing.  The good news is that if all you have done is 
  665.     the base installation, you don't have a lot of time and energy 
  666.     invested in the system.  Take the time, and make sure that your swap 
  667.     space is at least as big as your memory; many people recommend even
  668.     larger.  There is no real limit to the size that this space can
  669.     take.  If you have two disk drives, you can have space space on both.
  670.     Simply follow the instructions above, and you will be all set.
  671.     If your swap space is smaller than your real memory, system core 
  672.     dumps will be disabled.
  673.  
  674.     If you have compiled in the VNODEPAGER option in your config
  675.     file, you can use vnode files for swap space.   The precise
  676.     details are exaplined in the man pages, but the easiest way to
  677.     start is to include the following line in your /etc/fstab:
  678.  
  679.     /dev/vnd0b    swap    swap    sw
  680.  
  681.     Defining the file for the vnode is fairly straightforward:
  682.  
  683.     vnconfig -c /tmp/swapfile /dev/vnd0b
  684.  
  685.     and actually making it swap is as simple as 
  686.  
  687.     swapon /dev/vnd0b
  688.  
  689.     From there, the rest of your questions should be answerable from
  690.     the vnconfig manpage.
  691.  
  692.  
  693. 2.2.2.2    I can access the DOS partition on my second disk from Unix but not 
  694.     DOS?  Any suggestions?
  695.  
  696.     One kinky problem that almost got me was when I tried to disklabel 
  697.     my second drive in order to use the DOS partition on it, and use 
  698.     the rest as swap for BSD (FreeBSD-1.0 Eps, SCSI drive on an 
  699.     AHA1542B, to be exact). The DOS partition was visible from UNIX, 
  700.     but *not* from DOS.
  701.  
  702.     What I tried to do:
  703.         Using PFDISK (from DOS), make one big DOS partition at the start 
  704.         and use the rest for a BSD partition (type 165).  Something that 
  705.         came out like
  706. <pre>
  707.           1    6    0    69 DOSbi # ..
  708.           2    165  70    98 unkno
  709. </pre>
  710.         for a 99 cyl drive.
  711.  
  712.         Using BSD disklabel generate disk description/label as documented 
  713.         in the FAQ. Make only 'c' (total BSD DOS part), 'd' (complete disk) 
  714.         and 'b' (intended swap) BSD partitions.
  715.  
  716.     Problem:
  717.         When writing the label, disklabel would ask about overwriting DOS
  718.         partition table.  Whether I said y or n, the DOS partition table
  719.         was screwed up, as seen from DOS (BSD saw the DOS file system
  720.         very nicely indeed).
  721.  
  722.     Cause, solution:
  723.         BSD disklabel wants to write the label to the start of the 'a' 
  724.         partition; I had *not* defined an 'a' partition (since I was 
  725.         only using the disk for swap).  This tells disklabel that the 'a'
  726.         partition is the start of the disk, which means there is no DOS
  727.         partition.  Disklabel then writes the label at the start of the 
  728.         drive, which is why it talks about overwriting (aha!); this is 
  729.         *bad* for the DOS partition table.  One solution is to have a 
  730.         non-empty (e.g. one cylinder) 'a' partition at the start of the 
  731.         BSD part of the disk, and resize the 'b' swap partition 
  732.         accordingly.  Now everything works just fine.  Note that
  733.         this solution can be used whenever you want the DOS
  734.         partition table to be safe and the DOS partition to be
  735.         mountable.
  736.  
  737.         One other fly in this ointment.  The disklabel program has 
  738.         historically asked "Overwrite disk with DOS-partition [n]: "
  739.         then the normal inclination is to believe the prompt and
  740.         press return for 'no'.  The default answer may or may not be
  741.         'no'.  There are several versions of disklabel where the
  742.         default answer is actually 'yes' even though the prompt
  743.         implies that you can press return and get 'no'.  In this case,
  744.         it might be best to assume that the default answer doesn't 
  745.         exist until you have had a chance to actually look at the
  746.         disklabel code.
  747.  
  748.  
  749. 2.2.2.3    I want to use my entire 2 Gig drive as the root partition.  Why
  750.     doesn't it work?
  751.  
  752.     The easiest answer is the architecture of the machine has gotten
  753.     you.  Because of the limitations of the BIOS, everything the
  754.     boot process needs must reside in the first 1023 cylinders on
  755.     the disk.  Most really big drives have more 'real' tracks than
  756.     this, so DOS tries to translate the drive so it doesn't.  The
  757.     *BSD systems don't; they rely on the disk geometry being
  758.     correct, or at least the same as the controller thinks it is.
  759.     Once the system is up and running, the BIOS is disabled.  This
  760.     means that the system no longer has that 1023 track limitation.
  761.     What does this mean to you?  Make sure that the root partition
  762.     (the a: partition above) of your boot drive does not extend 
  763.     beyond track 1023.  If you have a large DOS partition that 
  764.     covers nearly all of that, you may need to make a VERY small 
  765.     root partition to make absolutely certain the root does not 
  766.     extend past 1023.
  767.  
  768.  
  769. 2.5.3    How do I set up the system so that I can boot from more than one
  770.     operating system/file-loader without using floppies?
  771.     
  772.     There are many people that wish to be able to boot DOS or 386bsd 
  773.     at will.  There are several programs that allow this.  The 
  774.     program "os-bs" is one such program, "BOOTEASY" is another, and 
  775.     there are three or four others.  There are problems in some 
  776.     configurations using the os/2 boot manager for this, so beware.  
  777.     
  778.     In addition to being able to boot from either of two partitions, 
  779.     some people want to operate more than one disk drive (and perhaps 
  780.     boot from either as well).  Christoph Robitschko provided one 
  781.     description of this.  Since there are virtually limitless 
  782.     possibilities for configurations for BSD systems, it will be 
  783.     impossible to answer all of the possible questions about these 
  784.     features.  Many people operate with multiple disk drives on one 
  785.     or more controllers.  
  786.  
  787.     Yu-Han Ting provides this tutorial on partitioning and booting
  788.     multiple systems with a single hard disk.
  789.  
  790.  
  791. 2.2.3    How do I get the system to boot from the second hard drive?
  792.  
  793.     Julian Elischer (julian@jules.dialix.oz.au) adds:
  794.  
  795.     To make the boot code default to drive 1 look in 
  796.     /sys/{arch/}i386/bootboot.c for the following (or similar.  The
  797.     code may have changed a little and may be in a different 
  798.     directory:
  799. <pre>
  800.  
  801. loadstart:
  802.  
  803.     /***************************************************************\
  804.         * As a default set it to the first partition of the first    *
  805.         * floppy or hard drive                        *
  806.       \***************************************************************/
  807.         part = unit = 0;
  808.         maj = (drive&0x80 ? 0 : 2);             /* a good first bet */
  809.         name = names[currname++];
  810.  
  811.  
  812.     and change it to:
  813.  
  814.  
  815. loadstart:
  816.  
  817.     /***************************************************************\
  818.     * As a default set it to the first partition of the SECOND    *
  819.     * floppy or hard drive                        *
  820.     \***************************************************************/
  821.     part = 0;
  822.     unit = (drive & 0x7F);
  823.     maj = (drive&0x80 ? 0 : 2);             /* a good first bet */
  824.     name = names[currname++];
  825.  
  826. </pre>
  827.         This way, whatever drive the boot blocks are loaded from, it has 
  828.     that as default.  In my case, I get wd(0,a) when I have my netbsd 
  829.     drive as C:, and wd(1,a) when I have it as D:.  (I've been 
  830.     swapping drives left right and center the last day getting dos 
  831.     to boot on one drive and netbsd on another).
  832.  
  833.  
  834. 2.2.4    How do I disklabel my second hard drive?
  835.  
  836.     The obvious answer is to use 'disklabel -w -r /dev/rwd1d'.  
  837.     Unfortunately, this does not always put a real disklabel on the
  838.     drive.  The symptom is that the drive labels and can be used
  839.     until the system is reset, at which point the system tries to
  840.     read the label from the disk.  It was never actually written to 
  841.     the disk, so the operation fails.
  842.  
  843.     There are also reports that the /usr/mdec files are corrupted in 
  844.     some of the distributions.  If you have tried everything else, you
  845.     can either load the files from one of the many archive sites that
  846.     keep the /usr/mdec files around, or you can recompile them 
  847.     yourself.
  848.  
  849.     Instead of specifying the entire device path name (i.e. /dev/rsd0c), 
  850.     only specify the two letters of the device type and the unit number 
  851.     (i.e. "sd0").  Disklabel figures out the rest, and it works.
  852.  
  853.     For instance, the following line works for me:
  854.  
  855.       disklabel -w -r sd0 <drive-type>
  856.  
  857.     assuming of course that the boot block files are in /usr/mdec/ and
  858.     the <drive-type> is in the /etc/disktab.
  859.  
  860.     This is also a symptom of some of the versions of FreeBSD and 
  861.     NetBSD where the disklabel code was 'fixed' to only write a 
  862.     disklabel on a drive with a disklabel.  Oops.
  863.  
  864.     Also, some folks want to mix SCSI and IDE drive together in the
  865.     same system.
  866.  
  867.     A report about someone with an Austin Tower (486DX/50), AMI BIOS, 
  868.     Caviar 2250 IDE, Adaptec 1542CF, and Toshiba SCSI disk (1.2GB)
  869.     posted this set of instructions:
  870.  
  871.     The BIOS is configured to boot from the IDE drive as type 47 
  872.     (user defined).  The IDE drive currently has NetBSD 1.0 BETA on it.
  873.  
  874.     The 1542CF switches are 1-4 off (open), 5-8 on.  The meaning is as 
  875.     follows:
  876.  
  877. <pre>
  878.         1(off)=Termination software controlled.
  879.         2,3,4(off)=I/O Port x330.
  880.         5(on)=disable floppy.  I use the Austin floppy controller.
  881.         6,7,8(on)=disable Adaptec BIOS.
  882. </pre>
  883.  
  884.     Note that this means the Adaptec 1542CF on-board setup program is 
  885.     also disabled.  If I need to change my SCSI termination, I first 
  886.     have to enable the Adapted BIOS (sw 6,7,8), enter 1542CF setup 
  887.     and change termination, then change switches again.  
  888.  
  889.     I could not configure the system to boot from the SCSI drive having 
  890.     the IDE as a secondary drive.
  891.  
  892.     (Ed Note: There is more news on this front all of the time.  
  893.     Since I personally don't have much interest in doing this (I 
  894.     boot from my IDE drives and mount my SCSI drives) I don't see 
  895.     the problem. )
  896.  
  897.  
  898. 2.2.5    NetBSD and FreeBSD cannot handle disk geometry translations, 
  899.     but it turns out that my disk geometry is translated.  It has 
  900.     five zones, each with a different sec/track!  What kind of 
  901.     things can I do about the disk translation my hard disk 
  902.     controller uses?
  903.  
  904.     It turns out that what *BSD cannot handle is not translation, but
  905.     translation that changes during the boot-up process.  For example,
  906.     the configuration above will work just fine IF the translation
  907.     that the controller uses when it powers up is the same one that it
  908.     uses when it boots.  On many PC clones, the BIOS loads a different
  909.     geometry after it boots to make the geometry agree with one that is
  910.     loaded in CMOS.  This is the fatal flaw for *BSD.  Fortunately, 
  911.     once the problem has been identified, it is relatively easy to
  912.     handle.  Simply make sure that the BIOS is configured to set the
  913.     controller to the translated geometry that the card powers up 
  914.     with.
  915.     
  916.     There are several ways to get around these problems with disk 
  917.     geometry translation.  If you are using a SCSI controller, you can
  918.     specify the geometry such that each 'cylinder' is 1 Meg (64 sectors
  919.     by 32 tracks for example).  Most SCSI controllers will blithely
  920.     ignore what YOU tell it the geometry is and press on using this
  921.     type of 1 Meg cylinder had to get the job done.  NOTE:  If you are
  922.     going to try this, try to ensure that each 'pseudo cylinder' is a
  923.     reasonable size (like 1Meg or 512K).
  924.  
  925.     An interesting method for dealing with disk geometry comes from 
  926.     Alan Barrett (barrett@lucy.ee.und.ac.za):
  927.  
  928.     This sort of problem happens when you try to install NetBSD in a
  929.     partition of a disk whose controller does geometry translation.  I
  930.     have not had time to find the bug that causes the problem.  One 
  931.     option is to disable the geometry translation:  Use ide_conf to 
  932.     find the true geometry, use the CMOS setup program to tell your 
  933.     BIOS about the true geometry, and reformat everything.  I 
  934.     successfully did that on one of my systems.
  935.     
  936.     If you are not able to, or do not wish to, disable the geometry
  937.     translation then the following work-around might work for you.  
  938.     This requires that the disk have unused space on {cylinder 0, 
  939.     head 0}, from sector 2 to sector 16.  Almost all DOS disks that 
  940.     I have ever seen satisfy this condition, because they usually 
  941.     start the DOS partition in {cylinder 0, head 0, sector 1}, 
  942.     leaving most of {cylinder 0, head 0} unused apart from the 
  943.     partition sector in {cylinder 0, head 0, sector 1}.  However, 
  944.     many partitioning programs like to hide this fact from you, 
  945.     and pretend that the DOS partition starts at the front of the 
  946.     disk; don't believe them until you have checked with a raw 
  947.     disk editor.
  948.  
  949.         0.  Make sure you have adequate backups.
  950.  
  951.         1.  Use a partition sector editor (fdisk, pfdisk, os-bs, 
  952.             booteasy, Norton utilities, whatever) to mark the partition 
  953.             that you want for NetBSD as bootable with type 0xA5 
  954.             (decimal 165).
  955.  
  956.         2.  Halt the system.  Boot the NetBSD kernel copy floppy.  
  957.         When it asks you to insert the floppy for the root file 
  958.         system, switch to the Install-1 floppy and press enter.
  959.  
  960.         3.  Answer all the installation prompts, using numbers based 
  961.         on the translated geometry.  When it asks if you really 
  962.         want to label the disk, be brave and say yes.
  963.  
  964.         4.  Halt the system.  Boot to DOS.  Run a disk editor program, 
  965.         such as Norton utilities.
  966.  
  967.         5.1.  Verify that the partition sector in {cyl 0, head 0, 
  968.         sec 1} is undamaged.  Verify that the disklabel program 
  969.         run as part of the NetBSD install has written the NetBSD 
  970.         primary boot block to {cylinder xx, head 0, sector 1}, 
  971.         written the disk label to {cyl xx, head 0, sec 2}, and 
  972.         written the secondary boot program to {cyl xx, head 0, 
  973.         sectors 3 to 16}.  ("xx" represents the translated 
  974.         cylinder number you chose for the start of the NetBSD 
  975.         partition.  You did choose to start on a cylinder boundary, 
  976.         I hope.)
  977.  
  978.         5.2.  Verify that the space in {cyl 0, head 0, sectors 2 to 
  979.         16} is still available.  Copy the fifteen sectors containing 
  980.         the NetBSD disk label and secondary boot block from {cyl 
  981.         xx, head 0, sectors 2 to 16} to {cyl 0, head 0, sectors 2 
  982.         to 16}.
  983.  
  984.         5.3.  Edit the partition table in {cyl 0, head 0, sec 1}.  
  985.         Change the system ID of the NetBSD partition from 0xA5 
  986.         (decimal 165) to something else (I use 0xA4, decimal 164), 
  987.         but keep it flagged as bootable.  This will let you boot 
  988.         to the NetBSD primary boot block.
  989.  
  990.         5.4.  Edit one of the previously unused partition table entries 
  991.         (I hope you have one), to contain the following information: 
  992.         {sys id = 0xA5, boot flag = 0, start cylinder/head/sector = 
  993.         0/0/1, end cylinder/head/sector = anything, initial 
  994.         offset = 0, total size = anything}.  This will tell the 
  995.         NetBSD primary boot block, or a NetBSD system booted from 
  996.         a floppy, that it should look for the NetBSD disk label 
  997.         in {cyl 0, head 0, sec 2}.
  998.  
  999.         6.  Halt the system.  Boot the NetBSD kernel copy floppy.  When it
  1000.             asks you to insert the floppy for the root file system, just 
  1001.             press enter without changing disks.
  1002.  
  1003.         7.  Copy the kernel, and proceed with the rest of the installation 
  1004.             as per the instructions provided with NetBSD.  It should now 
  1005.             work because of the trickery with the partition table etc.
  1006.  
  1007. 2.2.6    I am having trouble installing on the EIDE hard drive.  What are
  1008.     some of the things that I need to look into?
  1009.     
  1010.     Bradley W Mazurek (bwm260@skorpio3.usask.ca) writes:
  1011.  
  1012.     First, I had to change the IDE translation mode in my BIOS.  
  1013.     Rather than using LBA, I used Standard CHS.  When I went in 
  1014.     to repartition the disk for DOS, DOS reported that the drive 
  1015.     was only 523Mb (1023cyl, 64h, 63sec/tr), rather than the true 
  1016.     geometry (2100cyl, 64h, 63sec/tr) but I didn't worry about it. 
  1017.  
  1018.     Next I created my DOS partition.  I partitioned the disk so that 
  1019.     cylinders 1-999 were DOS.  That left cylinders 1000-1023 for 
  1020.     NetBSD.  Lots of room!  :)  Anyway, on a hunch, a friend and I 
  1021.     were hoping NetBSD didn't look at the ending cylinder entry 
  1022.     (1023) of the partition table.  Next I calculated the length 
  1023.     of the partition from 1000-2100, put this into the partition 
  1024.     table using the disk editor.  The numbers weren't consistent in 
  1025.     the partition table, but DOS ignored the Non-DOS partition, 
  1026.     NetBSD was happy...and we've (DOS, NetBSD and my remaining hair) 
  1027.     all lived happily ever after....
  1028.  
  1029.     [Ed.Note.  The partition table needs to correctly identify the
  1030.     NetBSD portion of the disk, regardless of whether or not DOS can
  1031.     handle it.  See the section on hard drive partitioning for more
  1032.     information...]
  1033.  
  1034.     My suggestion is to try to find an IDE translation mode in your 
  1035.     BIOS for which the number of heads and number of sectors per track 
  1036.     is consistent with the true geometry of your hard drive.  Then 
  1037.     perhaps this trick will work.
  1038.  
  1039.      1. there is _different_ behavior, if one executes
  1040. <pre>
  1041.         disklabel wd0                           or
  1042.         disklabel /dev/wd0c                     or
  1043.         disklabel /dev/wd0d
  1044. </pre>
  1045.         It didn't get quite clear to me, what these differences are exactly.
  1046.  
  1047.      2. Any disklabel write will change not only the data on disk, but
  1048.         also some data-structures in core. For example, if one tries to 
  1049.     write a complete different disklabel to a complete different place, 
  1050.     say /dev/wd0h, there will be strangeness afterwards.  That means, 
  1051.     writing a disklabel and then reading it back, does not have to 
  1052.     mean that the write did succeed.  There is an option -r to 
  1053.     disklabel which is said to access the disk directly, but, as 
  1054.     I noticed, the core-data is updated thereby, too.
  1055.  
  1056.     The following paper explained to me what should happen in sequence 
  1057.     on boot: /usr/src/sys/arch/i386/boot/README.386BSD. It says (in 
  1058.     short):
  1059.  
  1060.     [...]
  1061.  
  1062.     1/ the BIOS loads the first block of the disk (called the Master 
  1063.     Boot Record or MBR) and if it has the correct magic numbers, jumps 
  1064.     into it:
  1065.  
  1066.     2/ The  MBR code, looks at the Partition table that is embedded 
  1067.     within it, to determine which is the partition to boot from. If 
  1068.     you are using the os-bs bootblocks (highly recommended) then it 
  1069.     will give you a menu to choose from.
  1070.  
  1071.     3/ The MBR will load the first record of the selected partition 
  1072.     and if it has (the same) magic numbers, jumps into it. In 386bsd 
  1073.     this is the first stage boot, (or boot1) it is represented in 
  1074.     /usr/mdec by wdboot, asboot and sdboot. If the disk has been set 
  1075.     up without DOS partitioning then this block will be at block zero, 
  1076.     and will have been loaded directly by the BIOS.
  1077.  
  1078.     4/ Boot1 will look at block0 (which might be itself if there are 
  1079.     no DOS partitions) and will find the 386bsd partition, and using 
  1080.     the information regarding the start position of that partition, 
  1081.     will load the next 13 sectors or so, to around 60000 
  1082.     (640k - 256k). and will jump into it at the appropriate entry 
  1083.     point. Since boot1 and boot2 were compiled together as one file 
  1084.     and then split later, boot1 knows the exact position within 
  1085.     boot2 of the entry point.
  1086.  
  1087.     Boot 1 also contains a compiled in DOS partition table (in case 
  1088.     it is at block 0), which contains a 386bsd partition starting at 
  1089.     0. This ensures that the same code can work whether or not boot1 
  1090.     is at block 0.
  1091.  
  1092.     [...]
  1093.  
  1094. 2.2.7    My disk label is complaining about '256 heads' in the disklabel.
  1095.     This is obviously bogus, but it doesn't seem to be hurting anything.
  1096.     Is it Okay or should I fix it?
  1097.  
  1098.     Steve Gilbert (gilbert@cs.utk.edu) provided us with this answer:
  1099.  
  1100.         First, If you do a "fdisk wd1" (It may be wd1d, I don't
  1101.     remember what it wanted), it will list out the partition table
  1102.     for you.  This is something totally different from BSD's idea
  1103.     of a partition, mind you.  The last partition (#3) should be BSD.
  1104.     All of those figures are correct except for the "ending head" field
  1105.     which is set to 255 (thus, 256 heads).
  1106.  
  1107.     1. BACK UP EVERYTHING!
  1108.  
  1109.     2. fdisk -u wd1
  1110.  
  1111.         ...this will prompt you for the stuff you want to change.
  1112.         Remember, everything is correct except for the ending
  1113.         head.  Accept all the default values it gives you at first.
  1114.         You'll have to tell it that you want to explicitly define
  1115.         the beginning and ending values.
  1116.  
  1117.     3. My 420 MB Conner drive has 16 heads, so I just enter 15 as
  1118.        the ending head number.
  1119.  
  1120.     4. When you are back out of fdisk, you can do another fdisk wd1
  1121.        to make sure the values are correct.  Don't worry if you mess up,
  1122.        you can always change it again.  Anything you didn't back up is
  1123.        probably gone by now anyway :-)
  1124.  
  1125.     5. Reboot and watch NO error message pop up!
  1126.  
  1127.     ...remember that all you want to do is fdisk the drive.  You do NOT
  1128.     want to run disklabel again or newfs the partitions again.  This will
  1129.     write the incorrect 256 crap back.  I did this three times before
  1130.     I finally got smart and did it right.
  1131.  
  1132.  
  1133. 2.2.8    What are the options for the boot up prompt?
  1134.  
  1135.     The options are supposed to be as follows:
  1136.  
  1137. <pre>
  1138.     -s............... boot into single user mode
  1139.     -a............... ask the user what device to use as root
  1140.               just before mounting it (Not presently supported)
  1141.     -d............... once you have the kernel loaded and VM and such up
  1142.               and going, drop into the kernel debugger.
  1143.               (great for debugging probe code)
  1144. </pre>
  1145.  
  1146.     A related question concerns the options on the 'reboot' program.
  1147.     These flags are as follows:
  1148. <pre>
  1149.     -a    Ask for a file name to reboot from
  1150.     -s    Reboot into single user mode
  1151.     -b    Don't reboot, just halt
  1152.     -r    Use compiled in Root device
  1153.     -c    Invoke the user configuration routines
  1154.     -d    Transfer control to the kernel debugger, if available
  1155.     -v    Print out all potentially important information
  1156. </pre>
  1157.  
  1158.     As with so many other things in the systems, each of these may
  1159.     (or may not) work for FreeBSD or NetBSD.  Your Mileage May Vary.
  1160.  
  1161.     One other note about 'reboot'.  There are some motherboards which
  1162.     do not reboot reliably.  Instead of rebooting, they simply hang.
  1163.     While this isn't a definitive answer, some folks have noticed
  1164.     that have the BIOS relocate option set seems to help them,
  1165.     especially with Micronics motherboards.  If you are having
  1166.     problems with your system not resetting after a reboot, try
  1167.     changing the setting on the BIOS relocation option.
  1168.  
  1169.  
  1170. 2.2.9    I am having trouble installing WRT 'syslogd: bind: Can't assign 
  1171.     requested address' errors.  What are some of the things I should
  1172.     look at?  I also am having trouble with the network: 'starting 
  1173.     network ... ifconfig: localhost: badvalue'.
  1174.  
  1175.     This is caused by incorrect settings in /etc/netstart and/or
  1176.     /etc/hosts.
  1177.  
  1178.     In /etc/hosts, you must have a line that says:
  1179.  
  1180. <pre>
  1181.     127.0.0.1    localhost    localhost.{yourdomainhere}
  1182. </pre>
  1183.  
  1184.     Errors that will result if you don't do this: ifconfig will not
  1185.     be able to figure out what IP address goes with the name
  1186.     'localhost' and you'll get 'localhost: bad value.'
  1187.  
  1188.     In /etc/netstart, you must do:
  1189.  
  1190. <pre>
  1191.         ifconfig lo0 localhost
  1192.         route add {hostname} localhost
  1193. </pre>
  1194.  
  1195.     Errors that will result if you don't do this: the loopback
  1196.     device will not be properly configured and/or you will have no
  1197.     route to it. The result is that programs expecting to have
  1198.     networking enabled (including syslog and friends) will get
  1199.     horribly confused.
  1200.  
  1201.     *AND*, if you're not going to be directly connected to a
  1202.     network, you should change /etc/host.conf to say:
  1203.  
  1204. <pre>
  1205.         hosts
  1206.         bind
  1207. </pre>
  1208.  
  1209.     It's set up the other way around by default. I don't like it
  1210.     that way myself.
  1211.  
  1212.     Errors that can result if you don't do this: if you don't have
  1213.     a nameserver available to you, the resolver will have trouble 
  1214.     translating hostnames into IP addresses.  Bogosity levels will
  1215.     be off the scale. (Note also that if you do have access to a 
  1216.     nameserver, you need to set up /etc/resolv.conf to point to
  1217.     it.)  By changing the order, you'll be telling the resolver to
  1218.     check the host files for matches *first*, then roll over to the 
  1219.     nameserver (if any) if no match is found.
  1220.  
  1221.     Make sure that:
  1222.  
  1223.     - There are no typos in any of the three files mentioned above.
  1224.     - There are no bogus non-ASCII characters in the files
  1225.     mentioned above.
  1226.     - All three files have their read permission bits set.
  1227.  
  1228.     Lastly, be very careful with /etc/hosts.equiv. If you add a
  1229.     hostname to it, say 'otherhost.domain,' then root on
  1230.     otherhost.domain will be able to rsh/rlogin to your machine
  1231.     without a password.
  1232.  
  1233.     Once you have everything set correctly, you should be able to
  1234.     type 'telnet localhost' and establish a connection to yourself. 
  1235.     If you get an error such as 'localhost: unknown host' or
  1236.     'network unreachable' then you still have work to do.
  1237.  
  1238.  
  1239. 2.2.10    When I start up my system, it hangs for three or four minutes
  1240.     during the 'netstart' program.  Our network nameserver is
  1241.     working OK, and I use it all the time; my resolv.conf file says
  1242.     to use the network nameserver.  Why would netstart have
  1243.     such problems using it?  
  1244.  
  1245.     When the system is starting, the nameserver hasn't started yet.
  1246.     If you are using any names that must be resolved, the system
  1247.     will attempt to get the names from the nameserver,  When that
  1248.     fails (three timeouts at one minute apiece) the name will be
  1249.     resolved from the /etc/hosts file (if the name is available).
  1250.  
  1251.     There are essentially two ways to solve the immediate problem.
  1252.     The first is to reduce the number of entries you have in your
  1253.     /etc/hosts file to the absolute minimum you need for booting and
  1254.     change the order for host resolution from 'bind file' to 'file
  1255.     bind'.  If you specify a name in any of your start up files and
  1256.     the name server isn't available, you will still have the hang,
  1257.     but this is only a small annoyance.
  1258.  
  1259.     The second (and generally more effective) way to deal with the
  1260.     problem is to use only numeric addresses  in your /etc/* files.
  1261.     This way, the resolver is never called upon to figure out the
  1262.     addresses and your boot-up will always 'just work'.  This is
  1263.     sometimes more time intensive to set up, since all of the names
  1264.     in the files need to be removed and replaced with numbers.
  1265.     "C'est la vie".
  1266.  
  1267.  
  1268. 2.2.11    I am having trouble getting net aliases to work.  What could
  1269.     some of the problems be?
  1270.  
  1271.     There are many things which will cause network aliases to not
  1272.     work right.  Here are a few:
  1273.  
  1274.     -  Use "netmask 0xffffff00" (or whatever is appropriate) for the 
  1275.        first IP address, and "netmask 0xffffffff" for all aliases that 
  1276.        happen to be in the same (sub)net as the primary one.  The
  1277.        reason this is right (no matter how odd it may seem) is you
  1278.        have multiple interfaces referring to the same network.  You 
  1279.        *have* to chose one of the various interface addresses as the 
  1280.        "gateway" for outgoing packets into this network, you cannot 
  1281.        have them going out through a dozen of addresses simultaneously.  
  1282.        The netmask 0xffffffff prevents the kernel from considering this
  1283.        IP address as a valid gateway (since it's not pointing to any 
  1284.        network at all).
  1285.  
  1286.     The correct syntax in /etc/rc.local for declaring a net address 
  1287.     alias (assuming you are updating the eth0 interface) is:
  1288.  
  1289. <pre>
  1290.         ifconfig eth0 xx.xx.xx.xx netmask 255.255.255.255 alias
  1291.         route add -host xx.xx.xx.xx localhost
  1292.         arp -s eth0 yy.yy.yy.yy.yy.yy proxy
  1293. </pre>
  1294.  
  1295.     Where the xx.xx.xx.xx are the host address for the alias and the
  1296.     yy.yy.yy.yy.yy.yy is the interface MAC address (if appropriate).
  1297.  
  1298.  
  1299. 2.2.12    I'm having trouble with the networking code (specifically the
  1300.     PPP stuff to my ISP).  How can I debug NetBSD's networking?
  1301.  
  1302.     Bring the PPP connection up again.  Retry whatever-it-is that's 
  1303.     failing. 
  1304.  
  1305.     PPP includes a link-level checksum.  Watch the packet counts in 
  1306.     the netstat -I ppp? output over time. Check carefully to see 
  1307.     whether the PPP driver is recording input errors (frames whose 
  1308.     CRC failed.)  Frames with bad checksums are counted in Ierr 
  1309.     field.  A non-zero count indicates _something_, possibly 
  1310.     overruns, is in fact garbling your PPP traffic.  If the packets 
  1311.     are being discarded due to errors at the PPP level, they'll 
  1312.     never even get as far as IP.
  1313.  
  1314.  
  1315.     Also, use netstat (or an SNMP daemon and monitor, if you prefer) 
  1316.     to watch the rate of change of bad packets at the IP and TCP 
  1317.     level.  I run "netstat -p ip" "netstat -p tcp".  One has to 
  1318.     manually compute the rate of change; netstat's -i option means 
  1319.     something different to, say, vmstat's.   (Adding  periodic  
  1320.     sampling and rate-of-change to netstat would be a Cool Project.)
  1321.  
  1322.     At the IP level, the relevant statistics are
  1323. <pre>
  1324.             0 bad header checksums
  1325.             0 with size smaller than minimum
  1326.             0 with data size < data length
  1327.             0 with header length < data size
  1328.             0 with data length < header length
  1329.             0 with bad options
  1330.             0 with incorrect version number
  1331.         [...]
  1332.             0 output packets dropped due to no bufs, etc.
  1333. </pre>
  1334.  
  1335.     At the TCP level,  look for, e.g.,
  1336.  
  1337. <pre>
  1338.             0 discarded for bad checksums
  1339.             0 discarded for bad header offset fields
  1340.             0 discarded because packet too short
  1341. </pre>
  1342.  
  1343.     Any of these being non-zero would support the hypothesis of a 
  1344.     bug in the PPP implementation.  Unlikely, but one never knows.
  1345.  
  1346.     It could be that a TCP ack got munged or dropped by your PPP 
  1347.     link; or possibly somewhere else in the Internet.  That's not 
  1348.     abnormal on busy links.
  1349.  
  1350.     What OS is your FTP peer running?  Is it a pre-2.0.0 Linux or an
  1351.     older version of a commercial Unix? If so, have you tried turning 
  1352.     off rfc1323 on your NetBSD machine??
  1353.  
  1354.  
  1355. 2.2.13    I want to hard wire my SCSI devices to a particular device
  1356.     number.  Is that possible?
  1357.     
  1358.     You can do the numbering any way you please.  Say I had two 
  1359.     controllers.  You could number them as:
  1360.  
  1361. <pre>
  1362.     sd10    at scsibus0 target 0 lun ?
  1363.     sd11    at scsibus0 target 1 lun ?
  1364.     [...]
  1365.     sd20    at scsibus1 target 0 lun ?
  1366.     sd21    at scsibus1 target 1 lun ?
  1367.     [...]
  1368. </pre>
  1369.  
  1370.     Of course, you will need to add devices to the /dev/ directory
  1371.     for each of them, pointing to their correct major and minor
  1372.     numbers.
  1373.  
  1374.     You can also hardwire the 'scsibus' numbers, by doing something 
  1375.     like the following (assuming "whatever" is the SCSI host adapter 
  1376.     driver's name 8-):
  1377.  
  1378.     whatever0    at whateverbus? [whateverbus config info]
  1379.     scsibus0    at whatever0
  1380.  
  1381.     then
  1382.  
  1383. <pre>
  1384.     sd0    at scsibus0 target 0 lun 0
  1385. </pre>
  1386.  
  1387.     etc.
  1388.  
  1389.  
  1390.     That syntax won't work on ports which use 'old config,' but I 
  1391.     believe an appropriate description of how to do it on them has 
  1392.     already been posted.
  1393.  
  1394.     The most common configuration for locked down drive numbers is 
  1395.     actually:
  1396.  
  1397. <pre>
  1398.     sd0    at scsibus0 target 0 lun 0
  1399.     sd1    at scsibus0 target 1 lun 0
  1400.     sd*     at scsibus? target ? lun ?      # SCSI disk drives
  1401. </pre>
  1402.  
  1403.     You can do the same thing with your tapes, CDs, and other SCSI
  1404.     devices as well.
  1405.  
  1406. <pre>
  1407.     st0    at scsibus0 target 6 lun 0
  1408.     st*     at scsibus? target ? lun ?      # SCSI tape drives
  1409.     cd0     at scsibus? target 5 lun 0
  1410.     cd*     at scsibus? target ? lun ?      # SCSI CD-ROM drives
  1411.     etc.
  1412. </pre>
  1413.  
  1414.  
  1415. 2.3    Common installation problems.
  1416.  
  1417.     There are many common installation problems.  This section covers
  1418.     the most basic and common of these problems.  In addition to this
  1419.     section, you should also read through the other sections of the
  1420.     FAQ, since many of the less common questions are answered in other
  1421.     places in the doc.
  1422.  
  1423. 2.3.2    Endless reboot cycles.
  1424.     
  1425.     Another incarnation of this symptom is that the disk geometry on 
  1426.     your disk label (as installed by install) is different than the 
  1427.     geometry your hard drive controller thinks it is using.  This 
  1428.     will most often manifest itself on controllers that insist on 
  1429.     operating in some type of translation mode.  Normally the fix is to 
  1430.     find out what the controller geometry is and make the disk label 
  1431.     agree.  There are programs available to help with this problem.  
  1432.  
  1433.  
  1434. 2.4    The computer just sits there, or 'that isn't right'.
  1435.     
  1436.     This class of problems is sometimes caused by an incorrect FTP of 
  1437.     the boot disk.  Make sure that the files were grabbed in 'binary' 
  1438.     mode and that the size reported back is 1244000 bytes.  Use the 
  1439.     Unix program 'dd' or the DOS program RAWRITE to put these files 
  1440.     onto the diskette.  In addition, this is the 'miscellaneous' 
  1441.     section of the FAQ.  These problems are included here because they
  1442.     are usually preceded by 'I just finished installing...' 
  1443.  
  1444.     Another incarnation of this problem is that, sometimes, the major
  1445.     or minor device numbers for a particular device may not get made
  1446.     correctly in the install (or upgrade) procedure.  If you have a
  1447.     problem where you can install and everything seems to go well
  1448.     until you try to boot onto the hard drive, try running the
  1449.     MAKEDEV script that resides in /dev.  More the file to see what
  1450.     kind of options you should include (if the sd0a drive needs to
  1451.     be fixed, for example, the command './MAKEDEV sd0' should get
  1452.     your devices back on the road.  If that doesn't work, try one of
  1453.     the many things below.  It could be any (or all) of them....
  1454.  
  1455.  
  1456. 2.4.1    The boot disk works all right on one computer but not another. 
  1457.  
  1458.     This could be a problem with many different pieces, some of which
  1459.     are:
  1460.  
  1461.     - Misconfigured hardware.  The iomem, IRQ, and other board
  1462.     settings must match the ones listed in the INSTALL.NOTES.  
  1463.     Unfortunately, the INSTALL.NOTES are on the disk that will 
  1464.     not boot.  You can grab them via FTP from many archive sites.
  1465.     This installation file may have many names.  Look for something
  1466.     kind of obvious (like 'install.notes' or 'readme' or 
  1467.     'configuration guide') and you should find it.  Finally, there
  1468.     have been many reports (particularly with the BusLogic SCSI
  1469.     cards (specifically reported was the BT445C VLB host adapter) 
  1470.     where the system seems to boot up, but starts getting
  1471.     'stray interrupt c' messages.  This is usually caused by people
  1472.     having there SCSI card set up on some IRQ other than the one
  1473.     that the kernel expects.  The factory default for this card
  1474.     seems to be IRQ 12, but the kernel wants the card at IRQ 11.
  1475.     Setting the card (using the configuration program supplied)
  1476.     changes the setting so that it matches the kernel and the card
  1477.     then works.
  1478.  
  1479.     - Unsupported hardware.  There are several SCSI controllers on the 
  1480.     market that are not fully supported by 386bsd.  This is due in
  1481.     large part to the way these controllers work.  Instead of using
  1482.     a standard interface and command set for the controllers, most
  1483.     manufacturers make up their own controller interface language,
  1484.     which is then translated into SCSI commands which are
  1485.     interpreted by the drives. 
  1486.  
  1487.     - One or more of the devices in the /dev directory on the
  1488.     intended root partition was either not created correctly or was
  1489.     not created at all.  Run the program MAKEDEV in the /dev/ directory
  1490.     to ensure that all of the correct devices are built.
  1491.  
  1492.     
  1493. 2.4.2    Really strange errors in the various *BSD flavors.
  1494.  
  1495. 2.4.2.2    Using the new code in NetBSD, I get a "panic: pdti 206067" in 
  1496.     pmap_enter().  What should I do?
  1497.  
  1498.     Increase NKPDE in /sys/i386/include/pmap.h. The largest it should 
  1499.     be 31; see question 3.2.8.1 for other useful values.  Be sure to 
  1500.     keep the changes around as a patch file, since this is one of the 
  1501.     files that will get overwritten during a source code update. 
  1502.     Note that in the versions of NetBSD newer than 1.2.1, this value 
  1503.     is computed, so you won't need to change it.
  1504.  
  1505.  
  1506. 2.4.3a    I get the error "isr 15 and error: isr 17" on an NE2000 card.
  1507. 2.4.3b    I have some card on IRQ2 and it doesn't work; why?
  1508. 2.4.3c    I am getting lousy performance out of my network card.  What are 
  1509.         some of the other possibilities?
  1510.     
  1511.     The description of this problem is that one of the cards in your 
  1512.     system (most likely the VGA card) is either generating interrupts 
  1513.     or is causing the IRQ 2 to be actively disabled.  Older VGA card 
  1514.     used IRQ 2 during vertical retrace to prevent sparklies.
  1515.  
  1516.     One solution would be to plan on not using your Ethernet card
  1517.     (or any other card you want on IRQ 2) until you have rebuilt
  1518.     the kernel so that it expects it at an interrupt other than 
  1519.     IRQ 2 or 9, re-jumper or reconfigure the card to match the IRQ 
  1520.     you have selected, and enable it.  
  1521.     
  1522.     From time to time, this problem will manifest itself as a general
  1523.     tendency of the network card to transfer either very sporadically
  1524.     or very slowly. It is precisely the same problem.
  1525.  
  1526.     James Van Artsdalen (james@bigtex.cactus.org) has offered at
  1527.     least one solution:
  1528.     
  1529.         If this is the problem, you can use Scotch tape to cover
  1530.         the IRQ 2 signal on the VGA's ISA connector.
  1531.     
  1532.     There has been some discussion as to whether scotch tape is really 
  1533.     appropriate inside a card slot.  My answer would be "yes".  This is 
  1534.     because the alternate solution of cutting the trace on the video 
  1535.     board seems, to my mind, to reduce the value of the board.  It is 
  1536.     possible that, in the future, with a bi-partite driver, you would 
  1537.     want to catch the retrace interrupt to get rid of "sparklies" or to 
  1538.     implement a driver for a very high resolution monitor for X.  If 
  1539.     this happens, given a choice between alcohol and solder, I vote for 
  1540.     alcohol.
  1541.  
  1542.     One other thing to look for (if your video card seems to be the
  1543.     culprit) is a jumper which enables or disables the card's IRQ 2. 
  1544.     Newer cards may have a jumper of switch which does this, so take
  1545.     the time and look for it before you get the razor blade out.
  1546.     
  1547.     Either way, you will probably find that your VGA card uses IRQ 2
  1548.     strictly for compatibility with older cards.  With the advent of
  1549.     dual-ported memory for video cards, virtually all of these types
  1550.     of problems have disappeared.
  1551.  
  1552.  
  1553. 2.4.4    What is the difference between IRQ2 and IRQ9?  Are they really
  1554.     the same, or are they really different?  
  1555.  
  1556.     On the XT, there was one interrupt controller, an Intel 8259, which
  1557.     handled 8 interrupts numbered IRQ0 through IRQ7.  IRQs 2 through 7
  1558.     were accessible via bus lines IRQ2 through IRQ7.
  1559.  
  1560.     The AT had two interrupt controllers.  Due to the design of the 
  1561.     8259, one has to be the master and the rest (up to 8) must be 
  1562.     slaves.  Each slave controller output its interrupt request to 
  1563.     and input on the master controller.  In the case of the AT, the
  1564.     master controller handles IRQ0 through IRQ7.  The slave handles
  1565.     IRQ8 through IRQ15.  The interrupt request from the slave to the
  1566.     master goes through IRQ2, which is termed the cascase input.
  1567.     IRQ2 was chosen to allow future compatabilty with the old XT
  1568.     hardware; it was the first IRQ that was 'available'.
  1569.  
  1570.     This means. of course, that the bus line for IRQ2 could no longer
  1571.     be used for external interrupts.  Instead, the bus line that WAS
  1572.     IRQ2 in the XT became IRQ9 on the AT.  This whole issue is 
  1573.     confused further by the fact that some vendors refer to this
  1574.     external interrupt as IRQ2, while others refer to it as IRQ9.  In
  1575.     either case, if you are talking about an external interrupt, it
  1576.     means the same thing.
  1577.  
  1578.     BTW, IRQ8 is used for the Real Time Clock, and does not have an
  1579.     external interrupt.  Here is a map, in case anyone still needs it:
  1580.  
  1581. <pre>
  1582.         Internal    External    Function
  1583.         IRQ0        n/a        Refresh/Timer
  1584.         IRQ1        n/a        Keyboard
  1585.         IRQ2        n/a (AT only)    Cascade Input to Master
  1586.         IRQ3        IRQ3        Free (Com port)
  1587.         IRQ4        IRQ4        Free (Com port)
  1588.         IRQ5        IRQ5        Free 
  1589.         IRQ6        IRQ6        Floppy Controller
  1590.         IRQ7        IRQ7        Free (Printer/Sound Card*)
  1591.         IRQ8        n/a        Real Time Clock
  1592.         IRQ9        IRQ2        Free (Network card)
  1593.         IRQ10        IRQ10        Free
  1594. </pre>
  1595.  
  1596.         etc.
  1597.     * NOTE:  The IRQ7 entry is spooky.  If you use the Interruptless
  1598.     printer driver (either from 386bsd, NetBSD, or FreeBSD) then you
  1599.     can still have an interrupting device (like a sound card) on
  1600.     interrupt 7.  Basically, you can as many devices on each IRQ as
  1601.     you want, but only one of them can be 'actively' interrupting.
  1602.  
  1603.  
  1604. 2.4.5    Some of my SCSI devices (like a tape drive) don't work; why?
  1605.     
  1606.     Even with the newer systems, you run the risk of having a 
  1607.     problem with a SCSI device from time to time.  There are some
  1608.     cards (like the new Adaptec 27* series) that software drivers 
  1609.     are either not in the works or the documentation is simply
  1610.     unavailable.  Another culprit here is that some machines are
  1611.     very touchy about the quality and length of cables, as well 
  1612.     as SCSI IDs.  There was one report of a older hard drive that
  1613.     took a little longer to spin up than the rest of the drives
  1614.     in the chain.  Whenever this drive was put early in the ID
  1615.     string (like 1 or 2) it would be 'not found' but if it was
  1616.     placed near the end (like after the tape drive) it would have
  1617.     spun up and been found.
  1618.  
  1619.  
  1620. 2.4.6    I want to use the Adaptec 1542C SCSI controller.  What are the 
  1621.     problems/tricks you need to know to get it working?
  1622.  
  1623.     The first thing to check when trying to use the 1542C is the setting 
  1624.     of 'Enable Disconnection' under the 'SCSI Device Configuration' 
  1625.     menu.  It should be set to YES for all devices, as the manual warns 
  1626.     you. 
  1627.  
  1628.     Matthias Urlichs (urlichs@smurf.ira.uka.de) has provided this 
  1629.     description of the types of things that can cause problems for the
  1630.     controller and devices attached to it.
  1631.     
  1632.     The problem is that the Adaptec 1542C has (a) rather powerful line 
  1633.     drivers, and (b) is sensitive to transient signals which can be 
  1634.     induced by them via either a bad cable or a bad external terminator.
  1635.  
  1636.     A bad cable is almost any cable which doesn't meet SCSI-2 specs.
  1637.  
  1638.     A bad external terminator is one which doesn't adequately buffer 
  1639.     its resistor network.
  1640.  
  1641.     So...
  1642.  
  1643.     - Remove the internal terminator from the last drive in your chain. 
  1644.       Replace with an active SCSI-2 external terminator.  Side 
  1645.       improvement: active terminators consume a bit less power.
  1646.  
  1647.     - Check cables.  Specifically, some cables carry less than the 
  1648.       nominal 50 signal wires. Manufacturers sometimes think they can 
  1649.       get away with this because almost all odd-numbered pins are GROUND 
  1650.       anyway. So, if pins 1 and 3 or 3 and 5 are connected, you're 
  1651.       likely to have a marginal cable.
  1652.  
  1653.     - Make sure that the terminator power is supplied by all devices 
  1654.       and that the power pin is actually connected on your cable. The 
  1655.       problem here is that some idiot device manufacturers save on 
  1656.       2-cent diodes, which means that the thing will pull terminator 
  1657.       power to ground if it's not plugged in.  (Two of these on one 
  1658.       bus are even worse.)
  1659.  
  1660.     - Consider creating your own cabling. Take a 50-wire flat ribbon 
  1661.       and press the appropriate connectors onto it in precisely the 
  1662.       right places. (Move your devices as to minimize cable length.) 
  1663.       Be aware that if a device has two external connectors, you must 
  1664.       take the SCSI bus in at one connector and out at the other 
  1665.       -- don't leave the other connector dangling; this isn't within 
  1666.       the SCSI specs because the cable usually is too long.
  1667.  
  1668.     - Better but more expensive: use 2-twisted cable. (I.e., wires 1&2 
  1669.       are twisted around each other, wire 3&4, ...) This will improve 
  1670.       reliability because the wires are twisted at different rates. 
  1671.       These cables have short non-twisted segments every 50 cm (1.5') 
  1672.       so that you can press on your connectors instead of heating up 
  1673.       that soldering iron.
  1674.  
  1675.     - While you're rebuilding your system anyway...: If you have more 
  1676.       than one drive per power supply, check if these drives have 
  1677.       adequate condensors to buffer their power.  I have two 80-MB 
  1678.       Seagates which refused to work more than a few hours without 
  1679.       glitches -- then I soldered two 10-uF Tantals onto their power 
  1680.       connector and they've been flawless ever since.
  1681.  
  1682.     The terminator power is pin 26. Be aware that SCSI counts pins as 
  1683.     they appear on a ribbon cable, not as they're sometimes numbered 
  1684.     on the connectors.  Pin 25 is supposed to be disconnected.
  1685.  
  1686.  
  1687. 2.4.7    Is there a SCSI utility which works to fix up the random
  1688.     problems I sometimes have with my drives?
  1689.  
  1690.     That depends on the problem.  One of the first things you can
  1691.     try is Ian Dell's (Ian.Dell@dsto.defence.gov.au) SCSI Disk
  1692.     Doctor (sdd) package.  There are NetBSD i386 and Sparc
  1693.     executables on ftp://ftp.mono.org/pub/sdd.  FreeBSD uses a
  1694.     couple of utilities which come with the system (scsi and
  1695.     scsireprobe) to accomplish some of the same operations.  Try one
  1696.     of those (obviously based on your system type) and see if they
  1697.     don't fix your problem.  If they don't, then the prospects are
  1698.     pretty grim for your drive.
  1699.  
  1700.  
  1701. 2.4.8    My system boots OK off the floppy, but once I try to boot from
  1702.     the hard drive, the message "changing root device to sd0a"
  1703.     appears and the system hangs.  What is the most likely thing 
  1704.     that I have done wrong?
  1705.  
  1706.     A common cause for this is when all of the right devices aren't 
  1707.     created on the root partition.  Since you say you can boot off 
  1708.     of a floppy, do so and check to make sure everything in /dev 
  1709.     exists.  You might consider running "MAKEDEV all" to be sure 
  1710.     everything is created.
  1711.  
  1712.     (Ed.Note: I find that whenever I create a new kernel, it isn't a
  1713.     'bad' idea to run a precautionary MAKEDEV to make sure that the
  1714.     devices are created correctly.  Since I only build a new kernel
  1715.     about once a month, it isn't a very costly insurance policy.)
  1716.  
  1717.     Also, there are known problems with IRQ configurations and the
  1718.     PCI bus.  The system hanging right after the changing root device 
  1719.     message usually indicates a misconfigured IRQ for the controller.  
  1720.     The initial probes by most (all?) drivers are done in polled mode, 
  1721.     only when mounting the disk for real does the kernel begin to do 
  1722.     interrupt driven I/O and DMA.
  1723.  
  1724.     Is this system a PCI system?  Is the SCSI controller a PCI board?
  1725.     If so, make sure the IRQ configured in the PCI BIOS matches the
  1726.     IRQ configured for the card.
  1727.  
  1728.     Also, with PCI, forgetting to enable the slot for "master" in the 
  1729.     BIOS setup or motherboard jumpers or putting a bus mastering card 
  1730.     in a slave only slot will give similar symptoms.  The system may not 
  1731.     have problems under DOS because some SCSI BIOS or device drivers 
  1732.     don't actually use the DMA or bus mastering features of the 
  1733.     card... {sigh}, they run in PIO mode under DOS.
  1734.  
  1735.  
  1736. 2.5    Other common problems that are attributed to the installation
  1737.     process but are caused other places.
  1738.  
  1739. 2.5.1    I want to use more than 16 Megabytes of memory.  Will any of the 
  1740.     BSD based systems support it?
  1741.  
  1742.     When using NetBSD and FreeBSD, there is no SOFTWARE limitation on 
  1743.     more than 16Meg of memory.  There are still hardware limitations.
  1744.     The limit is caused by DMA controllers which copy memory images
  1745.     around the system.  Many cards which people use in VESA and EISA
  1746.     machines either emulate ISA cards (in order to work with *BSD) or
  1747.     are really ISA cards.  There are reports of people having trouble 
  1748.     with more than 64Meg of memory, but anyone rich enough to have
  1749.     that kind of memory should be paying for his OS. :-)
  1750.  
  1751.     Recently some folks have been reporting that they are getting 
  1752.     warnings like these:
  1753.  
  1754. <pre>
  1755.         hostname /netbsd: sd0: not queued
  1756.         hostname /netbsd: aha0: DMA beyond end of ISA
  1757.         hostname /netbsd: sd0: not queued aha0: DMA beyond end of ISA
  1758. </pre>
  1759.  
  1760.     This error is caused when the buffer for I/O is beyond the address
  1761.     range that the ISA bus can reach.  With 16M you should be okay,
  1762.     however, some motherboards do reclaim all or part of the "lost" 
  1763.     384K (from the I/O "hole" from A0000-FFFFF) and put it just beyond 
  1764.     the end of the rest of the memory, so you actually get 16M plus a
  1765.     little bit.
  1766.  
  1767.     One fix is bounce buffers.  FreeBSD has implemented this, and NetBSD
  1768.     will as soon as they come up with a method that is compatible with 
  1769.     all of the machines that NetBSD supports.  
  1770.  
  1771.     Another fix is to either turn off the reclaiming of the extra memory 
  1772.     (most motherboards that do this allow you to disable it), hack 
  1773.     machdep.c to force the physical memory used to 16M, or use a 32 bit 
  1774.     bus (EISA, VLB, or PCI) controller.
  1775.  
  1776.     Jordan K Hubbard (jkh@thrush.lotus.com) has provided this 
  1777.     explanation of the distinction:
  1778.  
  1779.     Just so long as you're using a DMA-using disk controller in EISA 
  1780.     mode, rather than ISA mode, you can use more than 16 Meg of memory.
  1781.  
  1782.     For those who may find such a distinction confusing, let me explain:
  1783.  
  1784.     You can use an ISA controller (such as an Adaptec 1542) in an EISA
  1785.     machine, but as it will still think it's in an ISA box and refuse to
  1786.     use the extra address lines, this is no different than having an
  1787.     ISA machine as far as >16MB is concerned.
  1788.  
  1789.     You can use an EISA controller in "ISA mode", meaning it uses the
  1790.     older protocols for compatibility reasons (examples being Adaptec 
  1791.     1742 in "standard" mode, DTC 3290 in "Adaptec" mode, etc.) and 
  1792.     again, does not use the extra address lines.
  1793.  
  1794.     The only way to get full EISA, 32MB-of-memory-and-everything, mode 
  1795.     is to use an EISA controller in full EISA mode (for Adaptec 1742, 
  1796.     this is "enhanced" mode, for DTC 3290 it's "DTC" mode, the 
  1797.     Ultrastor 24F in EISA (rather than IDE emulation) mode, etc.).
  1798.  
  1799.     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1800.  
  1801.     In addition, several other types of ISA controllers which do NOT
  1802.     use DMA will not cause problems.  IDE, ESDI, and RLL controllers
  1803.     are examples of this type of card.  The discussion above also applies
  1804.     to VESA and VLB cards. 
  1805.  
  1806.     So, the bottom line is that you are limited to the amount of memory
  1807.     that your DMA equipped devices can access.  Once again, the weakest
  1808.     link is the strength of your machine.
  1809.  
  1810.  
  1811. 2.5.2    I tried to use a device in my computer that should be there.  When 
  1812.     I did, I got a "Device not configured error."  What do I do now?
  1813.  
  1814.     Garrett A. Wollman (wollman@emba.uvm.edu) provides us with this
  1815.     brief discussion in answer to a specific question.  It wears well
  1816.     as a generic answer as well.
  1817.  
  1818.     When any program tells you ``Device not configured'', it's trying 
  1819.     to tell you something very important about what you tried to do:
  1820.     namely, that the device you tried to access is not configured 
  1821.     into the running operating system.  This is the error message 
  1822.     corresponding to ENXIO.
  1823.  
  1824.     There are three major causes for this error:
  1825.  
  1826.     1) The kind of device you requested was not configured into the
  1827.        system.  This is R.W.'s problem; the generic kernels 
  1828.        are not distributed with the Berkeley Packet Filter enabled by 
  1829.        default.  To correct this, you must add the appropriate device or
  1830.        pseudo-device to your kernel configuration file and recompile.  
  1831.        (In this particular case, `pseudo-device bpfilter
  1832.        number-of-network-interfaces'.)
  1833.  
  1834.     2) The kind of device you requested was configured into the system,
  1835.        but either the device you requested would use more than the
  1836.        maximum you configured into the system, or if a physical device,
  1837.        was not found during autoconfiguration.  To solve this, either
  1838.        change your configuration file, or change the I/O settings on the
  1839.        device to match what the file says.
  1840.  
  1841.     3) The major or minor device number specified by the device's
  1842.        entry(ies) in /dev is incorrect.  To solve this, re-MAKEDEV the
  1843.        device (read the MAKEDEV script for more details).  Hopefully
  1844.        whatever change caused the kernel's internal device tables to get
  1845.        changed also updated your MAKEDEV script; otherwise, you will have
  1846.        to grovel through the kernel to see what is going on.
  1847.  
  1848.     4) A special case:  Although the 'c' drive on most BSD disks is
  1849.        the entire disk, in many NetBSD and FreeBSD systems, the
  1850.        entire drive is the 'd' disk.  This special case is wired
  1851.        into many programs, and is recognized by the kernel.  From
  1852.        time to time, folks will try and access the 'c' partition on
  1853.        their harddrive, only to be rebuffed with a 'device not
  1854.        configured' error.  Mostly, the 'c' partition is unavailable
  1855.        simply because the partition type is 'unused' even though it
  1856.        is allocated and has space set aside for it.
  1857.  
  1858. 2.6    Customizing the system to meet my needs.
  1859. 2.6.1    How do I get the system to not display the machine name, but
  1860.     display our company name?
  1861.  
  1862.     Modify the /etc/gettytab file so the default profile uses this:
  1863.  
  1864. <pre>
  1865.     :im=\r\n  Company Name (%t)\r\n\n:\
  1866. </pre>
  1867.  
  1868.  
  1869. 2.6.2    I have a program that, under normal circumstances, starts once a
  1870.     second.  This regularly causes inetd to terminate the program
  1871.     with a 'server failing (looping), service terminated' error.
  1872.     How do I fix this?
  1873.  
  1874.     The inetd program has a 40 start per minute limit for all
  1875.     programs started out of inetd.conf.  You need to add a 'max
  1876.     starts' option on the end of your 'wait' or 'nowait' option.
  1877.     For example, try 'nowait.100' if you expect the program to start
  1878.     90 times a minute.
  1879.  
  1880. -- 
  1881. Dave Burgess                   Network Engineer - Nebraska On-Ramp, Inc.
  1882. *bsd FAQ Maintainer / SysAdmin for the NetBSD system in my spare bedroom
  1883. "Just because something is stupid doesn't mean there isn't someone that 
  1884. doesn't want to do it...."
  1885.