Commit Graph

408 Commits

Author SHA1 Message Date
Eelco Dolstra
8b91a5f2ff Move boot loader modules to modules/system/boot/loader 2012-07-25 10:59:03 -04:00
Eelco Dolstra
b15e1fbb08 Boot loader refactoring
- Renamed system.build.menuBuilder to system.build.installBootLoader.

- ‘install-grub.pl’ (formerly grub-menu-builder.pl) now generates the
  GRUB menu *and* installs GRUB (if necessary).

- ‘switch-to-configuration.sh’ has no boot loader specific knowledge
  anymore.  It just calls installBootLoader.
2012-07-25 10:47:32 -04:00
Eelco Dolstra
1b743526bd grub.nix: Handle null values
http://hydra.nixos.org/build/2894714
2012-07-25 09:27:51 -04:00
Eelco Dolstra
be4c4d79cf grub-menu-builder: GRUB now installs unicode.pf2 automatically 2012-07-24 22:37:16 -04:00
Eelco Dolstra
fb15b1894e Add missing progress message 2012-07-24 19:27:16 -04:00
Eelco Dolstra
f07f221f0e Replace grub-menu-builder with a much faster version
The old GRUB menu builder script is quite slow, typically taking
several seconds.  This is a real annoyance since it's run every time
you switch to a new configuration.  Therefore this patch replaces the
Bash script with a much faster Perl script.  In a VirtualBox test, the
execution time went from 2.7s to 0.1s.  The Perl version is also more
correct because it uses XML to get the GRUB configuration (through
builtins.toXML), so there are no shell escaping issues.

The new script currently lacks support for subconfigurations defined
through "nesting.children".
2012-07-24 19:16:27 -04:00
Shea Levy
0f65521df2 Merge pull request #17 from MarcWeber/fix-init-script-builder
fix init-script-builder
2012-07-23 17:44:37 -07:00
Marc Weber
3221159f5f fix init-script-builder 2012-07-21 19:26:36 +02:00
Eelco Dolstra
73532c3855 Global replace /var/run/current-system -> /run/current-system 2012-07-16 11:34:21 -04:00
Mathijs Kwik
a630b1f6f6 EFI shell got updated upstream, reflecting new hash 2012-07-05 08:31:44 +02:00
Eelco Dolstra
348691645d Remove broken "nopipefail" option
http://hydra.nixos.org/build/2751337
2012-07-02 10:57:36 -04:00
Eelco Dolstra
76c74cd7c7 initrd: Detect filesystem type before doing fsck/mount
BusyBox doesn't handle the "auto" filesystem type very well: fsck will
just ignore such filesystems, and mount will only work properly if the
required kernel module is already loaded.  Therefore, use blkid to
determine the filesystem type.

Also generate an /etc/fstab in the initrd rootfs on the fly.  This is
useful if you're dropped into an emergency shell since it allows you
to say "fsck /dev/sda1" or "mount /dev/sda" and have the right thing
happen.
2012-06-28 10:55:44 -04:00
viric
7acfd8ec20 Merge pull request #9 from viric/pull-pipefail
nixos-rebuild: make 'pull' fail in case it did not pull anything.
2012-06-28 01:20:22 -07:00
Lluís Batlle i Rossell
34e8f68056 system-tarball-pc: not use boot.initrd.extraTools anymore
Eelco removed the option recently, making the default initrd have the full
busybox.

