unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#40386: guix system init can't find file system by UUID, workaround results in broken boot
@ 2020-04-02  6:40 raingloom
  2020-04-02 11:00 ` Ludovic Courtès
  2020-05-21  5:09 ` raingloom
  0 siblings, 2 replies; 4+ messages in thread
From: raingloom @ 2020-04-02  6:40 UTC (permalink / raw)
  To: 40386

[-- Attachment #1: Type: text/plain, Size: 1709 bytes --]

Trying to install Guix System onto an SSD using an UltraBay dock.
Config is the attached file (with slight variations in the obvious
places)

`readlink /dev/disk/by-uuid/643a215d-a30e-473b-826e-5c35de29e38f` gives
me /dev/sdb1

Yet using (uuid "643a215d-a30e-473b-826e-5c35de29e38f") results in:

```
sudo -E guix system init --no-bootloader
Configs/Guix/desktop-parametric.scm /mnt
 :( /home/raingloom/Configs/Guix/desktop-parametric.scm:50:26: error:
file system with UUID '643a215d-a30e-473b-826e-5c35de29e38f' not found
```

Switching the UUID to uppercase as in the example (thankfully) doesn't
change anything, not even the error message.

I tried using a label, same result.

I ended up using the /dev/disk/by-uuid and /dev/disk/by-id paths for
the root file system and the bootloader respectively, and that resulted
in a succesful system init, but upon trying to boot the SSD with the
other machine, I got thrown into a rescue shell, because it couldn't
find the root using that path.

**(Quick aside: there really should be a guide for using that rescue
shell. I can get around in a /bin/sh one, but this is nearly unusable.
At least autocompletion should be supported.)**

I tried modifying the --root kernel parameter from Grub, so that it
would point to /dev/sda1 directly (which is the device's name on the
other machine), but I was thrown into the rescue shell again, with the
same backtrace (with the old path replaced with /dev/sda1 of course).

Sooo, I have no idea what to do. Any tips on debugging this?

Or on reconfiguring a Guix System install that is on an external file
system? On Arch I'd just arch-chroot into it and fix it from there, but
I don't know of anything similar for Guix.

[-- Attachment #2: desktop-parametric.scm --]
[-- Type: text/x-scheme, Size: 3982 bytes --]

;; for REPL
(use-modules (guix)
             (gnu services))

(use-modules (gnu)
	     (gnu system nss)
	     (gnu packages shells)
	     (gnu packages package-management)
	     (gnu packages gnome)
             (gnu packages xdisorg)
             (gnu packages android)
             (gnu system shadow)
             (gnu services linux))

(use-service-modules desktop ssh nix)
(use-package-modules
 bootloaders
 certs
 ratpoison
 suckless
 wm)

((lambda* (:key use-proprietary-crap?)
   (if use-proprietary-crap?
       (use-modules (nongnu packages linux))
       (use-modules (gnu packages linux)))

   (operating-system
     (host-name "greg")
     (timezone "Europe/Budapest")
     (locale "en_US.utf8")
     (kernel
      (if use-proprietary-crap?
	  linux
	  linux-libre))
     (firmware (append
	        (if use-proprietary-crap?
		    (list iwlwifi-firmware)
		    '())
	        %base-firmware))

     ;; Use the UEFI variant of GRUB with the EFI System
     ;; Partition mounted on /boot/efi.
     (bootloader (bootloader-configuration
                  (bootloader grub-bootloader)
                  (target "/dev/disk/by-id/ata-KINGSTON_SMS200S3120G_50026B727202A944")))

     ;; Assume the target root file system is labelled "my-root",
     ;; and the EFI System Partition has UUID 1234-ABCD.
     (file-systems (cons* (file-system
                            (device (uuid "643a215d-a30e-473b-826e-5c35de29e38f"))
                            (mount-point "/")
			    (options "compress")
                            (type "f2fs"))
			  %base-file-systems))

     (users (append (list
		     (user-account
		      (name "raingloom")
		      (comment "your friendly localhost admin")
		      (group "users")
		      (shell "/run/current-system/profile/bin/zsh")
		      (supplementary-groups '("adbusers" "audio" "kvm" "netdev" "video" "wheel"))
		      (home-directory "/home/raingloom")))
		    %base-user-accounts))

     (groups (cons (user-group (system? #t) (name "adbusers"))
                   %base-groups))

     (packages (cons* i3-wm i3status dmenu ;window manager
                      ;; sway swaylock swayidle swaybg waybar ;wayland window manager
		      nss-certs         ;for HTTPS access
		      zsh               ;nicer login shell
		      gvfs
                      glib-networking
		      nix
		      gnome
		      orca
                      libwacom
                      xf86-input-wacom
		      %base-packages))

     ;; Use the "desktop" services, which include the X11
     ;; log-in service, networking with NetworkManager, and more.
     (services
      (append (list (service nix-service-type)
		    (service openssh-service-type
			     (openssh-configuration (x11-forwarding? #f)))
                    (service earlyoom-service-type
                             (earlyoom-configuration (minimum-available-memory 5))))
	      (modify-services
                  %desktop-services
                (udev-service-type
                 config =>
                 (udev-configuration (inherit config)
                                     (rules (cons*
                                             android-udev-rules
                                             libwacom
                                             (udev-configuration-rules config)))))
                (elogind-service-type config =>
                                      (elogind-configuration
                                       (inherit config)
                                       (handle-lid-switch 'ignore)))
                (guix-service-type config =>
                                   (guix-configuration
                                    (inherit config)
                                    (extra-options '("--gc-keep-derivations=yes"
                                                     "--gc-keep-outputs=yes")))))))

     ;; Allow resolution of '.local' host names with mDNS.
     (name-service-switch %mdns-host-lookup-nss))) #:use-proprietary-crap? #f)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#40386: guix system init can't find file system by UUID, workaround results in broken boot
  2020-04-02  6:40 bug#40386: guix system init can't find file system by UUID, workaround results in broken boot raingloom
@ 2020-04-02 11:00 ` Ludovic Courtès
  2020-04-06  6:49   ` bug#40386: F2FS support Was: " raingloom
  2020-05-21  5:09 ` raingloom
  1 sibling, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2020-04-02 11:00 UTC (permalink / raw)
  To: raingloom; +Cc: 40386

Hi,

raingloom <raingloom@riseup.net> skribis:

> Trying to install Guix System onto an SSD using an UltraBay dock.
> Config is the attached file (with slight variations in the obvious
> places)
>
> `readlink /dev/disk/by-uuid/643a215d-a30e-473b-826e-5c35de29e38f` gives
> me /dev/sdb1
>
> Yet using (uuid "643a215d-a30e-473b-826e-5c35de29e38f") results in:
>
> ```
> sudo -E guix system init --no-bootloader
> Configs/Guix/desktop-parametric.scm /mnt
>  :( /home/raingloom/Configs/Guix/desktop-parametric.scm:50:26: error:
> file system with UUID '643a215d-a30e-473b-826e-5c35de29e38f' not found
> ```
>
> Switching the UUID to uppercase as in the example (thankfully) doesn't
> change anything, not even the error message.
>
> I tried using a label, same result.

What file system is on /dev/sdb1?

The code responsible for that is in (gnu build file-systems).  It
currently recognizes only some file system types: ISO9660, ext2/3/4,
Btrfs, FAT32, FAT16, and JFS.

Can you try:

  sudo guix repl
  ,use(gnu build file-systems)
  (find-partition-by-uuid (uuid "643a215d-a30e-473b-826e-5c35de29e38f"))

?

> I ended up using the /dev/disk/by-uuid and /dev/disk/by-id paths for
> the root file system and the bootloader respectively, and that resulted
> in a succesful system init, but upon trying to boot the SSD with the
> other machine, I got thrown into a rescue shell, because it couldn't
> find the root using that path.

Yes, because /dev/disk is not accessible early on.  That’s why the
manual recommends using ‘uuid’ or ‘file-system-label’.

> **(Quick aside: there really should be a guide for using that rescue
> shell. I can get around in a /bin/sh one, but this is nearly unusable.
> At least autocompletion should be supported.)**

Yes, that reminds me someone reported a serious Bournish bug on IRC.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#40386: F2FS support Was: bug#40386: guix system init can't find file system by UUID, workaround results in broken boot
  2020-04-02 11:00 ` Ludovic Courtès
@ 2020-04-06  6:49   ` raingloom
  0 siblings, 0 replies; 4+ messages in thread
From: raingloom @ 2020-04-06  6:49 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 40386

On Thu, 02 Apr 2020 13:00:39 +0200
Ludovic Courtès <ludo@gnu.org> wrote:

> Hi,
> 
> raingloom <raingloom@riseup.net> skribis:
> 
> > Trying to install Guix System onto an SSD using an UltraBay dock.
> > Config is the attached file (with slight variations in the obvious
> > places)
> >
> > `readlink /dev/disk/by-uuid/643a215d-a30e-473b-826e-5c35de29e38f`
> > gives me /dev/sdb1
> >
> > Yet using (uuid "643a215d-a30e-473b-826e-5c35de29e38f") results in:
> >
> > ```
> > sudo -E guix system init --no-bootloader
> > Configs/Guix/desktop-parametric.scm /mnt
> >  :( /home/raingloom/Configs/Guix/desktop-parametric.scm:50:26:
> > error: file system with UUID '643a215d-a30e-473b-826e-5c35de29e38f'
> > not found ```
> >
> > Switching the UUID to uppercase as in the example (thankfully)
> > doesn't change anything, not even the error message.
> >
> > I tried using a label, same result.  
> 
> What file system is on /dev/sdb1?
> 
> The code responsible for that is in (gnu build file-systems).  It
> currently recognizes only some file system types: ISO9660, ext2/3/4,
> Btrfs, FAT32, FAT16, and JFS.
> 
> Can you try:
> 
>   sudo guix repl
>   ,use(gnu build file-systems)
>   (find-partition-by-uuid (uuid
> "643a215d-a30e-473b-826e-5c35de29e38f"))
> 
> ?
> 
> > I ended up using the /dev/disk/by-uuid and /dev/disk/by-id paths for
> > the root file system and the bootloader respectively, and that
> > resulted in a succesful system init, but upon trying to boot the
> > SSD with the other machine, I got thrown into a rescue shell,
> > because it couldn't find the root using that path.  
> 
> Yes, because /dev/disk is not accessible early on.  That’s why the
> manual recommends using ‘uuid’ or ‘file-system-label’.
> 
> > **(Quick aside: there really should be a guide for using that rescue
> > shell. I can get around in a /bin/sh one, but this is nearly
> > unusable. At least autocompletion should be supported.)**  
> 
> Yes, that reminds me someone reported a serious Bournish bug on IRC.
> 
> Thanks,
> Ludo’.

It looks like the issue is that F2FS isn't supported, but I'm working
on adding support. UUID reading works, but labels still seem to be
buggy, and I'm still debugging some initrd issues, but I think I'm
close.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#40386: guix system init can't find file system by UUID, workaround results in broken boot
  2020-04-02  6:40 bug#40386: guix system init can't find file system by UUID, workaround results in broken boot raingloom
  2020-04-02 11:00 ` Ludovic Courtès
@ 2020-05-21  5:09 ` raingloom
  1 sibling, 0 replies; 4+ messages in thread
From: raingloom @ 2020-05-21  5:09 UTC (permalink / raw)
  To: 40386

This can be closed, now that we have F2FS support.

Although maybe the error message could be better for file systems that
are not supported. Right now the use has no way to distinguish whether
`guix system` failed to find their device because they mistyped the
UUID or because it doesn't even support their file system of choice at
all.




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-05-21  5:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-02  6:40 bug#40386: guix system init can't find file system by UUID, workaround results in broken boot raingloom
2020-04-02 11:00 ` Ludovic Courtès
2020-04-06  6:49   ` bug#40386: F2FS support Was: " raingloom
2020-05-21  5:09 ` raingloom

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).