aboutsummaryrefslogtreecommitdiff
path: root/nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml
blob: a9ab392ab794f648e172e887a0dd970ecfac98e7 (plain) (blame)
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
<!--
     The FreeBSD Dutch Documentation Project

     $FreeBSD$
     $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml,v 1.22 2005/01/22 13:12:14 siebrand Exp $
     Gebaseerd op: 1.59
-->

<chapter id="boot">
  <chapterinfo>
    <authorgroup>
      <author>
	<firstname>Erik</firstname>
	<surname>Radder</surname>
	<contrib>Vertaald door </contrib>
      </author>
    </authorgroup>
  </chapterinfo>

  <title>Het &os; Opstartproces</title>

  <sect1 id="boot-synopsis">
    <title>Overzicht</title>

    <indexterm><primary>booting</primary></indexterm>

    <indexterm><primary>bootstrap</primary></indexterm>

    <para>Het proces van het starten van de computer en het laden van
      het besturingssysteem wordt het <quote>bootstrapproces</quote>
      of simpelweg <quote>booten</quote> genoemd.  Het &os;
      opstartproces levert een grote mate van flexibiliteit doordat
      gewijzigd kan worden wat er gebeurt als het systeem start en
      geeft de mogelijkheid om te kiezen uit verschillende
      ge&iuml;nstalleerde besturingssystemen op dezelfde computer of
      zelfs verschillende versies van hetzelfde besturingssysteem of
      ge&iuml;nstalleerde kernel.</para>

    <para>Dit hoofdstuk geeft gedetailleerde informatie over
      instellingen die gebruikt kunnen worden en hoe het &os;
      opstartproces veranderd kan worden.  Dit omvat alles wat er
      gebeurt totdat de &os; kernel wordt geladen, gezocht heeft naar
      apparaten en &man.init.8; start.  Dit vindt plaats als tijdens
      het booten de tekstkleur verandert van helder wit naar
      grijs.</para>

    <para>Na het lezen van dit hoofdstuk weet de lezer:</para>

    <itemizedlist>
      <listitem>
	<para>Wat de onderdelen zijn van het &os; bootstrap-systeem en
	  hoe zij onderling communiceren;</para>
      </listitem>

      <listitem>
	<para>De opties die meegegeven kunnen worden aan de componenten
	  in de bootstrap om het proces te sturen;</para>
      </listitem>

      <listitem>
	<para>Meer over &man.device.hints.5;;</para>
      </listitem>
    </itemizedlist>

    <note>
      <title>Alleen voor x86</title>

      <para>Dit hoofdstuk beschrijft alleen het opstartproces van &os;
	dat draait op een Intel x86 systeem.</para>
    </note>
  </sect1>

  <sect1 id="boot-introduction">
    <title>Het Bootprobleem</title>

    <para>Het aanzetten van een computer en het starten van het
      besturingssysteem zorgt voor een interessant dilemma.  Vast staat
      dat een computer niet weet wat hij moet doen totdat het
      besturingssysteem gestart is.  Daar valt ook het starten van
      programma's op schijf onder.  Dus als een computer geen programma
      van schijf kan starten zonder besturingssysteem en het
      besturingssysteem staat op schijf, hoe wordt het
      besturingssysteem dan gestart?</para>

    <para>Dit is een gelijksoortig probleem als dat in het boek
      <citetitle>De avonturen van Baron von
	M&uuml;nchausen</citetitle>.  Iemand is in een put gevallen en
      heeft zichzelf eruit gehaald door zijn laarsriempjes (bootstraps)
      vast te pakken en zich op te trekken.  In het begin van het
      computertijdperk is de term <firstterm>bootstrap</firstterm>
      gegeven aan het mechanisme dat het besturingssysteem laadt.
      Later werd dit afgekort tot <quote>booten</quote>.</para>

    <para>Op x86 machines is het Basis Input/Output Systeem (BIOS)
      verantwoordelijk voor het laden van het besturingssysteem.  Om dit
      te doen zoekt het BIOS op de harde schijf naar het Master Boot
      Record (MBR), dat op een vaste plek op de schijf staat.  Het BIOS
      heeft voldoende kennis om het MBR te starten en gaat er vanuit
      dat de MBR de rest van de taken uitvoert die nodig zijn om het
      besturingssysteem te kunnen laden.</para>

    <indexterm><primary>BIOS</primary></indexterm>

    <indexterm>
      <primary>Basis Input/Output Systeem</primary>

      <see>BIOS</see>
    </indexterm>

    <para>Als er maar &eacute;&eacute;n besturingssysteem en een schijf
      ge&iuml;nstalleerd is, voldoet de standaard MBR.  Dit MBR zoekt
      naar de eerste opstartbare slice op schijf en start de code op
      deze slice om de rest van het besturingssysteem te laden.</para>

    <para>Indien er meerdere besturingssystemen op schijven staan, kan
      er een ander MBR ge&iuml;nstalleerd worden.  &euml;&euml;n dat
      een die lijst toont met verschillende besturingssystemen en de
      mogelijkheid geeft om er &eacute;&eacute;n te kiezen dat
      opgestart moet worden.  &os; wordt met zo'n MBR geleverd dat
      ge&iuml;nstalleerd kan worden.  Andere leveranciers van
      besturingssystemen hebben een alternatieve MBR.</para>

    <para>Het resterende deel van het &os; bootstrap-systeem is
      verdeeld in drie fases.  De eerste fase wordt gestart door het
      MBR, dat net voldoende informatie heeft om de computer in een
      bepaalde toestand te zetten en de tweede fase te starten.  De
      tweede fase kan net iets meer doen voordat hij de derde fase
      start.  De derde fase voltooit het laden van het
      besturingssysteem.  Dit proces is verdeeld in drie fases omdat de
      PC-standaarden grenzen stellen aan de grootte van programma's die
      gedraaid kunnen worden in de eerste twee fases van dit proces.
      Door deze taken aan elkaar te koppelen krijgt &os; een flexibeler
      laadgedeelte.</para>

    <indexterm><primary>kernel</primary></indexterm>

    <indexterm><primary><command>init</command></primary></indexterm>

    <para>Daarna wordt de kernel gestart en begint met het zoeken naar
      en initialiseren van apparaten.  Zodra het kernel-opstartproces
      klaar is, geeft de kernel de controle over aan het
      gebruikerproces &man.init.8;, dat controleert of de schijven een
      bruikbare status hebben.  Dan start &man.init.8; de instellingen
      op gebruikersniveau die de bestandssystemen mount, de
      netwerkkaarten instelt voor communicatie met het netwerk en in
      het algemeen worden de processen gestart die moeten draaien op
      een &os; systeem bij het opstarten.</para>
  </sect1>

  <sect1 id="boot-blocks">
    <title>Het MBR en de Bootfases E&eacute;n, Twee en Drie</title>

    <sect2 id="boot-boot0">
      <title>MBR, <filename>/boot/boot0</filename></title>

      <indexterm>
	<primary>Master Boot Record (MBR)</primary>
      </indexterm>

      <para>Het &os; MBR bevind zich in
	<filename>/boot/boot0</filename>.  Dit is een
	<emphasis>kopie</emphasis> van het MBR, omdat het echte MBR
	op een speciale plek op de schijf, los van de plek van &os;,
	moet staan.</para>

      <para><filename>boot0</filename> is erg simpel, omdat het
	programma in het <abbrev>MBR</abbrev> uit slechts 512 bytes mag
	bestaan.  Als &os; MBR is ge&iuml;nstalleerd en er staan andere
	besturingssystemen op een harde schijf, dan is bij het
	opstarten een scherm zien dat er ongeveer zo uitziet:</para>

      <example id="boot-boot0-example">
	<title><filename>boot0</filename> Schermafbeelding</title>

      <screen>F1 DOS
