Debian is a great project with wonderful leadership, but setting up a desktop takes a good amount of time and a few extra repos. I'd like to automate that task using a preseed file.
What is a Preseed File?
A preseed file is simply a file which gives answers to the questions offered by the Debian installer. It also offers the ability to add additional repositories, install additional packages, and run post-install commands.
That means we can use a preseed file and a net install iso to create the perfect Debian desktop.
At this point, we will probably have a modular set of preseed files since we will have several choices on a single CD
See an example preseed file.
So What Will We Do?
The process will work like this:
Because this system uses the net install method, your desktop will always be completely up to date when it is installed. One ~7MB iso will be adequate for the lifespan of that stable release.
- You download a netinst iso which has special boot parameters to load a preseed file over HTTP.
- You start the installer by booting the CD.
- Because the preseed file isn't present and the installer needs to set up networking in order to get it, you answer some questions about language and keymap.
- The installer connects to the network.
- The installer downloads the preseed file.
- The disk is wiped and formatted with a separate /home partition mounted noexec and nosuid, meaning that trojans will have a more difficult time taking hold.
- You answer questions about your location, root password, and user information.
- You wait a couple or several hours while #9-14 happen.
- The installer adds extra repositories and keys from the preseed file.
- The installer installs the base system.
- The installer installs the desktop system (or whatever is preseeded).
- The installer installs extra packages (e.g. Flash, codecs, Banshee-1, etc.).
- The installer installs Grub without prompting.
- The installer runs extra commands from the preseed file (e.g. GConf changes, GDM theming, etc.).
- You are prompted to reboot into your complete system (probably not now -- you'll just reboot into the new system).
So What's the Perfect Desktop?
Yeah .... That's the real question -- one that can't really be answered. The good news is that just a few changes to the preseed file will change the default applications in the desktop or even the whole desktop environment. To make the choice of desktop easy for the user, I propose separating the preseed files into DEs.
I'm going to start with the Gnome desktop and finish this list. After that, I can move on to things like preseeds for servers or specific laptop models.
Testing changes every few weeks. That's an issue I don't want to deal with, but Lenny can't be too far away and the system can't change much. I'll try to hard-code to Lenny so that nothing needs to change when the real release happens.
What about Sid?Exactly. Some people prefer Sid, and 'll put together preseed files for the major desktop choices.
LaptopsLater, I can make customized pre-seed files for various laptops. The choice of environment will depend on the laptop, of course.
This method is only appropriate for users with access to high-speed internet. Wireless probably won't work during the installation because there aren't enough drivers.
Once I have the preseed system in place, it may be possible to take snapshots and put these on an installation CD, but I think that will probably violate some laws somewhere. Right now, we're adding