1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-12-14 16:46:09 +00:00
Commit graph

3257 commits

Author SHA1 Message Date
Eelco Dolstra 0b26af2188 * The installer now installs a configuration on the target device that
boots into stage 1 (kernel+initrd) succesfully.
  
  `system-configuration.nix' contains the definition of the
  configuration to be installed.  The attribute systemConfiguration is
  installed into the profile /nix/var/nix/profiles/system.  Then the
  program /nix/var/nix/profiles/system/bin/switch-to-configuration is
  called to finalise the installation.  This program (generated by
  system-configuration.sh) installs Grub on the drive with a menu that
  contains the entry for the desired kernel and initrd.

  In principle this allows us to do rollbacks to previous system
  configurations by doing `nix-env --rollback' and then calling
  switch-to-configuration to update Grub.  Ideally this should be done
  in a single command (and we should consider the obvious risk of
  garbage collecting the current kernel etc. to which the current Grub
  menu points...).

  Maybe the responsibility for generating the Grub menu should be
  placed somewhere else.  For instance, we could generate a Grub menu
  automatically out of all the generations in the `system' profile.

svn path=/nixu/trunk/; revision=7009
2006-11-12 23:30:03 +00:00
Eelco Dolstra 0785dfb9f8 * Lots of refactoring; put the CD image generation in rescue-cd.nix.
Support booting from something other than a CD.  Add some parameters
  to specify the root device.

svn path=/nixu/trunk/; revision=7000
2006-11-12 18:48:47 +00:00
Eelco Dolstra afc05314c4 * The installer now takes a user-specified Nix expression that will be
built in the target Nix store and installed in the "system" user
  environment.  Not quite sure what should go in there, but probably
  the kernel, initrd, the boot scripts and eventually the system
  services.  Maybe grub as well.

svn path=/nixu/trunk/; revision=6993
2006-11-11 22:31:26 +00:00
Eelco Dolstra b7e8c174a1 * Add Perl to the path (since it was already on the CD as a dependency).
svn path=/nixu/trunk/; revision=6992
2006-11-11 22:29:05 +00:00
Eelco Dolstra b60dd36c8f * Set up the target file system, copy Nix, do a nix-pull in a chroot,
and do a nix-env to install some packages.

svn path=/nixu/trunk/; revision=6991
2006-11-11 17:59:08 +00:00
Eelco Dolstra 67f3ee3b64 * Probe for the NixOS installation CD.
svn path=/nixu/trunk/; revision=6985
2006-11-10 14:38:15 +00:00
Eelco Dolstra 4b333e0f67 * Add the installer and rsync to the path.
svn path=/nixu/trunk/; revision=6979
2006-11-08 09:31:45 +00:00
Eelco Dolstra 6705045334 * Start of the installer: copy the closure of Nix to the target device
so we can then do nix-env operations in a chroot to do the actual
  installation.

svn path=/nixu/trunk/; revision=6977
2006-11-08 02:34:14 +00:00
Eelco Dolstra 624fe3f2d4 * Automatically bring up the network devices and start dhclient on
them.

svn path=/nixu/trunk/; revision=6976
2006-11-07 22:45:42 +00:00
Eelco Dolstra da8cec4795 * Use udevtrigger to create device nodes for all known devices.
* Plug and play: load kernel modules for all supported PCI devices
  automatically.

svn path=/nixu/trunk/; revision=6975
2006-11-07 22:05:27 +00:00
Eelco Dolstra 8a43fcd57c * Stage 1: clean up better (unmount /proc and /sys, remount new root
to /).
* Stage 2: use sysvinit to create a bunch of mingetty's on virtual
  consoles 1-6.  Show a nice welcoming message.  Start syslogd and log
  everything to tty10.

svn path=/nixu/trunk/; revision=6963
2006-11-06 22:21:50 +00:00
Eelco Dolstra 1cec62ba5d * Add additional packages to the path of the interactive shell started
at the end of stage 2.
* Stage 2: set MODULE_DIR to point at a full module tree.

svn path=/nixu/trunk/; revision=6954
2006-11-04 13:25:10 +00:00
Eelco Dolstra 2e2af9df0a * Doh x3.
svn path=/nixu/trunk/; revision=6951
2006-11-04 12:08:10 +00:00
Eelco Dolstra 09cdc88291 * Doh x2.
svn path=/nixu/trunk/; revision=6950
2006-11-04 12:08:02 +00:00
Eelco Dolstra 07d2f691f0 * Doh.
svn path=/nixu/trunk/; revision=6949
2006-11-04 12:07:16 +00:00
Eelco Dolstra b3c6510393 * Conform to build farm conventions.
svn path=/nixu/trunk/; revision=6948
2006-11-04 12:00:05 +00:00
Eelco Dolstra eb1c50ebc9 * Version number, stable marker.
svn path=/nixu/trunk/; revision=6947
2006-11-04 11:27:08 +00:00
Eelco Dolstra db08678bd4 * Create dummy mount points in the ISO image for /proc etc.
svn path=/nixu/trunk/; revision=6946
2006-11-04 00:18:22 +00:00
Eelco Dolstra 1691c66673 * Nix expression for stage 2.
* Start stage 2 from stage 1.

svn path=/nixu/trunk/; revision=6945
2006-11-04 00:01:13 +00:00
Eelco Dolstra 14cc7b8828 * Support adding the closure of a set of store paths to the ISO
image (along with an /init symlink for stage 2 of the boot
  process).

svn path=/nixu/trunk/; revision=6944
2006-11-03 23:41:57 +00:00
Eelco Dolstra 1aa35c8267 * Instead of adding all of util-linux to the initd, add just mount
(and nuke its references so that we don't get glibc etc.).  The
  initrd is now 3.2 MB (and that includes the entire staticTools from
  the stdenv bootstrap, most of which we don't actually need).

svn path=/nixu/trunk/; revision=6942
2006-11-03 13:35:02 +00:00
Eelco Dolstra a94dd5c8b1 * Given a kernel build (with modules in $kernel/lib/modules/VERSION),
`modules-closure.nix' produces a module tree in
  $out/lib/modules/VERSION that contains only the modules identified
  by `rootModules', plus their dependencies.  It also generates an
  appropriate modules.dep.  This is useful for initrds, as we
  obviously don't want a copy of the entire kernel module tree in the
  initial RAM disk.

svn path=/nixu/trunk/; revision=6939
2006-11-03 11:47:40 +00:00
Eelco Dolstra 412fcfe2f7 * Fixes.
svn path=/nixu/trunk/; revision=6937
2006-11-03 09:49:34 +00:00
Eelco Dolstra 6eb94a9bfd * Load some modules, mount the install CD.
svn path=/nixu/trunk/; revision=6936
2006-11-03 09:45:06 +00:00
Eelco Dolstra 23381ed03f * Add the module tools, util-linux and the kernel modules to the
initrd.  Of course, the next step is to only add the kernel modules
  that we're going to need.

svn path=/nixu/trunk/; revision=6934
2006-11-03 00:36:08 +00:00
Eelco Dolstra 707dd20538 * Make device nodes in the stage 1 init (copied from ../init.sh).
svn path=/nixu/trunk/; revision=6932
2006-11-02 23:58:06 +00:00
Eelco Dolstra ae4b6973bb * Oops.
svn path=/nixu/trunk/; revision=6930
2006-11-02 22:50:30 +00:00
Eelco Dolstra 2d31e1b6d6 * A minimal boot script for stage 1 of the boot (loading kernel
modules).  The closure of the boot script is all we need in the
  initrd.

svn path=/nixu/trunk/; revision=6929
2006-11-02 22:48:01 +00:00
Eelco Dolstra 3336325781 * Remove cruft. BTW, to build the rescue ISO image:
$ nix-build ./rescue-system.nix -A rescueCD

  Point VMware at ./result/nixos.iso and voila.

svn path=/nixu/trunk/; revision=6927
2006-11-02 17:58:33 +00:00
Eelco Dolstra fff7011066 Purifying the NixOS build stuff.
* make-initrd.nix: builds a initial RAM disk.  The resulting initrd
  will contain just a Nix store containing the specified lists of
  packages, with a symlink `/init' to the actual init program in the
  Nix store.

