Commit graph

1139 commits

Author SHA1 Message Date
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
Armijn Hemel
7e6a7d6418 rewrite to use busybox
TODO: rewrite some of the tools to use the busybox tools instead of the "normal" utilities during installation, so we can shave off another 15 MB from the
installer

svn path=/nixu/trunk/; revision=6063
2006-08-06 23:59:31 +00:00
Armijn Hemel
33940db2dc re-enable the default debugging login shell
svn path=/nixu/trunk/; revision=6048
2006-08-04 23:39:59 +00:00
Armijn Hemel
183b838ed8 script cleanups
svn path=/nixu/trunk/; revision=6041
2006-08-04 09:29:32 +00:00
Armijn Hemel
97690c23da cosmetic change
svn path=/nixu/trunk/; revision=6036
2006-08-03 18:00:32 +00:00
Armijn Hemel
e030a74c87 remove substitutes that point to the installer CD after installation
svn path=/nixu/trunk/; revision=6035
2006-08-03 17:10:08 +00:00
Armijn Hemel
6e030f736c speed up the installation a *lot*, at the price of a bit more diskspace (49 MB currently)
svn path=/nixu/trunk/; revision=6034
2006-08-03 16:19:04 +00:00
Armijn Hemel
fcc3b33cb9 pack Nix packages in a tarball, unpack tarball, don't copy it file for file from CD (== slow)
svn path=/nixu/trunk/; revision=6030
2006-08-03 13:43:44 +00:00
Armijn Hemel
71755c6176 unmount all filesystems properly before unmounting target disk
svn path=/nixu/trunk/; revision=6026
2006-08-02 22:54:44 +00:00
Armijn Hemel
493661f880 This is a major big update for the install process for NixOS. This requires
the latest patches to Nix itself, which were committed the last few days.

Biggest changes:

make-disk.sh:
* use nix-push to generate NAR files and a manifest
* use only copy a "few" packages (but probably still too many than we want) to the Nix store on the CD

fill-disk.sh:
* use nix-pull to register a manifest with a lot of packages. Only copy and
register as valid the few packages that are in the Nix store on the installer
CD, install the rest via nix-env and other tools (this needs to be reviewed
thoroughly for optimizations).

All in all the install process is a lot cleaner now, the login script is broken
however (but should be relatively easy to fix with some Nix wizardry). NIX_ROOT
is still broken, but we can work around most issues with relative ease now.

svn path=/nixu/trunk/; revision=6025
2006-08-02 22:42:56 +00:00
Armijn Hemel
2c87da322d use less packages
svn path=/nixu/trunk/; revision=6024
2006-08-02 22:34:13 +00:00
Armijn Hemel
8c56a19d55 take closure of statically linked bash, this makes it "deterministic" according to eelco ;)
svn path=/nixu/trunk/; revision=6007
2006-07-31 15:16:10 +00:00
Armijn Hemel
95fa5b81b1 remove a dependency on an external coreutils (overlooked)
svn path=/nixu/trunk/; revision=5669
2006-07-09 22:33:01 +00:00
Armijn Hemel
89762236cf it is nice to have a few more ttys available in NixOS, so mknod them
svn path=/nixu/trunk/; revision=5582
2006-07-04 20:38:14 +00:00
Armijn Hemel
afb7f5b950 actually build nix-unstable
svn path=/nixu/trunk/; revision=5577
2006-07-04 18:12:48 +00:00
Armijn Hemel
45a2be1fbe also use our own cpio. Make sure we don't just query nix expressions, but
actually realize them as well. D'oh!

svn path=/nixu/trunk/; revision=5566
2006-07-03 23:16:44 +00:00
Armijn Hemel
8a14c8d886 wel also want to use our own gzip
svn path=/nixu/trunk/; revision=5565
2006-07-03 22:40:56 +00:00
Armijn Hemel
a1bd3698ef also use our own coreutils
svn path=/nixu/trunk/; revision=5564
2006-07-03 22:20:22 +00:00
Armijn Hemel
c984b735bd also use mkisofs from Nixpkgs
svn path=/nixu/trunk/; revision=5563
2006-07-03 09:32:15 +00:00