--- wikisrc/guide/misc.mdwn 2015/06/19 19:18:31 1.4 +++ wikisrc/guide/misc.mdwn 2021/04/12 13:15:03 1.5 @@ -1,301 +1,2 @@ -**Contents** - -[[!toc levels=3]] - -# Miscellaneous operations - -This chapter collects various topics, in sparse order - -## Installing the boot manager - -### fdisk - -Sysinst, the NetBSD installation program, usually installs the NetBSD boot -manager on the hard disk. The boot manager can also be installed or reconfigured -at a later time, if needed, with the -[[!template id=man name="fdisk" section="8"]] -command. For example: - - # fdisk -B wd0 - -If NetBSD doesn't boot from the hard disk, you can boot it from the installation -floppy and start the kernel on the hard disk. Insert the installation disk and, -at the boot prompt, give the following command: - - > boot wd0a:netbsd - -This boots the kernel on the hard disk (use the correct device, for example sd0a -for a SCSI disk). - -*Note*: Sometimes `fdisk -B` doesn't give the expected result (at least it -happened to me), probably if you install/remove other operating systems like -Windows 95 or Linux with LILO. In this case, try running `fdisk -i` (which is -known as `fdisk /mbr` from DOS) and then run again `fdisk` from NetBSD. - -### installboot - -There is another tool for installing a bootloader, named -[[!template id=man name="installboot" section="8"]]. -Depending on the platform you are using, its usage differs, so you should read -the manpage and its extensive *EXAMPLES* section. - -E.g., if you want to install the bootloader for a ffs filesystem to the -partition you have your NetBSD in (in this case, `sd0c`), you would use: - - installboot -v /dev/rsd0c /usr/mdec/bootxx_ffs - -## Deleting the disklabel - -Though this is not an operation that you need to perform frequently, it can be -useful to know how to do it in case of need. Please be sure to know exactly what -you are doing before performing this kind of operation. For example: - - # dd if=/dev/zero of=/dev/rwd0c bs=8k count=1 - -The previous command deletes the disklabel (not the MBR partition table). To -completely delete the disk, the whole device `rwd0d` must be used. For example: - - # dd if=/dev/zero of=/dev/rwd0d bs=8k - -The commands above will only work as expected on the i386 and amd64 ports of -NetBSD. On other ports, the whole device will end in c, not d (e.g. `rwd0c`). - -## Speaker - -I found this tip on a mailing list (I don't remember the author). To output a -sound from the speaker (for example at the end of a long script) the -[[!template id=man name="spkr" section="4"]] -driver can be used in the kernel config, which is mapped on `/dev/speaker`. For -example: - - echo 'BPBPBPBPBP' > /dev/speaker - -*Note*: The `spkr` device is not enabled in the generic kernel; a customized -kernel is needed. - -## Forgot root password? - -If you forget root's password, not all is lost and you can still recover the -system with the following steps: boot single user, mount `/` and change root's -password. In detail: - -1. Boot single user: when the boot prompt appears and the five seconds - countdown starts, give the following command: - - > boot -s - -2. At the following prompt - - Enter pathname of shell or RETURN for sh: - - press Enter. - -3. Write the following commands: - - # fsck -y / - # mount -u / - # fsck -y /usr - # mount /usr - -4. Change root's password: - - # passwd root - Changing local password for root. - New password: (not echoed) - Retype new password: (not echoed) - # - -5. Exit the shell to go to multiuser mode. - - # exit - - -If you get the error `Password file is busy`, please see the section below. - -## Password file is busy? - -If you try to modify a password and you get the mysterious message `Password -file is busy, it probably means that the file `/etc/ptmp` has not been deleted -from the system. This file is a temporary copy of the `/etc/master.passwd` file; -check that you are not losing important information and then delete it: - - # rm /etc/ptmp - -*Note*: If the file `/etc/ptmp` exists you can also receive a warning message at -system startup. For example: - - root: password file may be incorrect - /etc/ptmp exists - -## Adding a new hard disk - -This section describes how to add a new hard disk to an already working NetBSD -system. In the following example a new SCSI controller and a new hard disk, -connected to the controller, will be added. If you don't need to add a new -controller, skip the relevant part and go to the hard disk configuration. The -installation of an IDE hard disk is identical; only the device name will be -different (`wd#` instead of `sd#`). - -As always, before buying new hardware, consult the hardware compatibility list -of NetBSD or ask on a mailing list to make sure the new device is supported by -NetBSD. - -When the SCSI controller has been physically installed in the system and the new -hard disk has been connected, it's time to restart the computer and check that -the device is correctly detected, using the -[[!template id=man name="dmesg" section="8"]] -command. This is the sample output for an NCR-875 controller: - - ncr0 at pci0 dev 15 function 0: ncr 53c875 fast20 wide scsi - ncr0: interrupting at irq 10 - ncr0: minsync=12, maxsync=137, maxoffs=16, 128 dwords burst, large dma fifo - ncr0: single-ended, open drain IRQ driver, using on-chip SRAM - ncr0: restart (scsi reset). - scsibus0 at ncr0: 16 targets, 8 luns per target - sd0(ncr0:2:0): 20.0 MB/s (50 ns, offset 15) - sd0: 2063MB, 8188 cyl, 3 head, 172 sec, 512 bytes/sect x 4226725 sectors - -If the device doesn't appear in the output, check that it is supported by the -kernel that you are using; if necessary, compile a customized kernel (see -[[Compiling the kernel|guide/kernel]]). - -Now the partitions can be created using the -[[!template id=man name="fdisk" section="8"]] -command. First, check the current status of the disk: - - # fdisk sd0 - NetBSD disklabel disk geometry: - cylinders: 8188 heads: 3 sectors/track: 172 (516 sectors/cylinder) - - BIOS disk geometry: - cylinders: 524 heads: 128 sectors/track: 63 (8064 sectors/cylinder) - - Partition table: - 0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB)) - start 63, size 4225473 (2063 MB), flag 0x0 - beg: cylinder 0, head 1, sector 1 - end: cylinder 523, head 127, sector 63 - 1: - 2: - 3: - -In this example the hard disk already contains a DOS partition, which will be -deleted and replaced with a native NetBSD partition. The command -`fdisk -u sd0` allows to modify interactively the partitions. The modified data -will be written on the disk only before exiting and fdisk will request a -confirmation before writing, so you can work relaxedly. - -**Disk geometries** - -The geometry of the disk reported by fdisk can appear confusing. Dmesg reports -4226725 sectors with 8188/3/172 for C/H/S, but 8188\*3\*172 gives 4225008 and -not 4226725. What happens is that most modern disks don't have a fixed geometry -and the number of sectors per track changes depending on the cylinder: the only -interesting parameter is the number of sectors. The disk reports the C/H/S -values but it's a fictitious geometry: the value 172 is the result of the total -number of sectors (4226725) divided by 8188 and then by 3. - -To make things more confusing, the BIOS uses yet another *fake* geometry (C/H/S -524/128/63) which gives a total of 4225536, a value which is a better -approximation to the real one than 425008. To partition the disk we will use the -BIOS geometry, to maintain compatibility with other operating systems, although -we will lose some sectors (4226725 - 4225536 = 1189 sectors = 594 KB). - -To create the BIOS partitions the command `fdisk -u` must be used; the result is -the following: - - Partition table: - 0: sysid 169 (NetBSD) - start 63, size 4225473 (2063 MB), flag 0x0 - beg: cylinder 0, head 1, sector 1 - end: cylinder 523, head 127, sector 63 - 1: - 2: - 3: - -Now it's time to create the disklabel for the NetBSD partition. The correct -steps to do this are: - - # disklabel sd0 > tempfile - # vi tempfile - # disklabel -R -r sd0 tempfile - -If you try to create the disklabel directly with - - # disklabel -e sd0 - -you get the following message - - disklabel: ioctl DIOCWDINFO: No disk label on disk; - use "disklabel -I" to install initial label - -because the disklabel does not yet exist on the disk. - -Now we create some disklabel partitions, editing the `tempfile` as already -explained. The result is: - - # size offset fstype [fsize bsize cpg] - a: 2048004 63 4.2BSD 1024 8192 16 # (Cyl. 0*- 3969*) - c: 4226662 63 unused 0 0 # (Cyl. 0*- 8191*) - d: 4226725 0 unused 0 0 # (Cyl. 0 - 8191*) - e: 2178658 2048067 4.2BSD 1024 8192 16 # (Cyl. 3969*- 8191*) - -*Note*: When the disklabel has been created it is possible to optimize it -studying the output of the command `newfs -N /dev/rsd0a`, which warns about -the existence of unallocated sectors at the end of a disklabel partition. The -values reported by newfs can be used to adjust the sizes of the partitions with -an iterative process. - -The final operation is the creation of the file systems for the newly defined -partitions (`a:` and `e:`). - - # newfs /dev/rsd0a - # newfs /dev/rsd0e - -The disk is now ready for usage, and the two partitions can be mounted. For -example: - - # mount /dev/sd0a /mnt - -If this succeeds, you may want to put an entry for the partition into -`/etc/fstab`. - -## How to rebuild the devices in /dev - -First shutdown to single user, partitions still mounted `rw` (read-write); You -can do that by just typing `shutdown now` while you are in multi user mode, or -reboot with the `-s` option and make `/` and `/dev` read-writable by doing. - - # mount -u / - # mount -u /dev - -Then: - - # mkdir /newdev - # cd /newdev - # cp /dev/MAKEDEV* . - # sh ./MAKEDEV all - # cd / - # mv dev olddev - # mv newdev dev - # rm -r olddev - -Or if you fetched all the sources in `/usr/src`: - - # mkdir /newdev - # cd /newdev - # cp /usr/src/etc/MAKEDEV.local . - # ( cd /usr/src/etc ; make MAKEDEV ) - # cp /usr/src/etc/obj*/MAKEDEV . - # sh ./MAKEDEV all - # cd / - # mv dev olddev; mv newdev dev - # rm -r olddev - -You can determine $arch by - - # uname -m - -or - - # sysctl hw.machine_arch - +This page was moved to: +[The NetBSD Guide - Miscellaneous operations](//www.NetBSD.org/docs/guide/en/chap-misc.html)