* make-iso9660-image.nix: builds a bootable ISO image.

* rescue-system.nix: builds a bootable ISO image (using the two
  function above) that boots into a very minimal Linux environment
  containing (at the moment) the dietlibc-based bash and coreutils,
  loaded from the initrd.  Eventually this should become a two-stage
  boot (load kernel modules from the initrd, mount the actual root
  file system (e.g., the installation CD), call the real init).

  The rescue system (probably a misnomer) should become the minimal
  environment necessary for the installer (on CD) and the boot process
  of an installed NixOS (on HD).

svn path=/nixu/trunk/; revision=6926
2006-11-02 17:56:50 +00:00
Eelco Dolstra f546cad4b7 * Some fixes.
svn path=/nixu/trunk/; revision=6923
2006-11-01 12:07:22 +00:00
Eelco Dolstra 2b995a1150 * Turns out that nested backticks (like $(... $(...))) are evil, since
bash doesn't check the exit status of the inner commands.  Replace
  the $(nix-store -r $(nix-instantiate)) calls with nix-build.

* Some of the diet packages are gone now, use the dietlibc stdenv.

svn path=/nixu/trunk/; revision=6920
2006-10-31 20:28:35 +00:00
Eelco Dolstra c55460a027 * Use tar 1.15.1 for now (1.16 is buggy).
* Honour $TMPDIR (my /tmp is full).

