1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
|
dnl
dnl $OpenBSD: m4.common,v 1.92 2010/06/05 19:36:10 miod Exp $
dnl
dnl Copyright (c) 2004 Todd T. Fries <todd@OpenBSD.org>
dnl
dnl Permission to use, copy, modify, and distribute this software for any
dnl purpose with or without fee is hereby granted, provided that the above
dnl copyright notice and this permission notice appear in all copies.
dnl
dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
dnl
dnl simulate an include path with a macro 'includeit'.
define(`includeit',`sinclude('INCLUDE/`$1)sinclude('INCLUDE/../`$1)')dnl
dnl
dnl
dnl TopPart
dnl Describes the beginning of the distribution files listing.
dnl
define(`TopPart',
`The MACHINE-specific portion of the OpenBSD OSREV release is found in the
"MACHINE" subdirectory of the distribution. That subdirectory is laid
out as follows:
.../OSREV/MACHINE/
INSTALL.MACHINE Installation notes; this file.
SHA256 Output of the sum(1) program using the option
-a sha256, usable for verification of the
correctness of downloaded files.')dnl
dnl
dnl Change the quote. There were too many `word' situations that would
dnl have to have been changed to ``word''. The quote gets changed to
dnl {:- and -:}. It can really be anything, but it needs to be unique.
dnl
changequote(`{:-',`-:}')dnl
dnl
dnl Conventions when editing:
dnl o base`'OSrev is required because if it appears as baseOSrev the
dnl defined value OSrev does not get substituted. Same goes for MACHINE,
dnl MACHINE_ARCH and OSREV, assigned as cmd line parameters to m4 in the
dnl Makefile.
dnl o `include', `define' and `shift' is required as these three words
dnl are m4 reserved words that evaluate to an empty string if not quoted.
dnl
dnl
dnl ========== Distribution files description
dnl (usually used by arch/contents)
dnl
dnl printsize(value)
dnl
dnl Prints a size in KB if it is less than 10^6, in MB otherwise.
dnl The size is rounded down (this means you can still get 0.9 MB for
dnl a size between 1,000,000 and 1,048,576 bytes).
dnl Used by showsize() below.
dnl
define({:-printsize-:},{:-ifelse(substr($1,6),,dnl
eval($1/1024).eval($1*10/1024%10) KB,dnl
eval($1/1024/1024).eval($1/1024*10/1024%10) MB)-:})dnl
dnl
dnl showsize(gzipped size, uncompressed size)
dnl
dnl If both the 1st and the 2nd argument exist, show the sizes.
dnl Otherwise, evaluate to NULL.
dnl showsize() must not be on a new line. It creates its own new line if
dnl there are sizes to display, otherwise, evaluates to NULL
dnl
dnl XXX fix to allow - empty 1st arg, for files uncompressed
dnl - empty 2nd arg, for files where only compressed size
dnl is known
dnl
define({:-showsize-:},{:-ifelse(X$1,X,,X$2,X,,X,X,{:-
[ printsize($1) gzipped, printsize($2) uncompressed ]-:})-:})dnl
dnl
dnl
dnl
dnl DistributionDescription( number of sets )
dnl Header paragraph before the individual sets descriptions.
dnl
define({:-DistributionDescription-:},
{:-The OpenBSD/MACHINE binary distribution sets contain the binaries which
comprise the OpenBSD OSREV release for MACHINE systems. There are $1
binary distribution sets. The binary distribution sets can be found in
the "MACHINE" subdirectory of the OpenBSD OSREV distribution tree,
and are as follows:-:})dnl
dnl
dnl
dnl OpenBSDbase( compressed size, uncompressed size )
dnl Describes baseXX.tgz.
dnl
define({:-OpenBSDbase-:},
{:- base{:--:}OSrev The OpenBSD/MACHINE OSREV base binary distribution. You MUST
install this distribution set. It contains the base OpenBSD
utilities that are necessary for the system to run and be
minimally functional.
ifelse(MDSO,,{:-It excludes everything described below.-:},{:-It includes shared library support, and excludes everything
described below.-:})showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDcomp( compressed size, uncompressed size )
dnl Describes compXX.tgz.
dnl
define({:-OpenBSDcomp-:},
{:- comp{:--:}OSrev The OpenBSD/MACHINE Compiler tools. All of the tools relating
to C, C++ and Objective-C are supported. This set includes
the system {:-include-:} files (/usr/{:-include-:}), the linker, the
compiler tool chain, and the various system libraries{:--:}ifelse(MDSO,,.,{:-
(except the shared libraries, which are included as part of
the base set).-:})
This set also includes the manual pages for all of the
utilities it contains, as well as the system call and library
manual pages.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDetc( compressed size, uncompressed size [, noupgrade])
dnl Describes etcXX.tgz.
dnl
define({:-OpenBSDetc-:},
{:- etc{:--:}OSrev This distribution set contains the system configuration
files that reside in /etc and in several other places.
This set MUST be installed{:--:}ifelse(X$3,X,{:- if you are installing the
system from scratch, but should NOT be used if you are
upgrading. (If you are upgrading, it's recommended that
you get a copy of this set and CAREFULLY upgrade your
configuration files by hand; see the section named
Upgrading a previously-installed OpenBSD System" below.)-:},.)showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDgame( compressed size, uncompressed size )
dnl Describes gameXX.tgz.
dnl
define({:-OpenBSDgame-:},
{:- game{:--:}OSrev This set includes the games and their manual pages.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDman( compressed size, uncompressed size )
dnl Describes manXX.tgz.
dnl
define({:-OpenBSDman-:},
{:- man{:--:}OSrev This set includes all of the manual pages for the binaries
and other software contained in the base set.
Note that it does not {:-include-:} any of the manual pages
that are included in the other sets.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDmisc( compressed size, uncompressed size )
dnl Describes miscXX.tgz.
dnl
define({:-OpenBSDmisc-:},
{:- misc{:--:}OSrev This set includes the system dictionaries (which are rather
large), and the typesettable document set.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDxbase( compressed size, uncompressed size )
dnl Describes xbaseXX.tgz.
dnl
define({:-OpenBSDxbase-:},
{:- xbase{:--:}OSrev This set includes the base X distribution. This includes
programs, headers and libraries.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDxetc( compressed size, uncompressed size )
dnl Describes xetcXX.tgz.
dnl
define({:-OpenBSDxetc-:},
{:- xetc{:--:}OSrev This set includes the X window system configuration files
that reside in /etc. It's the equivalent of etc{:--:}OSrev for X.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDxshare( compressed size, uncompressed size )
dnl Describes xshareXX.tgz.
dnl
define({:-OpenBSDxshare-:},
{:- xshare{:--:}OSrev This set includes all text files equivalent between all
architectures.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDxfont( compressed size, uncompressed size )
dnl Describes xfontXX.tgz.
dnl
define({:-OpenBSDxfont-:},
{:- xfont{:--:}OSrev This set includes all of the X fonts.showsize($1,$2)-:})dnl
dnl
dnl
dnl OpenBSDxserv(compressed size,uncompressed size,optional extra notes)
dnl Describes xservXX.tgz.
dnl
define({:-OpenBSDxserv-:},
{:- xserv{:--:}OSrev This set includes all of the X servers.$3{:--:}showsize($1,$2)-:})dnl
dnl
dnl
dnl Floppy and bootable cdrom stuff
dnl
define({:-OpenBSDfloppy-:},
{:- floppy{:--:}OSrev.fs The standard MACHINE boot and installation floppy;
see below.-:})dnl
dnl
define({:-OpenBSDinstalliso-:},
{:- install{:--:}OSrev.iso The MACHINE boot and installation CD-ROM image,
which contains the base and X sets, so that install
or upgrade can be done without network connectivity.-:})dnl
define({:-OpenBSDcd-:},
{:- cd{:--:}OSrev.iso A miniroot filesystem image suitable to be used
as a bootable CD-ROM image, but will require the base
and X sets be found via another media or network;
otherwise similar to the bsd.rd image above.-:})dnl
dnl
dnl OpenBSDfloppydesc(number of floppies, Article, plural)
dnl
dnl Describe what the boot floppy/ies contain and how they may be used.
dnl Use as: OpenBSDfloppydesc(single,The) or OpenBSDfloppydesc(three,Each,s)
define({:-OpenBSDfloppydesc-:},
{:-Bootable installation/upgrade floppy image$3:
The $1 floppy image$3 can be copied to a floppy using rawrite.exe,
ntrw.exe, or `dd', as described later in this document.
$2 floppy image is a bootable install floppy which can be used
both to install and to upgrade OpenBSD to the current version.
It is also useful for maintenance and disaster recovery.-:})dnl
dnl
dnl
dnl A few extra straightforward macros describing more components.
dnl
define({:-OpenBSDdistsets-:},
{:- *.tgz MACHINE binary distribution sets; see below.-:})dnl
dnl
define({:-OpenBSDbsd-:},
{:- bsd A stock GENERIC MACHINE kernel which will be
installed on your system during the install.-:})dnl
dnl
define({:-OpenBSDbsdmp-:},
{:- bsd.mp A stock GENERIC.MP MACHINE kernel, with support for
multiprocessor machines, which can be used instead
of the GENERIC kernel after the install.-:})dnl
dnl
define({:-OpenBSDrd-:},
{:- bsd.rd A compressed RAMDISK kernel; the embedded
filesystem contains the installation tools.
Used for simple installation from a pre-existing
system.-:})dnl
dnl
define({:-OpenBSDminiroot-:},
{:- miniroot{:--:}OSrev.fs A miniroot filesystem image to be used if you
for some reason can't or don't want to use the
ramdisk installation method.-:})dnl
dnl
dnl
dnl ========== Various Install Instructions
dnl (usually used by arch/install)
dnl
dnl OpenBSDInstallPrelude(troublesome disk types)
dnl
dnl Installation introduction. Warns about disk geometry hell if argument
dnl is not empty.
define({:-OpenBSDInstallPrelude-:},
{:-Installing OpenBSD is a relatively complex process, but if you have
this document in hand and are careful to read and remember the
information which is presented to you by the install program, it
shouldn't be too much trouble.ifelse(X$1,X,,{:-
If the disks connected to your machine are $1,
it is recommended that you know their geometry, i.e. the sector size (note
that sector sizes other than 512 bytes are not currently supported), the
number of sectors per track, the number of tracks per cylinder (also known
as the number of heads), and the number of cylinders on the disk. The
OpenBSD kernel will try to discover these parameters on its own, and if it
can it will print them at boot time. If possible, you should use the
parameters it prints. (You might not be able to because you're sharing your
disk with another operating system, or because your disk is old enough that
the kernel can't figure out its geometry.)-:})-:})dnl
dnl
dnl OpenBSDInstallPart2
dnl Describes the beginning of the installation process, once the
dnl installation media is ready.
define({:-OpenBSDInstallPart2-:},
{:-You should now be ready to install OpenBSD.
The following is a walk-through of the steps you will take while getting
OpenBSD installed on your hard disk.
The installation procedure is designed to gather as many information about
your system setup as possible at the beginning, so that no human interaction
is required as soon as the questions are over.
The order of these questions might be quite disconcerting if you are used to
other installation procedures, including older OpenBSD versions.
If any question has a default answer, it will be displayed in brackets ("[]")
after the question. If you wish to stop the installation, you may hit
Control-C at any time, but if you do, you'll have to begin the installation
process again from scratch. Using Control-Z to suspend the process may be a
better option, or at any prompt enter `!' to get a shell, from which 'exit'
will return you back to that prompt (no refresh of the prompt will occur,
though).-:})dnl
dnl
dnl OpenBSDInstallPart3(warn geometry, disk type, disk type, disk type)
dnl
dnl Describes the boot of the ramdisk, the expected disk devices
dnl names, and warns bore the reader with geometry concerns if the
dnl first argument is not empty.
dnl Describes the serial terminal setup.
define({:-OpenBSDInstallPart3-:},
{:- Once the kernel has loaded, you will be presented with the
OpenBSD kernel boot messages. You will want to read them
to determine your disks name and geometry. Its name will
be something like ifelse(X$2,X,{:-"sd0" for SCSI drives, or "wd0" for IDE
drives-:},$2){:--:}ifelse(X$3,X,,{:-, $3-:}){:--:}ifelse(X$4,X,,{:-, $4-:}){:--:}.{:--:}ifelse(X$1,X,,{:-
As mentioned above, you will need your disks geometry (which
will be printed on a line beginning with its name) when
creating OpenBSD partitions.-:})
You will also need to know the device name to tell the
install tools what disk to install on. If you cannot read
the messages as they scroll by, do not worry -- you can get
at this information later inside the install program.
dnl dot.profile
After the kernel is done initialization, you will be asked whether
you wish to do an "(I)nstall" or an "(U)pgrade". Enter 'I' for a
fresh install or 'U' to upgrade an existing installation.
dnl install.sub set_term
ifelse(MDX,,
{:- You will next be asked for your terminal type.-:},
{:- If you are connected with a serial console, you will next be
asked for your terminal type.-:})dnl
You should choose the terminal type from amongst those listed.
(If your terminal type is xterm, just use vt220).dnl
ifelse(MDKBD,,,{:-
If you are connected using a glass console, you will next be
asked for your keyboard layout (the default being the US QWERTY
layout). Depending on your keyboard type, not all international
layouts may be supported; answering `?' (which, on QWERTY layouts,
is the key to the left of the right `sh{:--:}ift' key, shifted) will
display a list of supported layouts.
(If you do not need to change the keyboard layout, just press
enter.)-:})dnl
-:})dnl
dnl
dnl OpenBSDInstallPart4
dnl
dnl Describes the beginning of the bsd.rd operation.
dnl
define({:-OpenBSDInstallPart4-:},dnl
dnl install.sub (install) hostname
{:- The first question you will be asked is the system hostname.
Reply with the name of the system, without any domain part.
dnl install.sub (install) donetconfig
You will now be given an opportunity to configure the network.
The network configuration you enter (if any) can then be used to
do the install from another system using HTTP or FTP, and will
also be the configuration used by the system after the installation
is complete.
dnl XXX add a MDVLAN feature and document vlan setup
The install program will give you a list of network interfaces you
can configure. For each network interface you select to configure,
you will be asked for:
- the symbolic host name to use (except for the first
interface setup, which will reuse the host name entered at the
beginning of the installation).
- the IPv4 settings: address and netmask. If the IP address
should be obtained from a DHCP server, simply enter ``dhcp''
when asked for the address.
- the IPv6 settings (address, prefix length, and default router).
You may enter ``rtsol'' when asked for the address for the
interface to configure automatically via router sollicitation
messages.
After all interfaces have been configured, if there have been
any IPv4 interfaces setup, you will be asked for the IPv4 default
route. This step is skipped if you only have one IPv4 interface
setup, and it is configured with DHCP.
The install program will also ask you for your DNS domain name,
and the domain name servers, unless this information has
already been obtained from a DHCP server during interface setup.
You will also be presented with an opportunity to do more
manual configuration. If you accept, you will be dropped
to a shell; when you are done, enter `exit' to return to
the installation program.
dnl install.sub (install) askpassword root
You will then be asked to enter the initial root password
of the system, twice.
Although the install program will only check that the two
passwords match, you should make sure to use a strong password.
As a minimum, the password should be at least eight characters
long and a mixture of both lower and uppercase letters, numbers
and punctuation characters.
dnl install.sub (install) questions(): sshd/ntpd
You will then be asked whether you want to start sshd(8) by
default, as well as ntpd(8). If you choose to start ntpd(8),
you will be asked for your ntp server; if you don't have any
preferred ntp server, press enter to confirm the default
setting of using the pool.ntp.org servers.
dnl
dnl install.sub (install) questions(): MDXAPERTURE
ifelse(MDXAPERTURE,,,{:-
You will next be asked whether you intend to run the X Window
System on your machine. The install program needs to know
this, to change a configuration setting controlling whether
the X server will be able to access the xf86(4) driver; it
is not necessary to answer `y' to this question if you only
intend to run X client programs on a remote display.
-:})dnl
dnl install.sub (install) questions(): MDXDM
ifelse(MDXDM,,,
{:-ifelse(MDXAPERTURE,,{:-
Since the X Window System can run on OpenBSD/MACHINE
without the need for a configuration file, you will get asked-:},
{:- If you answered `y' to this question, you will get asked-:})
whether you want to start xdm on boot.
-:})dnl
dnl install.sub (install) questions(): serial console setup
ifelse(MDSERCONS,,,{:-
If you are installing using a serial console, and since by default,
the OpenBSD/MACHINE installation will only start terminals on
the primary display device, the installation program will ask you
whether you want to also enable an additional terminal on that
line, and will allow you to select the line speed.
-:})dnl
dnl install.sub (install) user_setup()
You will now be given the possibility to setup a user account
on the forthcoming system. This user will be added to the
`wheel' group.
Enter the desired login name, or `n' if you do not want to
add a user account at this point. Valid login names are
sequences of digits and lowercase letters, and must start
with a lowercase letter. If the login name matches this
criteria, and doesn't conflict with any of the administrative
user accounts (such as `root', `daemon' or `ftp'), you
will be prompted with the users descriptive name, as well
as its password, twice.
As for the root password earlier, the install program will only
check that the two passwords match, but you should make sure to
use a strong password here as well.
If you have chosen to setup a user account, and you had chosen
to start sshd(8) on boot, you will be given the possibility to
disable sshd(8) logins as root.
dnl install.sub (install) set_timezone
ifelse(MDTZ,,,
{:-
You may now be given the opportunity to configure the time zone
your system will be using (this depends on the installation
media you are using).
If the installation program skips this question, do not be
alarmed, the time zone will be configured at the end
of the installation.
-:})dnl
dnl install.sh md_prep_disklabel loop
The installation program will now tell you which disks
it can install on, and ask you which it should use.
Reply with the name of your root disk.-:})dnl
dnl
dnl OpenBSDInstallMBRPart1
dnl Describes MBR partitioning. So much to save four lines of text
dnl duplicated 5 times.
dnl
define({:-OpenBSDInstallMBRPart1-:},
{:- Disks on OpenBSD/MACHINE are partitioned using the so-called
``MBR'' partitioning scheme. You will need to create one
MBR partition, in which all the real OpenBSD partitions will
be created.-:})dnl
dnl
dnl OpenBSDInstallMBRPart2(needs OpenBSD partition active)
dnl Describes fdisk invocation
dnl
define({:-OpenBSDInstallMBRPart2-:},
dnl install.md md_prep_fdisk
{:- The installation program will ask you if you want to use the
whole disk for OpenBSD. If you don't need to or don't intend
to share the disk with other operating systems, answer `w'
here. The installation program will then create a single
MBR partition spanning the whole disk, dedicated to OpenBSD.
Otherwise, fdisk(8) will be invoked to let you to edit your MBR
partitioning. The current MBR partitions defined will be
displayed and you will be allowed to modify them, add new
partitions, and change which partition to boot from by default.
ifelse(X$1,X,,
{:- Note that you should make the OpenBSD partition the active
partition at least until the install has been completed.
-:})dnl
After your OpenBSD MBR partition has been setup, the real
partition setup can follow.-:})dnl
dnl
dnl OpenBSDInstallPart5(mention about other OS partitions,mention about root
dnl partition limitations)
dnl Describes the disklabel operation
dnl
define({:-OpenBSDInstallPart5-:},
{:- Next the disk label which defines the layout of the OpenBSD
partitions must be set up. Each file system you want will
require a separate partition.
You will be proposed a default partition layout, trying
to set up separate partitions, disk size permitting.
You will be given the possibility to either accept the proposed
layout, or edit it, or create your own custom layout. These last
two choices will invoke the disklabel(8) interactive editor,
allowing you to create your desired layout.
Within the editor, you will probably start out with only the
'c' partition of fstype 'unused' that represents the whole disk.
This partition can not be modified.$1
You must create partition 'a' as a native OpenBSD partition, i.e.
one with "4.2BSD" as the fstype, to hold the root file system.$2
In addition to partition 'a' you should create partition 'b' with
fstype "swap", and native OpenBSD partitions to hold separate file
systems such as /usr, /tmp, /var, and /home.
You will need to provide a mount point for all partitions you
{:-define-:}. Partitions without mount points, or not of 4.2BSD fstype,
will neither be formatted nor mounted during the installation.
For quick help while in the interactive editor, enter '?'. The
`z' command (which deletes all partitions and starts with a
clean label), the `A' command (which performs the automatic
partition layout) and the `n' command (to change mount points)
are of particular interest.
Although the partitions position and size are written in exact
sector values, you do not need a calculator to create your
partitions! Human-friendly units can be specified by adding `k',
`m' or `g' after any numbers to have them converted to kilobytes,
megabytes or gigabytes. Or you may specify a percentage of the
disk size using `%' as the suffix.
Enter 'M' to view the entire manual page (see the info on the
``-E'' flag). To exit the editor enter 'q'.-:})dnl
dnl
dnl OpenBSDInstallPart6(other installation sources)
define({:-OpenBSDInstallPart6-:},
{:- After the layout has been saved, new filesystems will be
created on all partitions with mount points.
This will DESTROY ALL EXISTING DATA on those partitions.
After configuring your root disk, the installer will
return to the list of available disks to configure.
You can choose the other disks to use with OpenBSD in
any order, and will get to setup their layout similarly
to the root disk above. However, for non-root disks,
you will not be proposed a default partition layout.
When all your disks are configured, simply hit return
at the disk prompt.
After these preparatory steps have been completed, you will be
able to extract the distribution sets onto your system. There
are several install methods supported:
FTP, HTTP, $1or a local disk partition.-:})dnl
dnl
dnl Notes for various installation methods.
dnl
define({:-OpenBSDURLInstall-:},
{:- To install via FTP or HTTP:
To begin an FTP or HTTP install you will need the following
pieces of information:
1) Proxy server URL if you are using a URL-based FTP or
HTTP proxy (squid, CERN FTP, Apache 1.2 or higher).
You need to {:-define-:} a proxy if you are behind a
firewall that blocks outgoing FTP or HTTP connections
(assuming you have a proxy available to use).
2) The IP address (or hostname if you configured
DNS servers earlier in the install) of an FTP or HTTP
server carrying the OpenBSD OSREV distribution.
The installation program will try to fetch a list
of such servers; depending on your network settings,
this might fail. If the list could be fetched, it
will be displayed, and you can choose an entry from
the list (the first entries are expected to be the
closest mirrors to your location).
3) The directory holding the distribution sets.
The default value of pub/OpenBSD/OSREV/MACHINE
is almost always correct on FTP servers; for HTTP
servers there is no standard location for this.
4) For FTP installs only, the login and password for the
FTP account. You will only be asked for a password for
non-anonymous FTP.
Then refer to the section named "installation set selection"
below.-:})dnl
dnl
dnl For arches where you can create a boot tape, $1 can be set as the
dnl file index of the first set, after the boot files.
define({:-OpenBSDTAPEInstall-:},
{:- To install from tape:
Unlike all other installation methods, there is no way
to know the names of the files on tape. Because of this,
it is impossible to check that the files on tape match
the machine architecture and release of OpenBSD/MACHINE.
Moreover, since tape filenames are not known, the file
checksums can not be verified. Use this installation
method only if there is no better option.
In order to install from tape, the distribution sets to be
installed must have been written to tape previously, either
in tar format or gzip-compressed tar format.
You will also have to identify the tape device where the
distribution sets are to be extracted from. This will
typically be "nrst0" (no-rewind, raw interface).
Next you will have to specify how many files have to be
skipped on the tape. This number is usually zero{:--:}ifelse(X$1,X,,{:-, unless
you have created a bootable tape, in which case the number
will be $1-:}).
The install program will not automatically detect whether
an image has been compressed, so it will ask for that
information before starting the extraction of each file.-:})dnl
dnl
define({:-OpenBSDCDROMInstall-:},
{:- To install from CD-ROM:
When installing from a CD-ROM, you will be asked which
device holds the distribution sets. This will typically
be "cd0". If there is more than one partition on the
CD-ROM, you will be asked which partition the distribution
is to be loaded from. This is normally partition "a".
You will also have to provide the relative path to the
directory on the CD-ROM which holds the distribution, for
the MACHINE this is "OSREV/MACHINE".
Then refer to the section named "installation set selection"
below.-:})dnl
dnl
define({:-OpenBSDNFSInstall-:},
{:- To install from an NFS mounted directory:
When installing from an NFS-mounted directory, you must
have completed network configuration above, and also
set up the exported file system on the NFS server in
advance.
First you must identify the IP address of the NFS server
to load the distribution from, and the file system the
server expects you to mount.
The install program will also ask whether or not TCP
should be used for transport (the default is UDP). Note
that TCP only works with newer NFS servers.
You will also have to provide the relative path to the
directory on the file system where the distribution sets
are located. Note that this path should not be prefixed
with a '/'.
Then refer to the section named "installation set selection"
below.-:})dnl
dnl
dnl OpenBSDDISKInstall({:-<additional disk> or-:}, <-- $1
dnl {:-only -:}, <-- $2
dnl {:- or <other fs name>-:}) <-- $3
dnl
dnl Note the spacing used above. It is crucial to keep words from running
dnl together in the actual document.
dnl
dnl Arg 1 is optional.
dnl Choices for args 2 & 3:
dnl - OpenBSDDISKInstall(,{:-only -:})
dnl (only have 1 fs possible, ffs)
dnl - OpenBSDDISKInstall(,,{:-or <insert some other filesystem name>-:})
dnl (have another fs possible for reading during disk install)
dnl
dnl see $1, $2, and $3 below for further usage information.
dnl
define({:-OpenBSDDISKInstall-:},
{:- To install from a local disk partition:
When installing from a local disk partition, you will
first have to identify which disk holds the distribution
sets.
This is normally $1"sdN", where N is a number.
Next you will have to identify the partition within that disk
that holds the distribution; this is a single letter between
'a' and 'p'.
You will also have to identify the type of file system
residing in the partition identified. Currently, you can
$2{:--:}install from partitions that have been formatted as the
Berkeley fast file system (ffs)$3.
You will also have to provide the relative path to the
directory on the file system where the distribution sets
are located. Note that this path should not be prefixed
with a '/'.
dnl Then refer to the section named "installation set selection"
dnl below.
Then refer to the next section.-:})dnl
dnl
define({:-OpenBSDCommonInstall-:},
{:- Installation set selection:
A list of available distribution sets found on the
given location will be listed.
You may individually select distribution sets to install,
by entering their name, or wildcards (e.g. `*.tgz' or
`base*|comp*', or `all' to select all the sets (which
is what most users will want to do).
You may also enter `abort' to deselect everything and
restart the selection from scratch, or unselect sets
by entering their name prefixed with `-' (e.g. `-x*').
It is also possible to enter an arbitrary filename and
have it treated as a file set.
When you are done selecting distribution sets, enter
`done'. The files will begin to extract.-:})dnl
dnl
dnl Description of the end of the installation procedure.
dnl
define({:-OpenBSDInstallWrapup-:},
{:- After the files have been extracted, you will be given the choice
to select a new location from which to install distribution sets.
If there have been errors extracting the sets from the previous
location, or if some sets have been missing, this allows you to
select a better source.
Also, if the installation program complains that the distribution
sets you have been using do not match their recorded checksums, you
might want to check your installation source (although this can
happen between releases, if a snapshot is being updated on an FTP
or HTTP server with newer files while you are installing).
ifelse(MDTZ,,dnl
{:- The last thing you'll need to configure is the time zone your system
will be using. For this to work properly, it is expected that you
have installed at least the "base{:--:}OSrev", "etc{:--:}OSrev",
and "bsd" distribution sets.
-:},dnl
{:- The last thing you might need to configure, if you did not get
the chance to earlier, is the time zone your system will be using.
For this work properly, it is expected that you have installed at
least the "base{:--:}OSrev", "etc{:--:}OSrev", and "bsd" distribution sets.
-:})dnl
The installation program will then proceed to save the system
configuration, create all the device nodes needed by the installed
system, and will install bootblocks on the root disk.ifelse(MDSMP,,,{:-
On multiprocessor systems, if the bsd.mp kernel has been installed,
it will be renamed to `bsd', which is the default kernel the boot
blocks look for. The single processor kernel, `bsd', will be
available as `bsd.sp'.-:})-:})dnl
dnl
define({:-OpenBSDCongratulations-:},{:-
Congratulations, you have successfully installed OpenBSD OSREV. When you
reboot into OpenBSD, you should log in as "root" at the login prompt.
You should create yourself an account and protect it and the "root"
account with good passwords.
The install program leaves root an initial mail message. We recommend
you read it, as it contains answers to basic questions you might have
about OpenBSD, such as configuring your system, installing packages,
getting more information about OpenBSD, sending in your dmesg output
and more. To do this, run
mail
and then just enter "more 1" to get the first message. You quit mail by
entering "q".
Some of the files in the OpenBSD OSREV distribution might need to be
tailored for your site. We recommend you run:
man afterboot
which will tell you about a bunch of the files needing to be reviewed.
If you are unfamiliar with UN*X-like system administration, it's
recommended that you buy a book that discusses it.-:})dnl
dnl
dnl
dnl ========== Upgrade instructions
dnl (usually used by arch/upgrade)
dnl
dnl OpenBSDUpgrade({:-<list of available boot methods>-:})dnl
dnl Parameter is optional.
define({:-OpenBSDUpgrade-:},
{:-Warning! Upgrades to OpenBSD OSREV are currently only supported from the
immediately previous release. The upgrade process will also work with older
releases, but might not execute some migration tasks that would be necessary
for a proper upgrade. The best solution, whenever possible, is to backup
your data and reinstall from scratch.
To upgrade OpenBSD OSREV from a previous version, start with the general
instructions in the section "Installing OpenBSD".
Boot from $1.
When prompted, select the (U)pgrade option rather than the (I)nstall
option at the prompt in the install process.
You will be presented with a welcome message and asked if you really wish
to upgrade.
The upgrade script will ask you for the existing root partition, and
will use the existing filesystems defined in /etc/fstab to install the
new system in. It will also use your existing network parameters.
From then, the upgrade procedure is very close to the installation
procedure described earlier in this document. Note that the upgrade
procedure will not let you pick neither the ``etc{:--:}OSrev.tgz'' nor the
``xetc{:--:}OSrev.tgz'' sets, so as to preserve your files in `/etc' which
you are likely to have customized since a previous installation.
However, it is strongly advised that you unpack the etc{:--:}OSrev.tgz and
xetc{:--:}OSrev.tgz sets in a temporary directory and merge changes by hand, or
with the help of the sysmerge(8) helper script, since all components of
your system may not function correctly until your files in `/etc' are
updated.-:})dnl
dnl
dnl
dnl ========== Installation media preparation
dnl (usually used by arch/xfer)
dnl
dnl Generic preparation introduction, after the list of various sources.
dnl Use the short version unless there are too many methods, in this case
dnl the long versions adds a ``don't panic!'' notice.
define({:-OpenBSDXferShortPrelude-:},
{:-The steps necessary to prepare the distribution sets for installation
depend on which method of installation you choose. Some methods
require a bit of setup first that is explained below.
The installation allows installing OpenBSD directly from FTP mirror
sites over the internet, however you must consider the speed and
reliability of your internet connection for this option. It may save
much time and frustration to use ftp get/reget to transfer the
distribution sets to a local server or disk and perform the installation
from there, rather than directly from the internet.-:})dnl
define({:-OpenBSDXferPrelude-:},
{:-OpenBSDXferShortPrelude
The variety of options listed may seem confusing, but situations vary
widely in terms of what peripherals and what sort of network arrangements
a user has, the intent is to provide some way that will be practical.-:})dnl
dnl
dnl Various floppy generation instructions.
dnl
define({:-OpenBSDXferFloppyFromDOS-:},
{:-Creating a bootable floppy disk using DOS/Windows:
First you need to get access to the OpenBSD bootable floppy
images. If you can access the distribution from the CD-ROM under
DOS, you will find the bootable disks in the OSREV/MACHINE
directory. Otherwise, you will have to download them from one of
the OpenBSD FTP or HTTP mirror sites, using an FTP client or a web
browser. In either case, take care to do "binary" transfers, since
these are images files and any DOS cr/lf translations or Control-z
EOF interpretations will result in corrupted transfers.
You will also need to go to the "tools" directory and grab a
copy of the rawrite.exe utility and its documentation. This
program is needed to correctly copy the bootable filesystem
image to the floppy, since it's an image of a unix partition
containing an ffs filesystem, not an MSDOS format diskette.
Once you have installed rawrite.exe, just run it and specify the
name of the bootable image, such as "floppy{:--:}OSrev.fs" and the name of
the floppy drive, such as "a:". Be sure to use good quality HD
(1.44MB) floppies, formatted on the system you're using. The
image copy and boot process is not especially tolerant of read
errors.
Note that if you are using NT, 2000, or XP to write the
images to disk, you will need to use ntrw.exe instead. It
is also available in the "tools" directory. Grab it and
run in with the correct arguments like this "ntrw <image>
<drive>:"
Note that, when installing, the boot floppy can be write-protected
(i.e. read-only).-:})dnl
dnl
define({:-OpenBSDXferFloppyFromUNIX-:},
{:-Creating a bootable floppy disk using SunOS, Solaris or other Un*x-like
system:
First, you will need obtain a local copy of the bootable filesystem
image as described above. If possible use the sha1(1) command to
verify the checksums of the images vs. the values in the SHA256 file
on the mirror site.
Next, use the dd(1) utility to copy the file to the floppy drive.
The command would likely be, under SunOS:
dd if=floppy{:--:}OSrev.fs of=/dev/rfd0c bs=36b
and, under Solaris:
dd if=floppy{:--:}OSrev.fs of=/dev/rdiskette0 bs=36b
unless the volume management daemon, vold(1M), is running, in
which case the following command is preferable:
dd if=floppy{:--:}OSrev.fs of=/vol/dev/rdiskette0 bs=36b
If you are using another operating system, you may have to adapt
this to conform to local naming conventions for the floppy and
options suitable for copying to a "raw" floppy image. The key
issue is that the device name used for the floppy *must* be one
that refers to the correct block device, not a partition or
compatibility mode, and the copy command needs to be compatible
with the requirement that writes to a raw device must be in
multiples of 512-byte blocks. The variations are endless and
beyond the scope of this document.
If you're doing this on the system you intend to boot the floppy on,
copying the floppy back to a file and doing a compare or checksum
is a good way to verify that the floppy is readable and free of
read/write errors.
Note that, when installing, the boot floppy can be write-protected
(i.e. read-only).-:})dnl
dnl
dnl Tape preparation instructions.
dnl
dnl OpenBSDXferBareTape describes how to set up a non-bootable distribution
dnl tape, and takes as an optional argument, the list of X11 sets which
dnl may be put on the tape.
define({:-OpenBSDXferBareTape-:},
{:-Creating an installation tape:
While you won't be able to boot OpenBSD from a tape, you can use
one to provide the installation sets. To do so, you need to make
a tape that contains the distribution set files, each in "tar"
format or in "gzipped tar format". First you will need to
transfer the distribution sets to your local system, using ftp or
by mounting the CD-ROM containing the release. Then you need to
make a tape containing the files.
If you're making the tape on a UN*X-like system, the easiest way
to do so is make a shell script along the following lines, call it
"/tmp/maketape".
#! /bin/sh
TAPE=${TAPE:-/dev/nrst0}
mt -f ${TAPE} rewind
for file in base etc comp game man misc $1
do
dd if=${file}OSrev.tgz of=${TAPE} obs=8k conv=osync
done
tar cf ${TAPE} bsd
mt -f ${TAPE} offline
# end of script
And then:
cd .../OSREV/MACHINE
sh -x /tmp/maketape
If you're using a system other than OpenBSD or SunOS, the tape
name and other requirements may change. You can override the
default device name (/dev/nrst0) with the TAPE environment
variable. For example, under Solaris, you would probably run:
TAPE=/dev/rmt/0n sh -x /tmp/maketape
Note that, when installing, the tape can be write-protected
(i.e. read-only).-:})dnl
dnl OpenBSDXferBootTape describes how to set up a non-bootable distribution
dnl tape, and takes as first argument, the list of X11 sets which may be put
dnl on the tape. Then at least one, and up to three arguments list the first
dnl files to be put on the tape to make it bootable. Each filename can be
dnl followed by dd(1) arguments (such as conv=osync).
define({:-OpenBSDXferBootTape-:},
{:-Creating an (optionally bootable) installation tape:
To install OpenBSD from a tape, you need to make a tape that
contains the distribution set files, each in "tar" format or in
"gzipped tar format". First you will need to transfer the
distribution sets to your local system, using ftp or by
mounting the CD-ROM containing the release. Then you need to
make a tape containing the files.
If you're making the tape on a UN*X-like system, the easiest way
to do so is make a shell script along the following lines, call it
"/tmp/maketape".
#! /bin/sh
TAPE=${TAPE:-/dev/nrst0}
mt -f ${TAPE} rewind
if test {:-$-:}# -lt 1
then
dd of=${TAPE} if=$2
ifelse(X$3,X,,{:- dd of=${TAPE} if=$3
-:})dnl
ifelse(X$4,X,,{:- dd of=${TAPE} if=$4
-:})dnl
fi
for file in base etc comp game man misc $1
do
dd if=${file}OSrev.tgz of=${TAPE} obs=8k conv=osync
done
tar cf ${TAPE} bsd
mt -f ${TAPE} offline
# end of script
And then:
cd .../OSREV/MACHINE
sh -x /tmp/maketape
Note that, by default, this script creates a bootable tape. If
you only want to fetch the OpenBSD files from tape, but want to
boot from another device, you can save time and space creating
the tape this way:
cd .../OSREV/MACHINE
sh -x /tmp/maketape noboot
If you're using a system other than OpenBSD or SunOS, the tape
name and other requirements may change. You can override the
default device name (/dev/nrst0) with the TAPE environment
variable. For example, under Solaris, you would probably run:
TAPE=/dev/rmt/0n sh -x /tmp/maketape
Note that, when installing, the tape can be write-protected
(i.e. read-only).-:})dnl
dnl OpenBSDXferNFS [(noupgrade)]
define({:-OpenBSDXferNFS-:},
{:-To install OpenBSD using a remote partition, mounted via
NFS, you must do the following:
NOTE: This method of installation is recommended only for
those already familiar with using BSD network
configuration and management commands. If you aren't,
this documentation should help, but is not intended to
be all-encompassing.
Place the OpenBSD distribution sets you wish to install
into a directory on an NFS server, and make that directory
mountable by the machine on which you are installing or
upgrading OpenBSD. This will probably require modifying
the /etc/exports file of the NFS server and resetting
its mount daemon (mountd). (Both of these actions will
probably require superuser privileges on the server.)
You need to know the numeric IP address of the NFS
server, and, if the server is not on a network directly
connected to the machine on which you're installing or
upgrading OpenBSD, you need to know the numeric IP address
of the router closest to the OpenBSD machine. Finally,
you need to know the numeric IP address of the OpenBSD
machine itself.
Once the NFS server is set up properly and you have the
information mentioned above, you can proceed to the next
step in the installation ifelse(X$1,X,{:-or upgrade -:})process.ifelse(X$1,X,,{:- If you're
installing OpenBSD from scratch, go to the section on
preparing your hard disk, below. If you're upgrading an
existing installation, go directly to the section on
upgrading.-:})-:})dnl
dnl
define({:-OpenBSDXferFFS-:},
{:-If you are upgrading OpenBSD, you also have the option of installing
OpenBSD by putting the new distribution sets somewhere in your
existing file system, and using them from there. To do that, do
the following:
Place the distribution sets you wish to upgrade somewhere
in your current file system tree. At a bare minimum, you
must upgrade the "base" binary distribution, and so must
put the "base{:--:}OSrev" set somewhere in your file system. It
is recommended that you upgrade the other sets, as well.-:})dnl
dnl
define({:-OpenBSDInstNFS-:},
{:-Now you must populate the `/dev' directory for your client. If the server
does not run OpenBSD you might save the MAKEDEV output:
eo=echo ksh MAKEDEV all > all.sh
and then tailor it for your server operating system before running it. Note
that MAKEDEV is written specifically for ksh, and may not work on any other
Bourne shell.
There will be error messages about unknown users and groups. These errors are
inconsequential for the purpose of installing OpenBSD. However, you may
want to correct them if you plan to use the diskless setup regularly. In that
case, you may re-run MAKEDEV on your OpenBSD machine once it has booted.-:})dnl
|