* Provide a /etc/nixos/configuration.nix in the booted CD to make
nixos-rebuild work. This makes it a true live CD. svn path=/nixos/branches/modular-nixos/; revision=15922
This commit is contained in:
parent
56922fa5b1
commit
463cf8efdd
@ -33,6 +33,27 @@ let
|
|||||||
# Put Nixpkgs in a tarball.
|
# Put Nixpkgs in a tarball.
|
||||||
nixpkgsTarball = makeTarball "nixpkgs.tar.bz2" (pkgs.lib.cleanSource pkgs.path);
|
nixpkgsTarball = makeTarball "nixpkgs.tar.bz2" (pkgs.lib.cleanSource pkgs.path);
|
||||||
|
|
||||||
|
|
||||||
|
# A dummy /etc/nixos/configuration.nix in the booted CD that
|
||||||
|
# rebuilds the CD's configuration (and allows the configuration to
|
||||||
|
# be modified, of course, providing a true live CD). Problem is
|
||||||
|
# that we don't really know how the CD was built - the Nix
|
||||||
|
# expression language doesn't allow us to query the expression being
|
||||||
|
# evaluated. So we'll just hope for the best.
|
||||||
|
dummyConfiguration = pkgs.writeText "configuration.nix"
|
||||||
|
''
|
||||||
|
{config, pkgs, ...}:
|
||||||
|
|
||||||
|
{
|
||||||
|
require = [./nixos/modules/installer/cd-dvd/installation-cd.nix];
|
||||||
|
|
||||||
|
# Add your own options below and run "nixos-rebuild switch".
|
||||||
|
# E.g.,
|
||||||
|
# services.sshd.enable = true;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -54,6 +75,7 @@ in
|
|||||||
# Don't include X libraries.
|
# Don't include X libraries.
|
||||||
services.sshd.forwardX11 = false;
|
services.sshd.forwardX11 = false;
|
||||||
fonts.enableFontConfig = false;
|
fonts.enableFontConfig = false;
|
||||||
|
fonts.enableCoreFonts = false;
|
||||||
|
|
||||||
# Show the manual.
|
# Show the manual.
|
||||||
services.showManual.enable = true;
|
services.showManual.enable = true;
|
||||||
@ -128,20 +150,31 @@ in
|
|||||||
# installation.
|
# installation.
|
||||||
installer.nixpkgsURL = http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable;
|
installer.nixpkgsURL = http://nixos.org/releases/nixpkgs/channels/nixpkgs-unstable;
|
||||||
|
|
||||||
# Provide the NixOS/Nixpkgs sources in /etc/nixos. This is required
|
|
||||||
# for nixos-install.
|
|
||||||
boot.postBootCommands =
|
boot.postBootCommands =
|
||||||
''
|
''
|
||||||
export PATH=${pkgs.gnutar}/bin:${pkgs.bzip2}/bin:$PATH
|
export PATH=${pkgs.gnutar}/bin:${pkgs.bzip2}/bin:$PATH
|
||||||
|
|
||||||
|
# Provide a mount point for nixos-install.
|
||||||
mkdir -p /mnt
|
mkdir -p /mnt
|
||||||
|
|
||||||
|
# Provide the NixOS/Nixpkgs sources in /etc/nixos. This is required
|
||||||
|
# for nixos-install.
|
||||||
echo "unpacking the NixOS/Nixpkgs sources..."
|
echo "unpacking the NixOS/Nixpkgs sources..."
|
||||||
mkdir -p /etc/nixos/nixos
|
mkdir -p /etc/nixos/nixos
|
||||||
tar xjf ${nixosTarball}/nixos.tar.bz2 -C /etc/nixos/nixos
|
tar xjf ${nixosTarball}/nixos.tar.bz2 -C /etc/nixos/nixos
|
||||||
mkdir -p /etc/nixos/nixpkgs
|
mkdir -p /etc/nixos/nixpkgs
|
||||||
tar xjf ${nixpkgsTarball}/nixpkgs.tar.bz2 -C /etc/nixos/nixpkgs
|
tar xjf ${nixpkgsTarball}/nixpkgs.tar.bz2 -C /etc/nixos/nixpkgs
|
||||||
chown -R root.root /etc/nixos
|
chown -R root.root /etc/nixos
|
||||||
|
|
||||||
|
# Provide a configuration for the CD/DVD itself, to allow users
|
||||||
|
# to run nixos-rebuild to change the configuration of the
|
||||||
|
# running system on the CD/DVD.
|
||||||
|
cp ${dummyConfiguration} /etc/nixos/configuration.nix
|
||||||
|
|
||||||
|
# nixos-rebuild also requires a "system" profile and an
|
||||||
|
# /etc/NIXOS tag.
|
||||||
|
touch /etc/NIXOS
|
||||||
|
${config.environment.nix}/bin/nix-env -p /nix/var/nix/profiles/system --set /var/run/current-system
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Some more help text.
|
# Some more help text.
|
||||||
|
@ -41,6 +41,7 @@ pkgs.lib.mkIf cfg.enable {
|
|||||||
|
|
||||||
start on udev
|
start on udev
|
||||||
stop on shutdown
|
stop on shutdown
|
||||||
|
|
||||||
respawn ${pkgs.rogue}/bin/rogue < /dev/tty${toString cfg.ttyNumber} > /dev/tty${toString cfg.ttyNumber} 2>&1
|
respawn ${pkgs.rogue}/bin/rogue < /dev/tty${toString cfg.ttyNumber} > /dev/tty${toString cfg.ttyNumber} 2>&1
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user