svn path=/nixu/trunk/; revision=6918
2006-10-31 17:39:55 +00:00
Eelco Dolstra 319489bf8b * Don't use hardcoded /nixpkgs.
svn path=/nixu/trunk/; revision=6914
2006-10-31 12:15:08 +00:00
Eelco Dolstra 89c31b1c2c * Sketch for purely functional NixOS configuration.
svn path=/nixu/trunk/; revision=6694
2006-10-11 11:11:41 +00:00
Armijn Hemel c8b64ef689 we can safely use the stable version again
svn path=/nixu/trunk/; revision=6680
2006-10-08 22:05:06 +00:00
Armijn Hemel edcdb69c57 make it easier to relocate the location of nixpkgs.
svn path=/nixu/trunk/; revision=6602
2006-09-24 22:03:33 +00:00
Armijn Hemel da7b60735b -r, not -q
svn path=/nixu/trunk/; revision=6589
2006-09-23 23:06:28 +00:00
Armijn Hemel 62f61928e7 also copy a statically linked ncurses to the installer, so at least we get all the right terminfo thingies.
svn path=/nixu/trunk/; revision=6326
2006-08-30 00:40:15 +00:00
Armijn Hemel e876f67580 pass nano. Not that it actually works, because it also needs ncurses for terminal information...
svn path=/nixu/trunk/; revision=6321
2006-08-30 00:15:02 +00:00
Armijn Hemel 964780812d fix NIXOS-38
svn path=/nixu/trunk/; revision=6317
2006-08-29 21:58:33 +00:00
Armijn Hemel b5bdf9b453 -r, not -q
svn path=/nixu/trunk/; revision=6295
2006-08-28 13:41:41 +00:00
Armijn Hemel 4a8b316cf6 * show installation instructions at install time
* update manual to reflect new method better

svn path=/nixu/trunk/; revision=6285
2006-08-27 22:31:35 +00:00
Armijn Hemel 1323e55ad3 remove the root(hd0,0) line, because it wasn't needed. At least, not in our
situation. I don't know how it will it work with something like dual booting
and chain loading, so that is unsupported right now :P

svn path=/nixu/trunk/; revision=6282
2006-08-27 22:18:39 +00:00
Armijn Hemel f7c69397b7 update howto to reflect new changes
svn path=/nixu/trunk/; revision=6274
2006-08-27 15:34:24 +00:00
Armijn Hemel 65742f6eb9 refactor install process:
* user is dropped into a shell, where the user can run tools like fdisk to partition a disk
* user needs to add a file called "disklayout" where it specifies SWAP, INSTALLDEVICE and TARGETDRIVE
* depending on the values of these the installscript might need to be fixed to get the GRUB configuration right

It's still somewhat inflexible, but it gives the user a bit more control than the old scheme

svn path=/nixu/trunk/; revision=6271
2006-08-27 14:14:59 +00:00
Armijn Hemel 65203abef4 make sure /lib/modules exists on the target drive. Whoopsie.
svn path=/nixu/trunk/; revision=6078
2006-08-08 22:35:40 +00:00
Armijn Hemel 297d159c8d make sure /etc/resolv.conf is available in our chroot
svn path=/nixu/trunk/; revision=6077
2006-08-08 21:31:34 +00:00
Armijn Hemel 9626049ec5 first attempt at using network installs
svn path=/nixu/trunk/; revision=6076
2006-08-08 20:24:33 +00:00
Armijn Hemel ddc27b2313 use "kernelscripts" package to install the kernel and extra modules. This is
actually bad, because in theory a different kernel could be chosen to be
installed and then we could not load any modules...but even communism
works...in theory!

svn path=/nixu/trunk/; revision=6068
2006-08-07 19:48:18 +00:00