http://www.phys.ethz.ch/~franklin/Projects/dphys3/QUICK_GUIDE author Neil Franklin, last modification 2006.11.16 copyright ETH Zuerich Physics Departement, use under either BSD or GPL license Configuration and Use of Installer ================================== 1. *PERMISSIONS* Switch to being root which is needed for generating the disk images, else loop mounts will not work, and they will get screwed up file owners on them anyway 2. Edit your configuration file dphys3 This one file tells dphys3 all it needs to know about your site specific details (the rest should default to sensible stuff): - which Debian mirror you are using (CONF_DEBSERVER) - layout of keyboard, filename without path or .kmap.gz ending (CONF_KEYBD) - select what swap system (file or partition) is wanted, and if that is partition the amount wanted, else set to 0 (CONF_SWAP_SIZE) - network card drivers you want to additionally include (CONF_MODULESNET) - desired password (CONF_PASSWORD_ROOT) - your time zone info, directoryname and filename relative to /usr/share/zoneinfo/ (CONF_TIMEZONE_AREA, CONF_TIMEZONE_PLACE) - your preference on what types of packages to use (CONF_USE_CONTRIB, CONF_USE_NON_FREE, CONF_USE_SECURITY) - if you want to make bootable floppies: your floppy drive (CONF_FLOPPY_DRV) - if you want to make an bootable CD: your CD burner (CONF_CD_DRV) - if you want to make an PXE boot: your boot server (CONF_PXE_SERVER) 3. If you want to make an own kernel, select in dphys3: - place kernel source archive and config file in current directory 4. If you want to automagically run an own script at the end of preseeding or either of the install stages: - uncomment and possibly set the filenames or URLs (CONF_END0STAGE, CONF_END1STAGE, CONF_END2STAGE) See the sample scripts for what can be done here: - End0stage may prevent partitioning and reformatting when doing reinstalls - End1stage may install an own custom kernel before the first reboot - End2stage may set up an installer for packages and configs we here regard as indispensable before any user gets an login prompt 5. *SECURITY* Ensure that the dphys3 config file is protected and remains so. Else you will compromise your root password (if CONF_PASSWORD_ROOT used): chmod 600 dphys3 6a. *MEDIA* For floppy installs: Get 2 formatted but empty floppy disks or: 6b. *MEDIA* For CD installs: Get an CD-R/RW or: 6c. *MEDIA* For netboot installs: Get server space 7. If you want to generate an facultative custom kernel, generate it with: dphys3kernel -dg 8. Generate your autoinstalling floppy images with: dphys3preseed -g # if using your above custom kernel dphys3preseed -dg # if using standard Debian kernel 9a. For floppy installs: write them with: dphys3boot -i # boot image to first floppy dphys3root -i # root image to second floppy or: 9b. For CD installs: generate and burn an boot+root iso image with: dphys3cd -gb or: 9c. For netboot installs: extract and upload the kernel and initrd with: dphys3pxe -xu Actual Installing on each Target ================================ 10. *TARGET* Go to your target system. Only the steps from here on to the end need to be repeated for each host. 11a. For floppy installs: Boot it from the boot floppy, and wait for it to demand an root floppy. Insert the root floppy and press enter. Wait for it to be read in, and the installation screens start to appear. or: 11b. For CD installs: Boot it from the CD. Wait for the CD to be read in, and the installation screens start to appear. or: 11c. For PXE installs: Boot it from your bootserver. Wait for the system to boot, and the installation screens start to appear. 12. For floppy or CD installs: eject the boot media, so that the host can auto-reboot from HD later on. 13. You can now log in with root and your password (there is no normal user), and have an fully installed Debian base system in front of you. Have fun with apt-get. Thats all folks! Facultative stuff after Install =============================== This section describes what we do after the base install, to also automate the rest of an complete install and the operation/update of our systems. You may be interested in also doing it this way. Central to this is the CONF_END2STAGE variable in dphys3preseed, and the included end2stage.dphys[1] example script, which it runs in the second install stage (after the reboot), right at the end (just before user logging in and running commands on the finished base system). [1] http://www.phys.ethz.ch/~franklin/Projects/dphys3/end2stage.dphys or /usr/share/doc/dphys3/examples/end2stage.dphys This additional script automatically: - genrates an config file /etc/dphys-config for our local configuration file manager package dphys-config[2] - installs dphys-config, which using its config files fetches its file list /etc/dphys-config.list (from an website configured in /etc/dphys-config) loads and merges all our desired config files (including /etc/dphys-admin and /etc/dphys-admin.list) - installs our local package manager dphys-admin[3], which using its list file /etc/dphys-admin.list installs all the packages we want to have [2] http://www.phys.ethz.ch/~franklin/Projects/dphys-config/ [3] http://www.phys.ethz.ch/~franklin/Projects/dphys-admin/ Our entire software list and site configuration has been reengineered and stored in form of above dphys-config.list and dphys-admin.list. This gives us near fully automatic system administration, just add file+NIS/LDAP servers with user files/accounts. Also important ist the CONF_END1STAGE variable in dphys3preseed, and the included end1stage.dphys[4] example script, which it runs in the first install stage (before the reboot), right at the end (just before the reboot). [4] http://www.phys.ethz.ch/~franklin/Projects/dphys3/end2stage.dphys or /usr/share/doc/dphys3/examples/end2stage.dphys This additional script automatically installs the fitting custom compiled kernel (and modules for it), which are optimised for processor type and memory size, onto the host. The needed multiple kernel variants and fitting modules are automatically generated from one basic .config file using dphys-kernel-packages[5]. [5] http://www.phys.ethz.ch/~franklin/Projects/dphys-kernel-packages/ Our own packages (kernels and other) are stored here on our local packages server, which is also added to the /etc/apt/source.list installed by dphys-config. The "main" section is used here by policy for "packages anyone can download from us", while "non-free" is used for "packages restricted to our hosts (containing passwords or license keys or commercial software)", which are only given out to our MAC addresses, and only to root user (as checked with identd). We use makesourcepackage[6] to make the packages and makelocalsite[7] to manage the package site, from the dphys-pkgtools[8] package to build the package site. [6] http://www.phys.ethz.ch/~franklin/Projects/dphys-pkgtools/makesourcepackage [7] http://www.phys.ethz.ch/~franklin/Projects/dphys-pkgtools/makelocalsite [8] http://www.phys.ethz.ch/~franklin/Projects/dphys-pkgtools/ Presently only workstations and kiosks are installed with dphys3. But we are currently also reengineering our terminal servers software and configs into this system, included by the servers host-specific list files.