GNU bug report logs - #52680
installer error

Previous Next

Package: guix;

Reported by: Florian Hoertlehner <hoertlehner <at> gmail.com>

Date: Mon, 20 Dec 2021 16:15:01 UTC

Severity: normal

Done: Mathieu Othacehe <othacehe <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 52680 in the body.
You can then email your comments to 52680 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#52680; Package guix. (Mon, 20 Dec 2021 16:15:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Florian Hoertlehner <hoertlehner <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 20 Dec 2021 16:15:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Florian Hoertlehner <hoertlehner <at> gmail.com>
To: bug-guix <at> gnu.org
Subject: installer error
Date: Mon, 20 Dec 2021 14:22:14 +0100
[Message part 1 (text/plain, inline)]
I did burn a fresh installer qcow2 image and then ran the installer at
digital ocean.
I selected entire disk, and gpt.
The attached error then came up after I did enter all the settings.
Unfortunately I cannot grab the text; the virtual console I am runing it in
does not allow me to do that.
[Message part 2 (text/html, inline)]
[installer.png (image/png, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#52680; Package guix. (Mon, 27 Dec 2021 08:24:02 GMT) Full text and rfc822 format available.

Message #8 received at 52680 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Florian Hoertlehner <hoertlehner <at> gmail.com>
Cc: 52680 <at> debbugs.gnu.org
Subject: Re: bug#52680: installer error
Date: Mon, 27 Dec 2021 09:23:41 +0100
Hello Florian,

> I did burn a fresh installer qcow2 image and then ran the installer at digital ocean.

Thanks for the report. You mean that you ran the following command?

--8<---------------cut here---------------start------------->8---
guix system image -t qcow2 gnu/system/install.scm
--8<---------------cut here---------------end--------------->8---

I'll try to reproduce it.

Thanks,

Mathieu




Information forwarded to bug-guix <at> gnu.org:
bug#52680; Package guix. (Mon, 27 Dec 2021 12:46:03 GMT) Full text and rfc822 format available.

Message #11 received at 52680 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Florian Hoertlehner <hoertlehner <at> gmail.com>
Cc: dev <at> jpoiret.xyz, 52680 <at> debbugs.gnu.org
Subject: Re: bug#52680: installer error
Date: Mon, 27 Dec 2021 13:45:06 +0100
[Message part 1 (text/plain, inline)]
Hey,

> guix system image -t qcow2 gnu/system/install.scm

So, I produced a qcow2 installation image this way, imported it in
DigitalOcean, then created a droplet out of it.

The qcow2 image is resized to the droplet disk image size, 25GiB in my
case, and appears as vda disk. There is also an empty vdb disk. In the
installer partitioning page, vda is hidden as this is the installation
device but vdb appears.

Trying to proceed with vdb fails and leads to the backtrace you sent
us. Two things here:

1. We should hide vdb as it is an empty drive, maybe by requiring a
minimal available space. Josselin, what do you think about it?

2. As the qcow2 installation image is also the main VM drive, it will be
hard to install Guix System this way. You might prefer to generate a
complete disk-image that suit your needs and use it directly on
DigitalOcean, as described here:
https://othacehe.org/hosting-a-blog-using-only-scheme.html.

Thanks,

Mathieu
[Screenshot from 2021-12-27 13-31-53.png (image/png, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#52680; Package guix. (Mon, 27 Dec 2021 16:26:01 GMT) Full text and rfc822 format available.

Message #14 received at 52680 <at> debbugs.gnu.org (full text, mbox):

From: Josselin Poiret <dev <at> jpoiret.xyz>
To: Mathieu Othacehe <othacehe <at> gnu.org>, Florian Hoertlehner
 <hoertlehner <at> gmail.com>
Cc: 52680 <at> debbugs.gnu.org
Subject: Re: bug#52680: installer error
Date: Mon, 27 Dec 2021 17:25:26 +0100
Hello Matthieu and Florian,
Mathieu Othacehe <othacehe <at> gnu.org> writes:

> 1. We should hide vdb as it is an empty drive, maybe by requiring a
> minimal available space. Josselin, what do you think about it?

Looks good to me.
I think we should also gracefully handle formatting commands (and maybe
others) failures, as mkfs should properly report why it's failing (and
this would have been a great hint here).  I'll try looking into it.

-- 
Josselin Poiret




Information forwarded to bug-guix <at> gnu.org:
bug#52680; Package guix. (Mon, 27 Dec 2021 18:19:02 GMT) Full text and rfc822 format available.

Message #17 received at 52680 <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: 52680 <at> debbugs.gnu.org, Florian Hoertlehner <hoertlehner <at> gmail.com>
Subject: Re: bug#52680: installer error
Date: Mon, 27 Dec 2021 19:18:15 +0100
[Message part 1 (text/plain, inline)]
Hey,

>> 1. We should hide vdb as it is an empty drive, maybe by requiring a
>> minimal available space. Josselin, what do you think about it?
>
> Looks good to me.

Here's an attached patch. It seems to work fine, but I am still running
the system tests.

WDYT?

Thanks,

Mathieu
[0001-installer-Ignore-small-devices.patch (text/x-patch, inline)]
From d7cc04a71b477d8527b901a66704b28b4e618e04 Mon Sep 17 00:00:00 2001
From: Mathieu Othacehe <othacehe <at> gnu.org>
Date: Mon, 27 Dec 2021 19:12:54 +0100
Subject: [PATCH 1/1] installer: Ignore small devices.

Filter the devices that are smaller than 10GiB in the device selection list.

* gnu/installer/parted.scm (%min-device-size): New variable.
(non-install-devices): Rename it ...
(eligible-devices): ... this way. Filter the install device as well as the
small devices.
* gnu/installer/newt/partition.scm (run-partitioning-page): Adapt it.
---
 gnu/installer/newt/partition.scm |  9 +++---
 gnu/installer/parted.scm         | 47 +++++++++++++++++++++++---------
 2 files changed, 39 insertions(+), 17 deletions(-)

diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm
index 70c11ed8ad..ccc7686906 100644
--- a/gnu/installer/newt/partition.scm
+++ b/gnu/installer/newt/partition.scm
@@ -83,7 +83,8 @@ (define (device-items)
          devices))
 
   (let* ((result (run-listbox-selection-page
-                  #:info-text (G_ "Please select a disk.")
+                  #:info-text (G_ "Please select a \
+disk.  The installation device as well as the small devices are filtered.")
                   #:title (G_ "Disk")
                   #:listbox-items (device-items)
                   #:listbox-item->text cdr
@@ -792,13 +793,13 @@ (define (run-page devices)
            result-user-partitions)))))
 
   (init-parted)
-  (let* ((non-install-devices (non-install-devices))
-         (user-partitions (run-page non-install-devices))
+  (let* ((eligible-devices (eligible-devices))
+         (user-partitions (run-page eligible-devices))
          (user-partitions-with-pass (prompt-luks-passwords
                                      user-partitions))
          (form (draw-formatting-page user-partitions)))
     ;; Make sure the disks are not in use before proceeding to formatting.
-    (free-parted non-install-devices)
+    (free-parted eligible-devices)
     (format-user-partitions user-partitions-with-pass)
     (syslog "formatted ~a user partitions~%"
             (length user-partitions-with-pass))
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 289cd660fd..77902599d6 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -81,7 +81,7 @@ (define-module (gnu installer parted)
 
             with-delay-device-in-use?
             force-device-sync
-            non-install-devices
+            eligible-devices
             partition-user-type
             user-fs-type-name
             partition-filesystem-user-type
@@ -356,28 +356,49 @@ (define (installer-root-partition-path)
              (and=> (uuid root)
                     find-partition-by-uuid)))))
 
-(define (non-install-devices)
-  "Return all the available devices, except the install device."
+;; Minimal installation device size.
+(define %min-device-size
+  (* 10 GIBIBYTE-SIZE)) ;10GiB
+
+(define (eligible-devices)
+  "Return all the available device except the install device and the devices
+with are smaller than %MIN-DEVICE-SIZE."
 
   (define the-installer-root-partition-path
     (installer-root-partition-path))
 
+  (define (small-device? device)
+    (let ((length (device-length device))
+          (sector-size (device-sector-size device)))
+      (and (< (* length sector-size) %min-device-size)
+           (syslog "~a is not eligible because it is smaller than ~a.~%"
+                   (device-path device)
+                   (unit-format-custom-byte device
+                                            %min-device-size
+                                            UNIT-GIGABYTE)))))
+
   ;; Read partition table of device and compare each path to the one
   ;; we're booting from to determine if it is the installation
   ;; device.
   (define (installation-device? device)
     ;; When using CDROM based installation, the root partition path may be the
     ;; device path.
-    (or (string=? the-installer-root-partition-path
-                  (device-path device))
-        (let ((disk (disk-new device)))
-          (and disk
-               (any (lambda (partition)
-                      (string=? the-installer-root-partition-path
-                                (partition-get-path partition)))
-                    (disk-partitions disk))))))
-
-  (remove installation-device? (devices)))
+    (and (or (string=? the-installer-root-partition-path
+                       (device-path device))
+             (let ((disk (disk-new device)))
+               (and disk
+                    (any (lambda (partition)
+                           (string=? the-installer-root-partition-path
+                                     (partition-get-path partition)))
+                         (disk-partitions disk)))))
+         (syslog "~a is not eligible because it is the installation device.~%"
+                 (device-path device))))
+
+  (remove
+   (lambda (device)
+     (or (installation-device? device)
+         (small-device? device)))
+   (devices)))
 
 
 ;;
-- 
2.34.0


Reply sent to Mathieu Othacehe <othacehe <at> gnu.org>:
You have taken responsibility. (Wed, 02 Feb 2022 16:39:01 GMT) Full text and rfc822 format available.

Notification sent to Florian Hoertlehner <hoertlehner <at> gmail.com>:
bug acknowledged by developer. (Wed, 02 Feb 2022 16:39:01 GMT) Full text and rfc822 format available.

Message #22 received at 52680-done <at> debbugs.gnu.org (full text, mbox):

From: Mathieu Othacehe <othacehe <at> gnu.org>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: Florian Hoertlehner <hoertlehner <at> gmail.com>, 52680-done <at> debbugs.gnu.org
Subject: Re: bug#52680: installer error
Date: Wed, 02 Feb 2022 17:37:56 +0100
Pushed, thanks.

Mathieu




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 03 Mar 2022 12:24:14 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 26 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.