diff options
| author | Mikhail Tsykalov <tsymsh@gmail.com> | 2020-11-06 12:47:38 +0300 | 
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2020-11-26 00:05:39 +0100 | 
| commit | a9a2fdaabcc78e7a54d9a6bcfa4ee3de308e9a90 (patch) | |
| tree | 1852c17d33cc33ce572810f8042fe5c24a7ef235 /gnu/tests/install.scm | |
| parent | 788df2ecd62d5c2fc0d94928f45c947e6393e20b (diff) | |
mapped-devices: Add 'lvm-device-mapping'.
* gnu/system/mapped-devices.scm (lvm-device-mapping, open-lvm-device,
close-lvm-device): New variables.
* gnu/tests/install.scm (%lvm-separate-home-os,
%lvm-separate-home-os-source, %lvm-separate-home-installation-script,
%test-lvm-separate-home-os): New variables.
* gnu/system/linux-initrd.scm (raw-initrd): Add (srfi srfi-1) to initrd expression.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/tests/install.scm')
| -rw-r--r-- | gnu/tests/install.scm | 87 | 
1 files changed, 87 insertions, 0 deletions
| diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 2d62a873ca..71caa3a493 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -67,6 +67,7 @@              %test-btrfs-root-on-subvolume-os              %test-jfs-root-os              %test-f2fs-root-os +            %test-lvm-separate-home-os              %test-gui-installed-os              %test-gui-installed-os-encrypted @@ -798,6 +799,92 @@ build (current-guix) and then store a couple of full system images.")  ;;; +;;; Separate /home on LVM +;;; + +;; Since LVM support in guix currently doesn't allow root-on-LVM we use /home on LVM +(define-os-with-source (%lvm-separate-home-os %lvm-separate-home-os-source) +  (use-modules (gnu) (gnu tests)) + +  (operating-system +    (host-name "separate-home-on-lvm") +    (timezone "Europe/Paris") +    (locale "en_US.utf8") + +    (bootloader (bootloader-configuration +                 (bootloader grub-bootloader) +                 (target "/dev/vdb"))) +    (kernel-arguments '("console=ttyS0")) + +    (mapped-devices (list (mapped-device +                           (source "vg0") +                           (target "vg0-home") +                           (type lvm-device-mapping)))) +    (file-systems (cons* (file-system +                           (device (file-system-label "root-fs")) +                           (mount-point "/") +                           (type "ext4")) +                         (file-system +                           (device "/dev/mapper/vg0-home") +                           (mount-point "/home") +                           (type "ext4") +                           (dependencies mapped-devices)) +                        %base-file-systems)) +    (users %base-user-accounts) +    (services (cons (service marionette-service-type +                             (marionette-configuration +                              (imported-modules '((gnu services herd) +                                                  (guix combinators))))) +                    %base-services)))) + +(define %lvm-separate-home-installation-script +  "\ +. /etc/profile +set -e -x +guix --version + +export GUIX_BUILD_OPTIONS=--no-grafts +parted --script /dev/vdb mklabel gpt \\ +  mkpart primary ext2 1M 3M \\ +  mkpart primary ext2 3M 1.6G \\ +  mkpart primary 1.6G 3.2G \\ +  set 1 boot on \\ +  set 1 bios_grub on +pvcreate /dev/vdb3 +vgcreate vg0 /dev/vdb3 +lvcreate -L 1.6G -n home vg0 +vgchange -ay +mkfs.ext4 -L root-fs /dev/vdb2 +mkfs.ext4 /dev/mapper/vg0-home +mount /dev/vdb2 /mnt +mkdir /mnt/home +mount /dev/mapper/vg0-home /mnt/home +df -h /mnt /mnt/home +herd start cow-store /mnt +mkdir /mnt/etc +cp /etc/target-config.scm /mnt/etc/config.scm +guix system init /mnt/etc/config.scm /mnt --no-substitutes +sync +reboot\n") + +(define %test-lvm-separate-home-os +  (system-test +   (name "lvm-separate-home-os") +   (description +    "Test functionality of an OS installed with a LVM /home partition") +   (value +    (mlet* %store-monad ((image   (run-install %lvm-separate-home-os +                                               %lvm-separate-home-os-source +                                               #:script +                                               %lvm-separate-home-installation-script +                                               #:packages (list lvm2-static) +                                               #:target-size (* 3200 MiB))) +                         (command (qemu-command/writable-image image))) +      (run-basic-test %lvm-separate-home-os +                      `(,@command) "lvm-separate-home-os"))))) + + +;;;  ;;; Btrfs root file system.  ;;; | 
