[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-devel:11555] Re: [vague discussion] woody boot-floppies plans
佐野@浜松です。
参考のために debian-boot list のメールから引用しておきます
In article <20000207174538.E25437@xxxxxxxxxxx>,
at Mon, 7 Feb 2000 17:45:38 -0800,
on Re: [vague discussion] woody boot-floppies plans,
Joey Hess <joeyh@debian.org> さん writes:
> Glenn McGrath wrote:
> > This is the way i see it.
>
> You see it very, very much the way I do. :-)
>
> > The primary limitation on the quality of boot floppies is the limited
> > space we have to work with.
> > To make maximum use of space in the boot floppy, you only want things
> > you specifically need for your circumstance on the floppy.
> > The more flavours of hardware that debian supports the more complex its
> > instalation becomes.
> > There are some parts of the install that are generic, other parts are
> > specific to a particular instalation.
> >
> > A solution to the above could be to have a singular core module (like
> > dbootstrap) that is used by all installs, have everything else as a
> > seperate module. e.g. a network install module, install from local
> > storage module, install from CD module, install to local HD module,
> > install to NFS module, install to loopback device module, serial_console
> > module, newt module. Also architecture specific modules, like each
> > architecture would have its own kernel_arch module, and possible
> > partitioning_arch module. <Ok im waffling on a bit, im sure you get the
> > point>.
> >
> > If you have a loose collection of modules you could give the end user
> > control of the functionality they get in there boot disk. So they could
> > choose to use a generically generated boot disk, or choose to build
> > there own customised isntaller specific to there needs.
> >
> > By building a customised installer it should be possible for some people
> > to have a single install disk.
>
> Yep. Ok, let me send a brain dump to this list. This is a plan for a
> redesign of the boot floppies that I have been refining for about 3 months.
> Still pretty rough, but it lays out some specifics that match your ideas
> above.
>
> -----------------------------------------------------------------------------
>
> Redesigning Debian's boot floppies
> ----------------------------------
>
> Our install and our boot floppies have long been a problem for Debian.
> I'm going to try to identify the roots of the problems with the boot
> floppies and suggest some soutions, but first let's look at how the boot
> floppies work now and what they have to do.
>
> Boot floppies now
> -----------------
>
> A few stages can be identified in a debian install now:
>
> 1. initial boot off of install media (floppy, cd)
> - Syslinux (or other loader for other arch) is run, and it boots the kernel
> 2. kernel boot
> - The kernel sets up a ram disk and loads the main install system
> 3. main install system
> - Many subsections here. Key are:
> - identify local settings (is there color? What lanugage and time zone?)
> - load device drivers from install media
> - identify hardware, configure device drivers
> - set up install disk (partitioning, formatting)
> - install base system (kernel, base tarball, lilo (other loaders for
> other arch's))
> - This also includes a full shell system for rescue and other activities.
> 4. reboot
> - Several questions asked before the user is dumped into a normal login:
> - root password
> - add another user
> - shadow passwords, pcmcia, etc
> - package selection
> - package install
>
> The root of the problem
> -----------------------
>
> I think the core of our problems is in step 3. Everything that happens in
> step 3 is done with special-purpose code, that has to deal with all the
> possbilites (multiple arches, different install methods and hardware, etc)
> and must be crammed into as small a space as possible. Note that these two
> needs tend to conflict a lot!
>
> The code isn't reused in other parts of debian, and developers tend to
> forget about the installation once they've done it, so only a small team of
> people works on it. Contrast with step 4, where little of the code is
> special purpose, and space constrianst are no longer a real problem.
>
> I think that much of what is done in step 3 can be postponed to step 4.
> (Things like time zone setup, configuration of hardware not necessary to
> boot, etc). Anything that is pushed back to step 4 becomes part of a "real"
> debian system, and so I think it will get a lot more attention.
>
> Goals
> -----
>
> I would like to reorganize the boot floppies to accomplish the following
> goals:
>
> - Bring them back into the core of debian as much as possible, so more
> people work on them as part of normal debian work. This means getting
> a normal debian system up as soon as possible, and continuing the rest of
> the install inside it.
> - Make them modular, for increased flexability, and smaller size, and also
> so people "own" various parts of the install process, and are thus
> responsible for it, just like people are responsible for packages nowadays
> (this scales better).
> - Make the set of floppies you need to burn to install debian smaller.
> Ideally: 1.
> - Simplify the install as much as possible.
>
> New design
> ----------
>
> Here is an overview of the new design I am proposing. The install process is
> modularized, and works like this:
>
> 1. initial boot off of install media (floppy, cd)
> - Syslinux (or other loader for other arch) is run, and it boots the kernel
> 2. kernel boot
> - the kernel sets up an initrd, which contains the installer,
> UI, and bootstrap loader, and runs the installer
> 3. installer
> - figures out what UI to use and starts it in the most portable mode that
> UI has (ie, uncolored text in English).
> - runs the UI's setup program.
> - probes to see if any extra modules are available on the initrd. If so,
> sets them up. (optional)
> - if more than one downloader is available, asks which to use.
> - runs the downloader's setup program.
> - asks the downloader to see if there are any extra modules it can
> download. If so, gets them and sets them up. (optional)
> - tells the downloader to download the partitioner.
> ***** note that everything from here on is not on the initial boot floppy *****
> - mounts the partitioner on a ram disk, and runs the
> partitioner's setup program.
> - tells the downloader to download the base system.
> - unpacks the base system onto the filesystem the partitioner set up.
> (In an ideal world, the base system would be smaller, just containing dpkg
> and it's dependancies, and the rest would be downloaded and installed
> as .deb's in a chroot.)
> - chroots into the base system and runs the base setup program.
> 4. base setup program
> - This program runs inside a complete debian base system.
> - Sets up some but probably not all of:
> - lilo (or other loader)
> - the initrd debian will boot from
> - the timezone
> - additional hardware
> - shadow passwords
> - root's password
> - another user account
> - networking
> - Then it reboots into the full debian system, or perhaps optionally
> just runs init to start it w/o reboot.
> 5. booting the full debian system
> - Since the system was installed with a minimal kernel that cannot talk to
> the hard drive, an initrd must be used. The initrd has a syslinux file on
> it, and a set of modules. It just loads the modules, in a certian order,
> with certian parameters, and then lets the kernel pass control to init.
>
> The modules follow.
>
> The UI
>
> This is some kind of a modular UI with a simple API so other modules can use
> it. It's probably not much more complex than dialog. I want to say
> "mini debconf!" here, but I dunno if that's wise. :-)
>
> The UI has a basic setup program that is intended to ask just enough
> questions to get the UI setup and working. It might probe instead of asking
> questions. The things it needs to find out are probably:
>
> - what is your language?
> (This could be probed by looking to see if any other languages are
> available and if not, going with the one language that is)
> - If text GUI, does color work?
> (This could be assummed in some cases.)
> - If other GUI, other stuff.
> (Probing possible.)
>
> The downloader
>
> The sole purpose of this component is to acquire a file from somewhere.
> It might accomplish this by loading it off of floppies, or off a cd,
> or by initializing the ethernet, running dhcp, and then tfpting,
> nfs loading, or ftp or httping it off a server. Or even by setting up
> a modem and ppp, and downloading it.
>
> It is intended to be a modular compnent, with a simple API. There are two
> API calls:
> - set yourself up (may be a no-op, may be quite involved)
> - download a specified file to a specified location
>
> This lets one (very simple) downloader be put on CD's. Other loaders might be
> put on floppies, one per floppy. So there will be a "piles of floppies
> install" floppy; an "ethernet install" floppy, a "ppp install" floppy, etc.
>
> The partitioner
>
> The sole goal of this component is to set up the install destination
> and the swap space. So it will have drivers for various disks, a disk
> partitioner(s), formatters, etc, and when it is run it will interact with the
> user (or probe) to set up the disk.
>
> One other thing this module does is it stores data about what modules
> loaded, and how, plus what device files it made, etc. This data is used
> later when the full system is booted via initrd.
>
> Extra modules
>
> It should be possible to include extra modules on the boot media, or in the
> initrd (easier). These are almost like debian packages. They can be
> installed into the initrd, and provide extra functionality. When installed,
> a setup program in them is automatically run.
>
> The main thing I expect this will be used for is a module that provides a
> basic shell system and some tty's (busybox). I'm sure someone will want to
> stick doom in one so we can compete with Caldera's tetris. ;-)
>
> -----------------------------------------------------------------------------
>
> --
> see shy jo
--
# (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
<kgh12351@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)