I saw this evaluation error in the hydra nixos trunk page.
2012-06-27 22:26:27 +02:00
Lluís Batlle i Rossell
de87b07bb3 nixos-rebuild: fail if any case of pull fails. 2012-06-27 21:57:15 +02:00
Lluís Batlle i Rossell
5b7c019e2a nixos-rebuild: make 'pull' fail in case it did not pull anything. 2012-06-27 21:36:46 +02:00
Eelco Dolstra
cc357c7e64 nixos-rebuild: Add a convenience option ‘--upgrade’
This is equivalent to running ‘nix-channel --update nixos’ before
running ‘nixos-rebuild’.
2012-06-25 16:17:34 -04:00
Eelco Dolstra
1da7cea223 Add Busybox to the installation CD
This is mostly to get the automated tests to succeed.
2012-06-22 14:16:55 -04:00
Eelco Dolstra
598adfee3e Fix booting from the CD-ROM
So it turns out that BusyBox doesn't auto-load modules for filesystems
that have type "auto", e.g. it doesn't figure out that it should load
the "iso9660" module should be loaded when mounting the CD-ROM.  We
don't want to give the root FS on the CD type "iso9660", because that
breaks booting from a USB stick created by unetbootin.  So make sure
the "iso9660" module is loaded.
2012-06-22 11:55:23 -04:00
Eelco Dolstra
7b54922227 Don't include klibc in the installation CD 2012-06-22 11:39:27 -04:00
Lluís Batlle i Rossell
31f30722d6 Small comment fix on the system-tarball-sheevaplug.
svn path=/nixos/trunk/; revision=34418
2012-06-10 14:45:30 +00:00
Eelco Dolstra
f2a33809c1 * Check for .git instead of .svn.
svn path=/nixos/trunk/; revision=34350
2012-06-04 15:57:32 +00:00
Eelco Dolstra
a0cc181117 * nixos-checkout: get the NixOS/Nixpkgs sources from GitHub.
svn path=/nixos/trunk/; revision=34347
2012-06-04 15:39:07 +00:00
Eelco Dolstra
c4c68f97d1 * The volume ID is too long again. Shorten it to make it fit (just
barely) inside the 32 character limit.

  http://hydra.nixos.org/build/2660387

svn path=/nixos/trunk/; revision=34346
2012-06-04 15:02:37 +00:00
Eelco Dolstra
f81eb12d41 * Now hopefully a proper fix for the problem in
http://hydra.nixos.org/build/2645533 (which I can't reproduce btw -
  so much for reproducibility...).

svn path=/nixos/trunk/; revision=34243
2012-05-25 14:06:46 +00:00
Eelco Dolstra
d0786fd3e7 * Cache nix-pull calls in nixos-install.
svn path=/nixos/trunk/; revision=34241
2012-05-25 13:32:30 +00:00
Lluís Batlle i Rossell
22fc2bdb24 Fixing the evaluation of the system-tarball-pc.
It complained that grub device wasn't defined, and I guess it wanted some
fileSystems too. I copied those details from the sheevaplug expression, that I
made evaluate some minutes ago.


svn path=/nixos/trunk/; revision=34238
2012-05-25 08:09:25 +00:00
Lluís Batlle i Rossell
4157166f8a Making the sheevaplug system tarball evaluate fine again. It had some pieces not up to date:
fileSystems definition, kernel version, ...


svn path=/nixos/trunk/; revision=34237
2012-05-25 07:52:12 +00:00
Eelco Dolstra
a3e04ba0aa * Fix problems with repeated installations due to the immutable bit
(http://hydra.nixos.org/build/2645533).

svn path=/nixos/trunk/; revision=34235
2012-05-25 02:30:52 +00:00
Eelco Dolstra
b11770373a * Work properly if /root/.nix-defexpr/channels already exists.
svn path=/nixos/trunk/; revision=34233
2012-05-24 23:37:06 +00:00
Eelco Dolstra
a6892051ef * Allow building with boot.loader.grub.enable set to "false".
svn path=/nixos/trunk/; revision=34218
2012-05-23 15:52:29 +00:00
Mathijs Kwik
7fca5408f3 Revert "Provided a workaround for grub's missing-devices check, so nested child configurations can still build."
This reverts commit a89e8831e3d95bcf3ddc19ee34b938db7e8aa572.

svn path=/nixos/trunk/; revision=34163
2012-05-18 06:17:05 +00:00
Eelco Dolstra
801cd7402c * Don't use ‘chown user.group’ since that syntax is not officially
supported (you're supposed to say ‘chown user:group’).

svn path=/nixos/trunk/; revision=34161
2012-05-17 19:43:32 +00:00
Mathijs Kwik
88b3c4b82e Provided a workaround for grub's missing-devices check, so nested child configurations can still build.
svn path=/nixos/trunk/; revision=34153
2012-05-17 10:17:32 +00:00
Eelco Dolstra
560262dae0 * Fix "error: the group nixbld' specified in build-users-group' does
not exist" during nixos-install.

svn path=/nixos/trunk/; revision=34103
2012-05-15 13:50:36 +00:00
Eelco Dolstra
29b05fb62a * nixos-checkout: add an argument to specify the directory where the
sources should be stored.  E.g. "nixos-checkout /home/eelco/srcs"
  will check out to /home/eelco/srcs/{nixos,nixpkgs}.  Probably the
  /etc/nixos default should be removed eventually because /etc is a
  pretty weird place to keep large source trees.

svn path=/nixos/trunk/; revision=34086
2012-05-14 04:12:43 +00:00
Eelco Dolstra
8d568e5a71 * nixos-option: clean up the English and the generated file.
svn path=/nixos/trunk/; revision=34082
2012-05-14 01:56:42 +00:00
Eelco Dolstra
3dd0718939 * Give an error at evaluation time if boot.loader.grub.device or
boot.loader.grub.devices are not set, rather than complaining about
  it when it's too late.

svn path=/nixos/trunk/; revision=34081
2012-05-14 01:53:47 +00:00
Shea Levy
1a0c9ce201 The efibootmgr bricking problem was fixed in 2.6.39
svn path=/nixos/trunk/; revision=33990
2012-05-05 15:43:28 +00:00
Shea Levy
c716747cce Need a slighty bigger boot image to contain the efi shell
svn path=/nixos/trunk/; revision=33986
2012-05-05 14:23:51 +00:00
Shea Levy
3aae8bfa61 Switch to using efi shell + startup.nsh as the
removable media efi boot option.

svn path=/nixos/trunk/; revision=33984
2012-05-04 22:16:35 +00:00
Sander van der Burg
4b650026bf The <> syntax has to be applied properly, in order to find build-vms.nix
svn path=/nixos/trunk/; revision=33981
2012-05-03 12:31:01 +00:00
Eelco Dolstra
4d07f159a1 * Create /nix/var/nix/profiles/per-user with the right permissions.
Fixes NixOS/149.

svn path=/nixos/trunk/; revision=33929
2012-04-26 13:16:58 +00:00
Eelco Dolstra
ac4a059f8a * Put old NixOS configurations in a GRUB submenu. Contributed by
Andreas Källberg.

svn path=/nixos/trunk/; revision=33891
2012-04-23 15:47:03 +00:00
Eelco Dolstra
6c1bb54483 * In the installation CD, make the NixOS/Nixpkgs available as if they
were obtained from the NixOS channel.  "nixos-install" copies this
  to the installed system as well.
* In the installation CD, set GC_INITIAL_HEAP_SIZE to a low value for
  the benefit of memory-constrained environments.

svn path=/nixos/trunk/; revision=33887
2012-04-23 00:41:37 +00:00
Eelco Dolstra
72990dae37 * Add some missing GRUB modules.
svn path=/nixos/trunk/; revision=33886
2012-04-23 00:30:48 +00:00
Eelco Dolstra
f8e36664a6 * Subtle: since nix-env processes flags in order, any ‘-I’ flag should
come before ‘-f <nixos>’.

svn path=/nixos/trunk/; revision=33831
2012-04-18 15:01:42 +00:00
Eelco Dolstra
cb74284b75 * Handle the case where there is no GRUB 1 splash image.
svn path=/nixos/trunk/; revision=33830
2012-04-18 14:28:30 +00:00
Eelco Dolstra
b4afefcc40 * Typo.
svn path=/nixos/trunk/; revision=33826
2012-04-18 12:32:17 +00:00
Eelco Dolstra
395d73db70 * nixos-rebuild: don't do a pull of the manifest by default anymore.
It's not necessary when using the NixOS channel.  "nixos-rebuild
  pull" now pulls from the NixOS channel.

svn path=/nixos/trunk/; revision=33825
2012-04-18 11:46:16 +00:00
Eelco Dolstra
e3879fe365 * Store the NixOS version in the top-level derivation.
* Change the name of the top-level derivation from "system" to
  "nixos-<version>".
* Show the NixOS version in the GRUB boot menu instead of the kernel
  version.

svn path=/nixos/trunk/; revision=33785
2012-04-14 17:09:59 +00:00
Lluís Batlle i Rossell
918edf8612 I think this makes the memtest module work on grub1.
But I can't test it because grub-install fails for me for grub1.

I tested it works for grub2.


svn path=/nixos/trunk/; revision=33739
2012-04-10 22:20:20 +00:00
Eelco Dolstra
fb0a54b803 * In nixos-install, do a nix-pull from
http://nixos.org/releases/nixos/nixos-<version> to ensure we're
  getting the right binaries.

svn path=/nixos/trunk/; revision=33738
2012-04-10 22:17:37 +00:00
Eelco Dolstra
322a0ff7cd * Set the version properly in the source tree in the ISO.
svn path=/nixos/trunk/; revision=33736
2012-04-10 21:42:47 +00:00
Lluís Batlle i Rossell
2ca7e8a43e Reverting 33692, because memtest in the iso was failing.
I set the grub entry for memtest to read "Memtest86", as suggested by Eelco.

I run:
svn merge -c -33692 ^/nixos/trunk
And edited the change a bit.


svn path=/nixos/trunk/; revision=33734
2012-04-10 21:18:48 +00:00
Eelco Dolstra
c02240082a * Add missing file.
svn path=/nixos/trunk/; revision=33733
2012-04-10 21:17:43 +00:00
Eelco Dolstra
dccd99b564 * Disable "nixos-gen-seccure-keys": it's not clear what it's for, it's
not documented, and it doesn't seem to be used anywhere.

svn path=/nixos/trunk/; revision=33732
2012-04-10 21:11:11 +00:00
Eelco Dolstra
907df082dc * Including the Nixpkgs revision made the ISO volume label slightly
too long.  So make it shorter.

svn path=/nixos/trunk/; revision=33731
2012-04-10 21:08:10 +00:00
Eelco Dolstra
096b7723c8 * Add a command "nixos-version" that prints the version of the
currently activated NixOS.  This is "0.1pre-svn" when built from a
  SVN tree, but contains the actual revision when installed from the
  NixOS channel or from the ISO.

svn path=/nixos/trunk/; revision=33730
2012-04-10 20:56:38 +00:00
Eelco Dolstra
f9ac67c67f * Copying manifests is slightly tricky because
download-using-manifests expects that the files in
  /nix/var/nix/manifests are symlinks into the store.

svn path=/nixos/trunk/; revision=33727
2012-04-10 15:36:50 +00:00
Eelco Dolstra
f37b453b19 * nixos-install: Ensure that builds are done by the nixbld users
rather than root.  Also copy all manifests into the chroot so that
  any nix-pull done outside the chroot is "inherited".

svn path=/nixos/trunk/; revision=33725
2012-04-10 14:39:12 +00:00
Eelco Dolstra
f9e8e735bb * Remove debug line.
svn path=/nixos/trunk/; revision=33723
2012-04-10 13:28:48 +00:00
Eelco Dolstra
5c06c66b68 * Clear more locale-related variables in the installer.
svn path=/nixos/trunk/; revision=33722
2012-04-10 13:28:17 +00:00
Eelco Dolstra
b2025c4687 * Use "umount -l" to clean up.
svn path=/nixos/trunk/; revision=33721
2012-04-10 13:25:55 +00:00
Eelco Dolstra
5409e76353 * Disable wicd in the installation CD for now, because it causes
dhcpcd to segfault randomly or give corrupt output.  See e.g.

    http://hydra.nixos.org/build/2380666/nixlog/1/raw

  The problem seems to be that wicd sends a "-k" command to dhcpcd to
  release the interface, which doesn't work well with a dhcpcd that
  handles all interfaces in one process.

svn path=/nixos/trunk/; revision=33720
2012-04-10 13:09:56 +00:00
Lluís Batlle i Rossell
849d136aa6 Making also the system-tarball-pc show the memtest entry as the
pkgs.memtest86.name.


svn path=/nixos/trunk/; revision=33693
2012-04-09 20:37:54 +00:00
Lluís Batlle i Rossell
9017ccf9fe Removing the special memtest.nix module for the isos, and using
the same as the usual nixos. I think this trivial change works;
I checked the grub.cfg output generated in the iso_minimal.


svn path=/nixos/trunk/; revision=33692
2012-04-09 20:36:26 +00:00
Lluís Batlle i Rossell
6e281e46b7 I update the name of the memtest entry in grub of the iso images,
because it can be overriden choosing another memtest86.

As an effect of a change in nixpgks, the isos will include
memtest86 4.0a instead of memtest86+ 4.20, only because the 
former is released later, and I deduce it should work better.


svn path=/nixos/trunk/; revision=33691
2012-04-09 20:30:14 +00:00
Lluís Batlle i Rossell
0b8b6616b6 Making the memtest name come from the pkgs.memtest86, as the nixos
user can override choosing between two memtests.


svn path=/nixos/trunk/; revision=33690
2012-04-09 20:08:14 +00:00
Rob Vermaas
6b34bd8564 remove remaining reference to nixos-deploy-nwtork
svn path=/nixos/trunk/; revision=33663
2012-04-07 15:18:39 +00:00
Eelco Dolstra
301c4d96b1 * Remove nixos-deploy-network. It has been superceded by Charon.
svn path=/nixos/trunk/; revision=33662
2012-04-07 13:26:35 +00:00
Eelco Dolstra
4f4c529979 Stage 1 improvements:
* Load scsi_wait_scan after all other kernel modules to ensure that
  all SCSI device nodes have been created.
* Increase the timeout for the appearance of the root device to 20
  seconds.
* Do a "udevadm settle" just after the root device has appeared to
  make sure that udev isn't accessing the device anymore (hopefully).
  On EC2 (Xen), I've seen fsck on the root fail randomly with "device
  in use" errors.

svn path=/nixos/trunk/; revision=33650
2012-04-06 14:20:43 +00:00
Lluís Batlle i Rossell
fbd4f65652 Fixing the comment on the new grub/memtest.nix module.
svn path=/nixos/trunk/; revision=33540
2012-04-02 17:31:08 +00:00
Lluís Batlle i Rossell
9a6f2231b2 Adding a module for memtest86+, so if enabled, will appear in the grub menu.
To enable it:
boot.loader.grub.memtest86 = true;


svn path=/nixos/trunk/; revision=33539
2012-04-02 17:19:21 +00:00
Joachim Schiele
f4d26eb446 added example for GRUB 2
svn path=/nixos/trunk/; revision=33448
2012-03-28 10:34:40 +00:00
Eelco Dolstra
1949a85987 * Do a sync before switching to a new configuration.
svn path=/nixos/trunk/; revision=33381
2012-03-23 12:29:11 +00:00
Shea Levy
7a9a33e90d efi-boot-stub: Give startup.sh files more descriptive names
svn path=/nixos/trunk/; revision=33321
2012-03-21 02:05:52 +00:00
Lluís Batlle i Rossell
81655b7247 Have a more featured initrd and crashDump for the pc system tarball.
svn path=/nixos/trunk/; revision=33274
2012-03-19 19:01:52 +00:00
Shea Levy
fac0fef5d8 Whoops
svn path=/nixos/trunk/; revision=33264
2012-03-19 17:25:50 +00:00
Shea Levy
53580d514a You cant modprobe efivars from within the chroot, so modprobe efivars when booting an efi-compatible install CD
svn path=/nixos/trunk/; revision=33241
2012-03-18 18:55:47 +00:00
Shea Levy
b82c253b24 Add a kernel patch for the efi boot stub to read a config file when booted without arguments, and base removable media booting off of that patch
The patch is currently being discussed on LKML and hopefully will be included
in mainline in some form in the future. Note that booting from the livecd has
to do a lot of work before anything is output to the console, so if the drive
is still busy don't assume the boot has hanged

svn path=/nixos/trunk/; revision=33235
2012-03-18 17:14:52 +00:00
Shea Levy
097c656361 iso-image: Make efi-bootable cds actually bootable.
The image passed to genisofs needs to be a FAT image with the right filesystem
layout, not an EFI executable image

svn path=/nixos/trunk/; revision=33162
2012-03-16 16:45:40 +00:00
Shea Levy
4716ccf1b1 nixosBootStub: Hide noisy efibootmgr output
svn path=/nixos/trunk/; revision=33157
2012-03-16 13:40:03 +00:00
Shea Levy
d9e28e909c Move NixosBootPkg into NixOS
svn path=/nixos/trunk/; revision=33149
2012-03-16 11:53:50 +00:00
Shea Levy
c61d919941 Typographical conventions
svn path=/nixos/trunk/; revision=33148
2012-03-16 11:31:33 +00:00
Shea Levy
358b699c20 installation-cd-efi: Only build a minimal cd
svn path=/nixos/trunk/; revision=33147
2012-03-16 11:25:09 +00:00
Shea Levy
a315eefca1 Restore old installation-cd-new-kernel.nix and create a new installation-cd-efi.nix
svn path=/nixos/trunk/; revision=33146
2012-03-16 11:22:05 +00:00
Shea Levy
95bec1c001 efiBootStub: Properly handle the removableMediaImage path on different architectures
svn path=/nixos/trunk/; revision=33141
2012-03-16 06:08:55 +00:00
Shea Levy
8efda48496 Enable building an efi-bootable ISO
svn path=/nixos/trunk/; revision=33140
2012-03-16 05:37:24 +00:00
Shea Levy
1bccbc30cd efiBootStub: Assert that the
kernel has the efiBootStub feature

svn path=/nixos/trunk/; revision=33138
2012-03-16 02:55:17 +00:00
Shea Levy
4caf3560be efiBootStub: Add the installRemovableMediaImage option
svn path=/nixos/trunk/; revision=33135
2012-03-16 02:34:07 +00:00
Eelco Dolstra
f4903be57e * nixos-hardware-scan: detect if we're in a VirtualBox guest and
enable the guest additions in that case.

svn path=/nixos/trunk/; revision=33133
2012-03-16 01:57:23 +00:00
Shea Levy
001fcad421 First shot at EFI booting.
Note: This feature is INCOMPLETE. Moreover, when runEfibootmgr is true it will
MODIFY NVRAM and, on Apple systems, possibly brick your firmware. PLEASE be
careful while further testing is performed

svn path=/nixos/trunk/; revision=33047
2012-03-13 19:27:59 +00:00
Eelco Dolstra
b4d16ef07e * Fix nixos-option.
svn path=/nixos/trunk/; revision=33031
2012-03-13 09:36:41 +00:00
Lluís Batlle i Rossell
29ca7f2c80 Adding VIA_RHINE to the system tarball pc. I need to boot one with PXE and nfsroot with via rhine.
svn path=/nixos/trunk/; revision=32994
2012-03-11 16:39:49 +00:00
Eelco Dolstra
45fab492fc * nixos-hardware-scan: "acpi-cpufreq" is automatically loaded, so we
don't need to detect it.
* nixos-hardware-scan: don't use modulesPath.

svn path=/nixos/trunk/; revision=32972
2012-03-10 14:35:31 +00:00
Eelco Dolstra
9d89ca0c03 * Modularise vfat support. Also add fsck.vfat to the initrd. This
prevents errors when booting from VFAT (e.g. an ISO image converted
  using unetbootin).

svn path=/nixos/trunk/; revision=32956
2012-03-09 16:17:37 +00:00
Lluís Batlle i Rossell
13ac0a309b Allow a way to install grub to multiple devices (for /boot on soft raid arrays).
svn path=/nixos/trunk/; revision=32913
2012-03-08 21:37:30 +00:00
Eelco Dolstra
4869175158 * Fix the installer. The nixos-config element in $NIX_PATH was not
set (and neither was $NIXOS_CONFIG).
  (http://hydra.nixos.org/build/2230309).

svn path=/nixos/trunk/; revision=32857
2012-03-07 21:17:46 +00:00
Eelco Dolstra
a2417fd92f * Another workaround for the bug in substitute.
svn path=/nixos/trunk/; revision=32814
2012-03-06 10:57:52 +00:00