* Added boot.initrd.lvm flag for use NixOS with LVM2 root partition.

* Added sis support for xserver.

svn path=/nixos/trunk/; revision=8924
This commit is contained in:
Yury G. Kudryashov 2007-06-28 09:57:36 +00:00
parent 58b29cd565
commit cd1023c50d
6 changed files with 28 additions and 3 deletions

View file

@ -73,6 +73,13 @@ udevd --daemon
udevtrigger
udevsettle
if type -p dmsetup > /dev/null; then
echo "dmsetup found, starting device mapper and lvm"
dmsetup mknodes
vgscan --ignorelockingfailure
vgchange -ay --ignorelockingfailure
fi
if test -n "$debug1devices"; then fail; fi

View file

@ -177,6 +177,14 @@
";
}
{
name = ["boot" "initrd" "lvm"];
default = false;
description = "
Whether to include lvm in the initial ramdisk. You should use this option
if your ROOT device is on lvm volume.
";
}
{
name = ["boot" "initrd" "enableSplashScreen"];

View file

@ -52,10 +52,18 @@ rec {
inherit (pkgsStatic) utillinux;
inherit (pkgsDiet) udev;
e2fsprogs = pkgs.e2fsprogsDiet;
devicemapper = if config.get ["boot" "initrd" "lvm"] then pkgs.devicemapperStatic else null;
lvm2 = if config.get ["boot" "initrd" "lvm"] then pkgs.lvm2Static else null;
allowedReferences = []; # prevent accidents like glibc being included in the initrd
}
"
ensureDir $out/bin
if [ -n $devicemapper ]; then
cp $devicemapper/sbin/dmsetup.static $out/bin/dmsetup
cp $lvm2/sbin/lvm.static $out/bin/lvm
ln -s lvm $out/bin/vgscan
ln -s lvm $out/bin/vgchange
fi
cp $utillinux/bin/mount $utillinux/bin/umount $utillinux/sbin/pivot_root $out/bin
cp -p $e2fsprogs/sbin/fsck* $e2fsprogs/sbin/e2fsck $out/bin
cp $udev/sbin/udevd $udev/sbin/udevtrigger $udev/sbin/udevsettle $out/bin

View file

@ -36,7 +36,7 @@ import ../upstart-jobs/gather.nix {
# Makes LVM logical volumes available.
(import ../upstart-jobs/lvm.nix {
inherit modprobe;
inherit (pkgs) lvm2;
inherit (pkgs) lvm2 devicemapper;
})
# Activate software RAID arrays.

View file

@ -1,4 +1,4 @@
{modprobe, lvm2}:
{modprobe, lvm2, devicemapper}:
{
name = "lvm";
@ -12,9 +12,10 @@ script
# Load the device mapper.
${modprobe}/sbin/modprobe dm_mod || true
${devicemapper}/sbin/dmsetup mknodes
# Scan for block devices that might contain LVM physical volumes
# and volume groups.
#${lvm2}/sbin/vgscan
${lvm2}/sbin/vgscan --mknodes
# Make all logical volumes on all volume groups available, i.e.,
# make them appear in /dev.

View file

@ -60,6 +60,7 @@ let
xorg.xf86inputmouse
]
++ optional (videoDriver == "vesa") xorg.xf86videovesa
++ optional (videoDriver == "sis") xorg.xf86videosis
++ optional (videoDriver == "i810") xorg.xf86videoi810
++ optional (videoDriver == "intel") xorg.xf86videointel;