F2 &os;
F3 Linux
F4 ??
F5 Drive 1

Default: F2</screen>
      </example>

      <para>Andere besturingssystemen, &windows; in het bijzonder,
	staan er om bekend dat zij bestaande MBRs overschrijven met die
	van zichzelf.  Als dit is gebeurd of als het bestaande MBR
	vervangen moet worden door het &os; MBR:</para>

      <screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>device</replaceable></userinput></screen>

      <para>Waar <replaceable>device</replaceable> het apparaat is waar
	de computer van boot, zoals <devicename>ad0</devicename> voor
	de eerste IDE-schijf <devicename>ad2</devicename> voor de
	eerste IDE-schijf op de tweede IDE-controller,
	<devicename>da0</devicename> voor de eerste SCSI-schijf,
	enzovoort.</para>

      <para>Voor &linux; gebruikers die de voorkeur aan
	<application>LILO</application> geven om het opstartproces te
	beheren, moet <filename>/etc/lilo.conf</filename> gewijzigd
	worden voor &os; of <option>Leave The Master Boot Record
	  Untouched</option> gekozen worden tijdens het &os;
	installatieproces.  Als de &os; boot manager is
	ge&iuml;nstalleerd, dan &linux; weer opgestarten worden en aan
	het <application>LILO</application> instellingenbestand
	<filename>/etc/lilo.conf</filename> de volgende opties
	toegevoegd worden:</para>

      <programlisting>other=/dev/hdXY
table=/dev/hdb
loader=/boot/chain.b
label=&os;</programlisting>

      <para>Deze zorgen er voor dat zowel &os; als &linux; via
	<application>LILO</application> kunnen opstarten.  In dit
	voorbeeld wordt <replaceable>XY</replaceable> gebruikt om
	drive-nummer en partitie te bepalen.  Als er een
	<acronym>SCSI</acronym> drive gebruikt wordt, dan moet
	<replaceable>/dev/hdXY</replaceable> gewijzigd worden om iets
	te kunnen lezen als <replaceable>/dev/sdXY</replaceable>, die
	dan ook de <replaceable>XY</replaceable> schrijfwijze gebruikt.
	De <option>loader=/boot/chain.b</option> kan weggelaten worden
	als beide besturingssystemen op dezelfde drive staan.  Nu kan
	<command>/sbin/lilo -v</command> gestart worden om de net
	gemaakte wijzigingen door te voeren in het systeem.  Dit is te
	controleren aan de hand van de schermmeldingen.</para>
    </sect2>

    <sect2 id="boot-boot1">
      <title>Fase E&eacute;n <filename>/boot/boot1</filename> en
	Fase Twee <filename>/boot/boot2</filename></title>

      <para>Conceptueel zijn de eerste en tweede fase onderdeel van
	hetzelfde programma op hetzelfde stukje schijf.  Door
	ruimtebeperkingen zijn ze in twee stukken gesplitst.  Ze worden
	echter altijd samen ge&iuml;nstalleerd.</para>

      <para>Deze staan in de opstart-sector van de opstart-slice, daar
	waar <link linkend="boot-boot0">boot0</link> en ieder ander
	programma in het <abbrev>MBR</abbrev> programma's verwacht om
	het opstartproces te voltooien.  De bestanden in de map
	<filename>/boot</filename> zijn kopie&euml;n van de echte
	bestanden die opgeslagen zijn buiten het &os;
	bestandssysteem.</para>

      <para><filename>boot1</filename> is erg simpel omdat ook deze
	slechts 512 bytes groot kan zijn en net genoeg weet over het
	&os; <firstterm>disklabel</firstterm>, dat informatie bevat
	over de slice om <filename>boot2</filename> te vinden en te
	starten.</para>

      <para><filename>boot2</filename> is iets verfijnder en begrijpt
	het &os; bestandssysteem genoeg om er bestanden op te vinden
	en geeft een simpele interface om de kernel of loader te kiezen
	die gestart moet worden.</para>

      <para><filename>boot2</filename> start meestal de <link
	  linkend="boot-loader">loader</link>, doordat deze veel slimmer
	is en gebruikersvriendelijke opstartinstellingen heeft.
	Voorheen was het zijn taak direct de kernel te starten.</para>

      <example id="boot-boot2-example">
	<title><filename>boot2</filename> Schermafbeelding</title>

	<screen>&gt;&gt; &os;/i386 BOOT
Default: 0:ad(0,a)/kernel
boot:</screen>
      </example>

      <para>Als ooit eens de ge&iuml;nstalleerde
	<filename>boot1</filename> en <filename>boot2</filename>
	vervangen moeten worden kan dat met &man.disklabel.8;:</para>

      <screen>&prompt.root; <userinput>disklabel -B <replaceable>diskslice</replaceable></userinput></screen>

      <para>In het voorbeeld hierboven is
	<replaceable>diskslice</replaceable> de schijf en slice waarvan
	opgestart wordt, zoals <devicename>ad0s1</devicename> voor de
	eerste slice op de eerste IDE-schijf.</para>

      <warning>
	<title>Gevaarlijk Toegewijde Modus</title>

	<para>Als alleen een schijfnaam als
	  <devicename>ad0</devicename> gebruikt wordt in
	  &man.disklabel.8; wordt er een een gevaarlijk toegewijde
	  schijf zonder slices gemaakt.  Dit is niet aan te raden en
	  daarom wordt aangeraden voor het uivoeren van
	  &man.disklabel.8; de commandoregel nog een keer te
	  controleren voordat er op <keycap>Return</keycap> wordt
	  gedrukt.</para>
      </warning>
    </sect2>

    <sect2 id="boot-loader">
      <title>Fase Drie, <filename>/boot/loader</filename></title>

      <indexterm><primary>boot-loader</primary></indexterm>

      <para>De loader is de laatse fase van de drietraps-bootstrap en
	deze bevindt zich op het bestandssysteem, meestal als
	<filename>/boot/loader</filename>.</para>

      <para>De loader is bedoeld als een gebruikersvriendelijke manier
	voor de instelling, door gebruik te maken van een makkelijke
	commandoverzameling, gesteund door een krachtige vertaler met
	een wat complexere commandoverzameling.</para>

      <sect3 id="boot-loader-flow">
	<title>Loader Programmaverloop</title>

	<para>Tijdens de start zoekt de loader naar een console en
	  schijven en kijkt van welke schijf er opgestart wordt.
	  Variabelen worden hiernaar gezet en er wordt een vertaler
	  gestart zodat gebruikercommando's interactief of via een
	  script kunnen worden doorgegeven.</para>

	<indexterm><primary>loader</primary></indexterm>

	<indexterm><primary>loader-configuration</primary></indexterm>

	<para>Dan leest de loader <filename>/boot/loader.rc</filename>,
	  die dan standaard
	  <filename>/boot/defaults/loader.conf</filename> leest.  Deze
	  plaatst redelijke standaarden in variabelen en leest
	  <filename>/boot/loader.conf</filename> voor lokale
	  wijzigingen op deze variabelen.
	  <filename>loader.rc</filename> reageert op deze variabelen
	  door de geselecteerde modules en kernel te laden.</para>

	<para>Als laatste wordt standaard door de loader 10 seconden
	  gewacht op toetsinvoer en als dit niet wordt onderbroken
	  laadt loader de kernel.  Als het wel wordt onderbroken krijgt
	  de gebruiker een prompt aangeboden die een eenvoudige
	  commandoverzameling begrijpt.  Hier kan de gebruiker
	  variabelen wijzigen, alle modules stoppen en/of starten en
	  uiteindelijk opstarten of herstarten.</para>
      </sect3>

      <sect3 id="boot-loader-commands">
	<title>Ingebouwde Loadercommando's</title>

	<para>Hieronder worden de meest gebruikte loadercommando's
	  besproken.  Een volledige omschrijving van alle beschikbare
	  commando's staat in &man.loader.8;.</para>

	<variablelist>
	  <varlistentry>
	    <term>autoboot <replaceable>seconden</replaceable></term>

	    <listitem>
	      <para>Gaat door met het opstarten van de kernel als deze
		niet wordt onderbroken binnen de opgegeven tijd in
		seconden.  Er wordt een aftelproces getoond dat
		standaard op 10 seconden staat.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>boot
	      <optional><replaceable>-opties</replaceable></optional>
	      <optional><replaceable>kernelnaam</replaceable></optional></term>

	    <listitem>
	      <para>Start direct de kernel op met de opgegeven opties
		en naam, indien meegegeven.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>boot-conf</term>

	    <listitem>
	      <para>Doorloopt hetzelfde automatische instellen van
		modules gebaseerd op variabelen zoals ook gebeurt bij
		het opstarten.  Dit is alleen zinnig als eerst
		<command>unload</command> is gebruikt en enkele
		variabelen zijn gewijzigd, meestal
		<envar>kernel</envar>.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>help <optional><replaceable>onderwerp</replaceable></optional></term>

	    <listitem>
	      <para>Toont documentatie uit
		<filename>/boot/loader.help</filename>.  Als het
		opgegeven onderwerp <literal>index</literal> is, wordt
		een lijst met beschikbare onderwerpen getoond.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>include <replaceable>bestandsnaam</replaceable> &hellip;</term>

	    <listitem>
	      <para>Verwerkt het bestand met de opgegeven naam.  Het
		bestand wordt ingelezen en regel voor regel
		vertaald.  Iedere foutmelding stopt direct het
		include-commando.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>load <optional><option>-t</option>
	      <replaceable>type</replaceable></optional>
	      <replaceable>bestandsnaam</replaceable></term>

	    <listitem>
	      <para>Laadt de kernel, kernel-module of bestand van
		opgegeven type en naam.  Ieder argument achter de
		bestandsnaam wordt doorgegeven aan het bestand.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>ls <optional><option>-l</option></optional>
	      <optional><replaceable>padnaam</replaceable></optional></term>

	    <listitem>
	      <para>Toont de lijst bestanden in het opgegeven pad of
		van de rootmap als geen pad wordt opgegeven.  Als
		<option>-l</option> wordt meegegeven wordt ook de
		bestandsgrootte weergegeven.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>lsdev <optional><option>-v</option></optional></term>

	    <listitem>
	      <para>Toont de lijst met alle apparaten waarvan het
		mogelijk is om modules te kunnen laden.  Als
		<option>-v</option> wordt meegegeven worden meer
		details getoond.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>lsmod <optional><option>-v</option></optional></term>

	    <listitem>
	      <para>Toont geladen modules.  Als <option>-v</option>
		wordt meegegeven worden meer details getoont.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>more <replaceable>bestandsnaam</replaceable></term>

	    <listitem>
	      <para>Toont de inhoud van het opgegeven bestand met een
		pauze na iedere <varname>LINES</varname> regels.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>reboot</term>

	    <listitem>
	      <para>Herstart het systeem onmiddelijk.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>set <replaceable>variabele</replaceable></term>

	    <term>set
	      <replaceable>variabele</replaceable>=<replaceable>waarde</replaceable>
	    </term>

	    <listitem>
	      <para>Vult de omgevingsvariabele van de loader.</para>
	    </listitem>
	  </varlistentry>

	  <varlistentry>
	    <term>unload</term>

	    <listitem>
	      <para>Verwijdert alle geladen modules.</para>
	    </listitem>
	  </varlistentry>
	</variablelist>
      </sect3>

      <sect3 id="boot-loader-examples">
	<title>Loader Voorbeelden</title>

	<para>Hier zijn wat practische voorbeelden van het gebruik van
	  loader:</para>

	<itemizedlist>
	  <indexterm><primary>single-user modus</primary></indexterm>

	  <listitem>
	    <para>De kernel opstarten in single-user modus:</para>

	    <screen><userinput>boot -s</userinput></screen>
	  </listitem>

	  <listitem>
	    <para>De gebruikelijke kernel en modules ontladen om daarna
	      de oude (of een andere) kernel te laden:</para>

	    <indexterm>
	      <primary><filename>kernel.old</filename></primary>
	    </indexterm>

	    <screen><userinput>unload</userinput>
<userinput>load <replaceable>kernel.old</replaceable></userinput></screen>

	    <para><filename>kernel.GENERIC</filename> kan gebruikt
	      worden als de algemene kernel die meegeleverd is bij de
	      installatieschijf of <filename>kernel.old</filename> om de
	      vorige ge&iuml;nstalleerde kernel te gebruiken (als
	      bijvoorbeeld de kernel is vervangen).</para>

	    <note>
	      <para>Zo worden de bekende modules geladen met een andere
		kernel:</para>

	      <screen><userinput>unload</userinput>
<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput>
<userinput>boot-conf</userinput></screen>
	    </note>
	  </listitem>

	  <listitem>
	    <para>Voor het laden van een kernelinstellingenscript (een
	      script dat dingen doet die anders met de hand ingegeven
	      zouden worden):</para>

	    <screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
	  </listitem>
	</itemizedlist>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="boot-kernel">
    <title>Interactie met de Kernel Tijdens Opstarten</title>

    <indexterm>
      <primary>kernel</primary>

      <secondary>interactie opstarten</secondary>
    </indexterm>

    <para>Zodra de kernel is geladen door de <link
	linkend="boot-loader">loader</link> (zoals gewoonlijk)
      of door <link linkend="boot-boot1">boot2</link> (zonder de
      loader), wordt er als ze er zijn gekeken naar de
      opstartvlaggen en wordt het gedrag zo nodig aangepast.</para>

    <sect2 id="boot-kernel-bootflags">
      <indexterm>
	<primary>kernel</primary>

	<secondary>opstartvlaggen</secondary>
      </indexterm>

      <title>Opstartvlaggen Kernel</title>

      <para>De meest voorkomende opstartvlaggen:</para>

      <variablelist id="boot-kernel-bootflags-list">
	<varlistentry>
	  <term><option>-a</option></term>

	  <listitem>
	    <para>Vraag tijdens de opstart van de kernel om het
	      apparaat dat gemount moet worden als root
	      bestandssysteem.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-C</option></term>

	  <listitem>
	    <para>Boot van CDROM.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-c</option></term>

	  <listitem>
	    <para>Start UserConfig om instellingen te maken voor de
	      kernel tijdens het opstarten.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-s</option></term>

	  <listitem>
	    <para>Start naar single-user modus.</para>
	  </listitem>
	</varlistentry>

	<varlistentry>
	  <term><option>-v</option></term>

	  <listitem>
	    <para>Geef meer tekst en uitleg tijdens het opstarten van
	      de kernel.</para>
	  </listitem>
	</varlistentry>
      </variablelist>

      <note>
	<para>In &man.boot.8; staan alle bootvlaggen beschreven.</para>
      </note>
    </sect2>
  </sect1>

  <sect1 id="device-hints">
    <sect1info>
      <authorgroup>
	<author>
	  <firstname>Tom</firstname>
	  <surname>Rhodes</surname>
	  <contrib>Bijgedragen door </contrib>
	</author>
      </authorgroup>
    </sect1info>

    <indexterm>
      <primary>device.hints</primary>
    </indexterm>

    <title>Device Hints</title>

    <note>
      <para>Dit onderwerp is alleen van toepassing op &os;&nbsp;5.0 en
	later.</para>
    </note>

    <para>Tijdens het opstarten van het systeem leest de boot
      &man.loader.8; het bestand &man.device.hints.5;.  Dit bestand
      slaat opstartinformatie voor de kernel op in variabelen, ook wel
      <quote>device hints</quote>.  Deze <quote>device hints</quote>
      worden door stuurprogramma's gebruikt voor instelling van
      apparaten.</para>

    <para>Device hints kunnen ook bij het <link linkend="boot-loader">
	Fase Drie, <filename>/boot/loader</filename></link> prompt
      ingevoerd worden.  Variabelen kunnen toegevoegd worden met behulp
      van <command>set</command>, verwijderd worden met
      <command>unset</command> en bekeken worden met
      <command>show</command>.  Variabelen uit
      <filename>/boot/device.hints</filename> kunnen hier ook herroepen
      worden.  Device hints die ingevoerd zijn bij de boot loader zijn
      niet permanent en zijn bij de volgende boot niet meer
      aanwezig.</para>

    <para>Zodra het systeem opgestart is, kan &man.kenv.1; gebruikt
      worden om alle variabelen te bekijken.</para>

    <para>De schrijfwijze voor <filename>/boot/device.hints</filename>
      is &eacute;&eacute;n variabele per regel.  Het standaard hekje
      <quote>#</quote> wordtd gebruikt voor commentaar.  Regels worden
      als volgt opgebouwd:</para>

    <screen><userinput>hint.driver.unit.keyword="<replaceable>waarde</replaceable>"</userinput></screen>

    <para>De syntaxis voor de Fase 3 boot loader is:</para>

    <screen><userinput>set hint.driver.unit.keyword=<replaceable>waarde</replaceable></userinput></screen>

    <para><literal>driver</literal> is de naam van het
      apparaatstuurprogramma, <literal>unit</literal> is het
      apparaatnummer van het stuurprogramma en
      <literal>keyword</literal> is het hint-sleutelwoord.  Dit
      sleutelwoord kan uit de volgende opties bestaan:</para>

    <itemizedlist>
      <listitem>
	<para><literal>at</literal>: beschrijft de bus waarop het
	  apparaat is aangesloten.</para>
      </listitem>

      <listitem>
	<para><literal>port</literal>: beschrijft het startadres van
	  de <acronym>I/O</acronym> die gebruikt wordt.</para>
      </listitem>

      <listitem>
	<para><literal>irq</literal>: beschrijft het interrupt request
	  nummer dat gebruikt wordt.</para>
      </listitem>

      <listitem>
	<para><literal>drq</literal>: beschrijft het DMA
	  kanaalnummer.</para>
      </listitem>

      <listitem>
	<para><literal>maddr</literal>: beschrijft het fysieke
	  geheugenadres dat gebruikt wordt door het apparaat.</para>
      </listitem>

      <listitem>
	<para><literal>flags</literal>: zet verschillende vlagbits voor
	  het apparaat.</para>
      </listitem>

      <listitem>
	<para><literal>disabled</literal>: is <literal>1</literal>
	  als het apparaat is uitgezet.</para>
      </listitem>
    </itemizedlist>

    <para>Apparaatstuurprogramma's kunnen hints die hier niet genoemd
      zijn accepteren (of eisen).  Zie hiervoor de betreffende
      handleiding: &man.device.hints.5;, &man.kenv.1;,
      &man.loader.conf.5; en &man.loader.8;.</para>
  </sect1>

  <sect1 id="boot-init">
    <indexterm>
      <primary><command>init</command></primary>
    </indexterm>

    <title>Init: Start van Procesbesturing</title>

    <para>Als de kernel klaar is met opstarten geeft die de besturing
      over aan het gebruikerproces &man.init.8;, te vinden in
      <filename>/sbin/init</filename> of de padnaam die staat
      is in de variabele <envar>init_path</envar> in
      <command>loader</command>.</para>

    <sect2 id="boot-autoreboot">
      <title>Automatische Herstart</title>

      <para>De automatische herstart (<quote>Automatic Reboot
	  Sequence</quote>) controleert of de beschikbare
	bestandssystemen betrouwbaar zijn.  Als dat niet zo is en
	&man.fsck.8; kan de fouten niet repareren, dan brengt
	&man.init.8; het systeem terug naar <link
	  linkend="boot-singleuser">Single-user Modus</link> voor de
	systeembeheerder, die het probleem dan directer kan
	aanpakken.</para>
    </sect2>

    <sect2 id="boot-singleuser">
      <title>Single-user Modus</title>

      <indexterm><primary>single-user modus</primary></indexterm>

      <indexterm><primary>console</primary></indexterm>

      <para>Deze modus kan bereikt worden vanuit de <link
	  linkend="boot-autoreboot">Automatische Herstart</link> of door
	de gebruiker die opstart met de optie <option>-s</option> of
	door de variabele <envar>boot_single</envar> aan te zetten in
	de <command>loader</command>.</para>

      <para>Het kan ook door &man.shutdown.8; te starten zonder
	de optie reboot (<option>-r</option>) of halt
	(<option>-h</option>), vanuit <link
	  linkend="boot-multiuser">Multi-user Modus</link>.</para>

      <para>Als het systeem <literal>console</literal> op
	<literal>insecure</literal> staat in
	<filename>/etc/ttys</filename>, dan vraagt het systeem om het
	<username>root</username> wachtwoord voordat de single-user
	modus wordt gestart.</para>

      <example id="boot-insecure-console">
	<title>Onveilige Console in
	  <filename>/etc/ttys</filename></title>

	<programlisting># name  getty                           type    status          comments
