Annotation of wikisrc/guide/misc.mdwn, revision 1.1

1.1     ! jdf         1: # Miscellaneous operations
        !             2: 
        !             3: This chapter collects various topics, in sparse order
        !             4: 
        !             5: ## Installing the boot manager
        !             6: 
        !             7: ### fdisk
        !             8: 
        !             9: Sysinst, the NetBSD installation program, usually installs the NetBSD boot 
        !            10: manager on the hard disk. The boot manager can also be installed or reconfigured 
        !            11: at a later time, if needed, with the 
        !            12: [fdisk(8)](http://netbsd.gw.com/cgi-bin/man-cgi?fdisk+8+NetBSD-current)
        !            13: command. For example:
        !            14: 
        !            15:     # fdisk -B wd0
        !            16: 
        !            17: If NetBSD doesn't boot from the hard disk, you can boot it from the installation 
        !            18: floppy and start the kernel on the hard disk. Insert the installation disk and, 
        !            19: at the boot prompt, give the following command:
        !            20: 
        !            21:     > boot wd0a:netbsd
        !            22: 
        !            23: This boots the kernel on the hard disk (use the correct device, for example sd0a 
        !            24: for a SCSI disk).
        !            25: 
        !            26: *Note*: Sometimes `fdisk -B` doesn't give the expected result (at least it 
        !            27: happened to me), probably if you install/remove other operating systems like 
        !            28: Windows 95 or Linux with LILO. In this case, try running `fdisk -i` (which is 
        !            29: known as `fdisk /mbr` from DOS) and then run again `fdisk` from NetBSD.
        !            30: 
        !            31: ### installboot
        !            32: 
        !            33: There is another tool for installing a bootloader, named
        !            34: [installboot(8)](http://netbsd.gw.com/cgi-bin/man-cgi?installboot+8+NetBSD-current).
        !            35: Depending on the platform you are using, its usage differs, so you should read 
        !            36: the manpage and its extensive *EXAMPLES* section.
        !            37: 
        !            38: E.g., if you want to install the bootloader for a ffs filesystem to the 
        !            39: partition you have your NetBSD in (in this case, `sd0c`), you would use:
        !            40: 
        !            41:     installboot -v /dev/rsd0c /usr/mdec/bootxx_ffs
        !            42: 
        !            43: ## Deleting the disklabel
        !            44: 
        !            45: Though this is not an operation that you need to perform frequently, it can be 
        !            46: useful to know how to do it in case of need. Please be sure to know exactly what 
        !            47: you are doing before performing this kind of operation. For example:
        !            48: 
        !            49:     # dd if=/dev/zero of=/dev/rwd0c bs=8k count=1
        !            50: 
        !            51: The previous command deletes the disklabel (not the MBR partition table). To 
        !            52: completely delete the disk, the whole device `rwd0d` must be used. For example:
        !            53: 
        !            54:     # dd if=/dev/zero of=/dev/rwd0d bs=8k
        !            55: 
        !            56: The commands above will only work as expected on the i386 and amd64 ports of 
        !            57: NetBSD. On other ports, the whole device will end in c, not d (e.g. `rwd0c`).
        !            58: 
        !            59: ## Speaker
        !            60: 
        !            61: I found this tip on a mailing list (I don't remember the author). To output a 
        !            62: sound from the speaker (for example at the end of a long script) the
        !            63: [spkr(4)](http://netbsd.gw.com/cgi-bin/man-cgi?spkr+4+NetBSD-current)
        !            64: driver can be used in the kernel config, which is mapped on `/dev/speaker`. For 
        !            65: example:
        !            66: 
        !            67:     echo 'BPBPBPBPBP' > /dev/speaker
        !            68: 
        !            69: *Note*: The `spkr` device is not enabled in the generic kernel; a customized 
        !            70: kernel is needed.
        !            71: 
        !            72: ## Forgot root password?
        !            73: 
        !            74: If you forget root's password, not all is lost and you can still recover the
        !            75: system with the following steps: boot single user, mount `/` and change root's
        !            76: password. In detail:
        !            77: 
        !            78: 1. Boot single user: when the boot prompt appears and the five seconds 
        !            79:    countdown starts, give the following command:
        !            80: 
        !            81:        > boot -s
        !            82: 
        !            83: 2. At the following prompt
        !            84: 
        !            85:        Enter pathname of shell or RETURN for sh:
        !            86: 
        !            87:    press Enter.
        !            88: 
        !            89: 3. Write the following commands:
        !            90: 
        !            91:        # fsck -y /
        !            92:        # mount -u /
        !            93:        # fsck -y /usr
        !            94:        # mount /usr
        !            95: 
        !            96: 4. Change root's password:
        !            97: 
        !            98:        # passwd root
        !            99:        Changing local password for root.
        !           100:        New password: (not echoed)
        !           101:        Retype new password: (not echoed)
        !           102:        # 
        !           103: 
        !           104: 5. Exit the shell to go to multiuser mode.
        !           105: 
        !           106:        # exit
        !           107: 
        !           108: 
        !           109: If you get the error `Password file is busy`, please see the section below.
        !           110: 
        !           111: ## Password file is busy?
        !           112: 
        !           113: If you try to modify a password and you get the mysterious message `Password 
        !           114: file is busy, it probably means that the file `/etc/ptmp` has not been deleted 
        !           115: from the system. This file is a temporary copy of the `/etc/master.passwd` file; 
        !           116: check that you are not losing important information and then delete it:
        !           117: 
        !           118:     # rm /etc/ptmp 
        !           119: 
        !           120: *Note*: If the file `/etc/ptmp` exists you can also receive a warning message at 
        !           121: system startup. For example:
        !           122: 
        !           123:     root: password file may be incorrect - /etc/ptmp exists
        !           124: 
        !           125: ## Adding a new hard disk
        !           126: 
        !           127: This section describes how to add a new hard disk to an already working NetBSD 
        !           128: system. In the following example a new SCSI controller and a new hard disk, 
        !           129: connected to the controller, will be added. If you don't need to add a new 
        !           130: controller, skip the relevant part and go to the hard disk configuration. The 
        !           131: installation of an IDE hard disk is identical; only the device name will be 
        !           132: different (`wd#` instead of `sd#`).
        !           133: 
        !           134: As always, before buying new hardware, consult the hardware compatibility list 
        !           135: of NetBSD or ask on a mailing list to make sure the new device is supported by 
        !           136: NetBSD.
        !           137: 
        !           138: When the SCSI controller has been physically installed in the system and the new 
        !           139: hard disk has been connected, it's time to restart the computer and check that 
        !           140: the device is correctly detected, using the
        !           141: [dmesg(8)](http://netbsd.gw.com/cgi-bin/man-cgi?dmesg+8+NetBSD-current)
        !           142: command. This is the sample output for an NCR-875 controller:
        !           143: 
        !           144:     ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi
        !           145:     ncr0: interrupting at irq 10
        !           146:     ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo
        !           147:     ncr0: single-ended, open drain IRQ driver, using on-chip SRAM
        !           148:     ncr0: restart (scsi reset).
        !           149:     scsibus0 at ncr0: 16 targets, 8 luns per target
        !           150:     sd0(ncr0:2:0): 20.0 MB/s (50 ns, offset 15)
        !           151:     sd0: 2063MB, 8188 cyl, 3 head, 172 sec, 512 bytes/sect x 4226725 sectors
        !           152: 
        !           153: If the device doesn't appear in the output, check that it is supported by the 
        !           154: kernel that you are using; if necessary, compile a customized kernel (see 
        !           155: [[Compiling the kernel|guide/kernel]]).
        !           156: 
        !           157: Now the partitions can be created using the 
        !           158: [fdisk(8)](http://netbsd.gw.com/cgi-bin/man-cgi?fdisk+8+NetBSD-current)
        !           159: command. First, check the current status of the disk:
        !           160: 
        !           161:     # fdisk sd0
        !           162:     NetBSD disklabel disk geometry:
        !           163:     cylinders: 8188 heads: 3 sectors/track: 172 (516 sectors/cylinder)
        !           164:     
        !           165:     BIOS disk geometry:
        !           166:     cylinders: 524 heads: 128 sectors/track: 63 (8064 sectors/cylinder)
        !           167:     
        !           168:     Partition table:
        !           169:     0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB))
        !           170:         start 63, size 4225473 (2063 MB), flag 0x0
        !           171:             beg: cylinder    0, head   1, sector  1
        !           172:             end: cylinder  523, head 127, sector 63
        !           173:     1: <UNUSED>
        !           174:     2: <UNUSED>
        !           175:     3: <UNUSED>
        !           176: 
        !           177: In this example the hard disk already contains a DOS partition, which will be 
        !           178: deleted and replaced with a native NetBSD partition. The command
        !           179: `fdisk -u sd0` allows to modify interactively the partitions. The modified data 
        !           180: will be written on the disk only before exiting and fdisk will request a 
        !           181: confirmation before writing, so you can work relaxedly.
        !           182: 
        !           183: **Disk geometries**
        !           184: 
        !           185: The geometry of the disk reported by fdisk can appear confusing. Dmesg reports 
        !           186: 4226725 sectors with 8188/3/172 for C/H/S, but 8188\*3\*172 gives 4225008 and 
        !           187: not 4226725. What happens is that most modern disks don't have a fixed geometry 
        !           188: and the number of sectors per track changes depending on the cylinder: the only 
        !           189: interesting parameter is the number of sectors. The disk reports the C/H/S 
        !           190: values but it's a fictitious geometry: the value 172 is the result of the total 
        !           191: number of sectors (4226725) divided by 8188 and then by 3.
        !           192: 
        !           193: To make things more confusing, the BIOS uses yet another *fake* geometry (C/H/S 
        !           194: 524/128/63) which gives a total of 4225536, a value which is a better 
        !           195: approximation to the real one than 425008. To partition the disk we will use the 
        !           196: BIOS geometry, to maintain compatibility with other operating systems, although 
        !           197: we will lose some sectors (4226725 - 4225536 = 1189 sectors = 594 KB).
        !           198: 
        !           199: To create the BIOS partitions the command `fdisk -u` must be used; the result is 
        !           200: the following:
        !           201: 
        !           202:     Partition table:
        !           203:     0: sysid 169 (NetBSD)
        !           204:         start 63, size 4225473 (2063 MB), flag 0x0
        !           205:             beg: cylinder    0, head   1, sector  1
        !           206:             end: cylinder  523, head 127, sector 63
        !           207:     1: <UNUSED>
        !           208:     2: <UNUSED>
        !           209:     3: <UNUSED>
        !           210: 
        !           211: Now it's time to create the disklabel for the NetBSD partition. The correct 
        !           212: steps to do this are:
        !           213: 
        !           214:     # disklabel sd0 > tempfile
        !           215:     # vi tempfile
        !           216:     # disklabel -R -r sd0 tempfile
        !           217: 
        !           218: If you try to create the disklabel directly with
        !           219: 
        !           220:     # disklabel -e sd0
        !           221: 
        !           222: you get the following message
        !           223: 
        !           224:     disklabel: ioctl DIOCWDINFO: No disk label on disk;
        !           225:     use "disklabel -I" to install initial label
        !           226: 
        !           227: because the disklabel does not yet exist on the disk.
        !           228: 
        !           229: Now we create some disklabel partitions, editing the `tempfile` as already 
        !           230: explained. The result is:
        !           231: 
        !           232:     #      size   offset   fstype [fsize bsize   cpg]
        !           233:     a:  2048004       63   4.2BSD   1024  8192    16 # (Cyl.  0*- 3969*)
        !           234:     c:  4226662       63   unused      0     0       # (Cyl.  0*- 8191*)
        !           235:     d:  4226725        0   unused      0     0       # (Cyl.  0 - 8191*)
        !           236:     e:  2178658  2048067   4.2BSD   1024  8192    16 # (Cyl.  3969*- 8191*)
        !           237: 
        !           238: *Note*: When the disklabel has been created it is possible to optimize it 
        !           239: studying the output of the command `newfs -N /dev/rsd0a`, which warns about 
        !           240: the existence of unallocated sectors at the end of a disklabel partition. The 
        !           241: values reported by newfs can be used to adjust the sizes of the partitions with 
        !           242: an iterative process.
        !           243: 
        !           244: The final operation is the creation of the file systems for the newly defined 
        !           245: partitions (`a:` and `e:`).
        !           246: 
        !           247:     # newfs /dev/rsd0a
        !           248:     # newfs /dev/rsd0e
        !           249: 
        !           250: The disk is now ready for usage, and the two partitions can be mounted. For 
        !           251: example:
        !           252: 
        !           253:     # mount /dev/sd0a /mnt
        !           254: 
        !           255: If this succeeds, you may want to put an entry for the partition into 
        !           256: `/etc/fstab`.
        !           257: 
        !           258: ## How to rebuild the devices in /dev
        !           259: 
        !           260: First shutdown to single user, partitions still mounted `rw` (read-write); You 
        !           261: can do that by just typing `shutdown now` while you are in multi user mode, or 
        !           262: reboot with the `-s` option and make `/` and `/dev` read-writable by doing.
        !           263: 
        !           264:     # mount -u /
        !           265:     # mount -u /dev
        !           266: 
        !           267: Then:
        !           268: 
        !           269:     # mkdir /newdev
        !           270:     # cd /newdev
        !           271:     # cp /dev/MAKEDEV* .
        !           272:     # sh ./MAKEDEV all
        !           273:     # cd /
        !           274:     # mv dev olddev
        !           275:     # mv newdev dev
        !           276:     # rm -r olddev
        !           277: 
        !           278: Or if you fetched all the sources in `/usr/src`:
        !           279: 
        !           280:     # mkdir /newdev
        !           281:     # cd /newdev
        !           282:     # cp /usr/src/etc/MAKEDEV.local .
        !           283:     # ( cd /usr/src/etc ; make MAKEDEV )
        !           284:     # cp /usr/src/etc/obj*/MAKEDEV .
        !           285:     # sh ./MAKEDEV all
        !           286:     # cd /
        !           287:     # mv dev olddev; mv newdev dev
        !           288:     # rm -r olddev
        !           289: 
        !           290: You can determine $arch by
        !           291: 
        !           292:     # uname -m
        !           293: 
        !           294: or
        !           295: 
        !           296:     # sysctl hw.machine_arch
        !           297: 

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb