File: README-Overview

package info (click to toggle)
boot-floppies 3.0.22
  • links: PTS
  • area: main
  • in suites: woody
  • size: 15,136 kB
  • ctags: 2,931
  • sloc: ansic: 22,623; sh: 4,906; python: 1,258; makefile: 1,157; yacc: 1,019; perl: 261; asm: 234; lex: 126; xml: 68; lisp: 51; awk: 15
file content (118 lines) | stat: -rw-r--r-- 5,597 bytes parent folder | download
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
The following is a little overview of the way Debian's boot floppies
work.  This is not a detailed description about the installation --
that can be found under the 'documentation' directory.  Rather, the
following gives an overview of the boot-floppies from a programmer's
perspective.

Before we begin, we should briefly discuss boot-floppies vs
debian-installer.  The latter package is basically the "Next
Generation" version of boot-floppies.  It is based on an
interface-independant front end and event processing system which
follows how debconf works pretty closely.

Once debian-installer matures, boot-floppies will be killed with
extreme prejudice.  Keep in mind, then, that boot-floppies is pretty
much near "end of life".  The last release that will be using it is
'woody'.

What this means is that we are not considering major revamps of
boot-floppies, except insofar as those revamps have immediate payback
in code maintainability.

It also means that we are not really considering any major new feature
additions.  Such work *can* be done in the 2nd stage part (after
booting into the base system -- see below) and thus be used by both
boot-floppies and debian-installer.




The following are the main steps of the installation process.  We try
to indicate what pieces of code are responsible for these steps.

- a boot loader starts a kernel with a root disk image as an initial
   RAM disk.  Note that this part of the installation is very
   system-dependent.

- A program called 'dbootstrap' is run from that root disk image.
   A shell may also be run on the second virtual console, and the root
   disk image contains a full set of tools for an expert to be able to do
   the installation "the hard way". That's why the boot disk is called the
   "rescue" disk.

- dbootstrap is used for the following:
   + partition the disks
   + initialize and activate swap and target partitions (using a set of
     tools linked into a sort of swiss-knife tool called busybox)
   + install kernel and modules: they may be installed from floppies,
     CD, local disk or the network
   + activate needed modules (ethernet card driver, PCMCIA subsystem...)
   + configure the network
   + install the base system -- The base system is a minimal set of
     essential packages that any Debian system needs to be able to boot
     and install other packages. It may also be installed from
     floppies, CD, local harddisk or network.
   + make the harddisk bootable and/or make a boot floppy
   + reboot (or alternatively, pivot_root into the new system,
     although that's not quite working yet)

- After the system reboots, 'base-config' is run automatically. It
   does a few other tasks like setting root's passwd, activating
   shadow passwords, creating a non-root user, etc.  'base-config'
   also prompts for the archive location and the means the user is
   going to use to install the rest of the system.  The user at this
   point can either use "simple" installation (tasksel and apt), or
   the "advanced" option, which goes right into dselect.

- The 'tasksel' package is run by base-config.  It lets the user
   choose one of the sets of task packages to install.  The user may
   skip this step and select the packages one by one using dselect
   "Select" menu.  Users can run tasksel anytime after installation it
   they want to add another task.  'apt-get' will be invoked
   automatically at this point and the selected tasks as well as
   "standard" level packages will be installed.

- dselect is still Debian's most mature front-end to the package
   installation tool, dpkg. It's not just a tool for first
   installations, but it may be used later anytime the user wants to
   update/install/remove some packages.  However, it was built when
   there were less than 500 packages, and it doesn't scale so well to
   the thousands and thousands we now have.  Therefore, it is provided
   for users who want to pick and choose their packages individually.

- After leaving 'base-config', a final message is shown, and then the
   common "login:" prompt will be shown. The installation is finished.


Now about the stages. With our current implementation we may divide
the installation in two stages:

- In the first stage a basic system is installed and configured:
   dbootstrap, base installation, manipulation of the boot loader, and
   some simple tasks which are minimized as much as possible.

- The second stage comprises base-config, tasksel, apt-get, dselect,
   and of course the packages themselves which are subsequently
   installed.  This stage includes any installation or configuration
   of any stuff after that first reboot into the new base system.

The boot-floppies team works just on the "1st stage" tools. The "2nd
stage" tools are maintained by other teams.  Our approach, generally,
is to try to get as much done in the 2nd stage as possible.  Partly
that's because it's easier to "divide and conquer", that is, delegate
responsibility for subsystems to the package maintainers of those
subsystems, rather than the boot-floppies maintainers.  It's also
partly because dbootstrap is a spaghetti code and is end of life (see
above).

Note that the tasksel and base-config teams are highly overlapping
with the boot-floppies team.  Thus, <debian-boot@lists.debian.org> is
as good a place as any to discuss them.  For other bug reports or
offers to help, you'll have to track down the right package(s) and
mailing lists.

Please send comments or suggestions to <debian-boot@lists.debian.org>.

						Enrique Zanardi
						<ezanard@debian.org>