#
# Als de console op "insecure" staat vraagt init om het root wachtwoord
# voor het naar single-user modus gaan.
console none                            unknown off insecure</programlisting>
      </example>

      <note>
	<para>Met een <literal>insecure</literal> console wordt bedoeld
	  dat de fysieke beveiliging van het console niet goed is en
	  dat dat alleen personen die het <username>root</username>
	  wachtwoord kennen naar single-user modus mogen gaan.  Het
	  betekent niet dat het console onveilig wordt ingesteld.  Als
	  het veilig moet, wordt er dus voor
	  <literal>insecure</literal> gekozen en niet voor
	  <literal>secure</literal>.</para>
      </note>
    </sect2>

    <sect2 id="boot-multiuser">
      <title>Multi-user Modus</title>

      <indexterm><primary>multi-user modus</primary></indexterm>

      <para>Als &man.init.8; vindt dat het bestandssysteem
	in orde is of zodra de gebruiker klaar is in <link
	  linkend="boot-singleuser">Single-user Modus</link>, gaat het
	systeem over naar multi-user modus, waarin het de resource
	configuration (broninstellingen) van het systeem start.</para>

      <sect3 id="boot-rc">
	<indexterm><primary>rc-bestanden</primary></indexterm>

	<title>Bronconfiguratie (rc)</title>

	  <para>Het broninstellingensysteem leest de
	    standaard instellingen in vanuit
	    <filename>/etc/defaults/rc.conf</filename> en
	    specifieke systeemdetails uit
	    <filename>/etc/rc.conf</filename> en gaat daarna door
	    met het mounten van de bestandssystemen voor het systeem die
	    genoemd worden in <filename>/etc/fstab</filename>, start
	    netwerkdiensten, start andere systeemdaemons en start als
	    laatste de opstartscripts van lokaal ge&iuml;nstalleerde
	    packages.</para>

	  <para>&man.rc.8; is een goede referentie voor het
	    broninstellingensysteem.  Dat zijn de scripts zelf
	    natuurlijk ook.</para>
      </sect3>
    </sect2>
  </sect1>

  <sect1 id="boot-shutdown">
    <title>Shutdownvolgorde</title>

    <indexterm>
      <primary><command>shutdown</command></primary>
    </indexterm>

    <para>Bij een gecontroleerde shutdown met &man.shutdown.8; probeert
      &man.init.8; om het script <filename>/etc/rc.shutdown</filename>
      te starten en daarna aan alle processen het
      <literal>TERM</literal> signaal te sturen en eventueel het
      <literal>KILL</literal> signaal aan alle processen die niet op
      tijd zijn gestopt.</para>

    <para>Om een &os; machine uit te zetten die energiebeheer
      ondersteund, kan het commando <command>shutdown -p now</command>
      gegeven worden om gelijk de stroom af te schakelen.  Als er
      herstart moet worden dan kan <command>shutdown -r now</command>
      gebruikt worden.  De gebruiker die dit uitvoert moet wel
      <username>root</username> zijn of lid van de
      <groupname>operator</groupname> groep om &man.shutdown.8; te
      mogen gebruiken.  &man.halt.8; en &man.reboot.8; kunnen ook
      gebruikt worden.  Meer informatie is in de betreffende
      handleidingpagina's te vinden.</para>

    <note>
      <para>Voor energiebeheer is &man.acpi.4; ondersteuning in de
	kernel nodig.  Deze kan ook als module geladen worden voor
	&os;&nbsp;5.X.  Voor &os;&nbsp;4.X is dit &man.apm.4;.</para>
    </note>
  </sect1>
</chapter>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->