unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Installer: GUIX_IMAGE as /dev/sda on some hardware?
@ 2019-05-25  9:04 Giovanni Biscuolo
  2019-05-25 11:58 ` Tobias Geerinckx-Rice
  0 siblings, 1 reply; 6+ messages in thread
From: Giovanni Biscuolo @ 2019-05-25  9:04 UTC (permalink / raw)
  To: help-guix

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

Hello Guix!

I cannot reproduce this anymore since the machine I used is no more
under my physical control and is in production... anyway

I'm sure on a HP ProLiant DL380p Gen8 the installer image (1.0.0
version) [1] listed the USB media as /dev/sda while I've always observed
(and reproducing now on a testing machine) that it's listed as **the
last** /dev/sd? device in the list

This is **very** important when installing grub, in fact grub
installation failed when instantiating my config.scm on the HP ProLiant
simply because it was on /dev/sda pointing to the USB media; I had to
manually install grub on /dev/sdb to complete the install

A couple of questions:

1. has anyone observed a similar issue?

2. what could have caused it?

3. how is the USB media "relocated" to the last /dev/sd? device by the
installer?

Happy hacking! Gio'.


[1] the only custom thing I made was adding "vga=791" and removing
"quiet" from the kernel arguments

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
  2019-05-25  9:04 Installer: GUIX_IMAGE as /dev/sda on some hardware? Giovanni Biscuolo
@ 2019-05-25 11:58 ` Tobias Geerinckx-Rice
  2019-05-25 13:16   ` Giovanni Biscuolo
  0 siblings, 1 reply; 6+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-05-25 11:58 UTC (permalink / raw)
  To: help-guix

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

Giovanni Biscuolo wrote:
> This is **very** important when installing grub, in fact grub
> installation failed when instantiating my config.scm on the HP 
> ProLiant
> simply because it was on /dev/sda pointing to the USB media;

/dev/xdyN names have never been safe to use in this way, though. 
I guess they're fine (at your own risk…) as short identifiers 
during a single CLI session, but not across reboots.  It just 
often *happens* to work on most machines, which as we all know, is 
the most dangerous kind of working.

> 3. how is the USB media "relocated" to the last /dev/sd? device 
> by the
> installer?

It's… not?  Dev nodes & names are doled out by the kernel.  As 
you've discovered, they aren't to be relied on, and you should use 
labels or UUIDs instead.

Even if we'd pretend differently in the installer, for example 
through artificially delayed probing for usb_storage devices, 
things would still break when that lie would be exposed by adding 
a new SATA drive, or when using a different (rescue) distro, or…

> 1. has anyone observed a similar issue?
>
> 2. what could have caused it?

I used to own a system that scanned drives in a different order 
depending on whether or not a USB keyboard was attached.  It was 
intended as a headless system; great fun debugging that!  

I once corrupted a drive (luckily part of a RAID-1 array, but it 
was still stupid of me) because the rescue CD scanned drives in a 
different order than the distro I was used to.

My first SATA motherboard enumerated drives differently between 
cold and warm boots — but only sometimes.  I think it had 
something to do with spin-up times.

I could go on.  I often do.  Sorry.

Hoping to have scared you into using UUIDs,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
  2019-05-25 11:58 ` Tobias Geerinckx-Rice
@ 2019-05-25 13:16   ` Giovanni Biscuolo
  2019-05-26 11:22     ` Tobias Geerinckx-Rice
                       ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Giovanni Biscuolo @ 2019-05-25 13:16 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, help-guix; +Cc: guix-devel

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

Hi Tobias,

thanks for sharing your experience, I'm cross posting to guix-devel
since it's worth discussing a patch to the installer

Tobias Geerinckx-Rice <me@tobias.gr> writes:

> Giovanni Biscuolo wrote:
>> This is **very** important when installing grub, in fact grub
>> installation failed when instantiating my config.scm on the HP 
>> ProLiant
>> simply because it was on /dev/sda pointing to the USB media;
>
> /dev/xdyN names have never been safe to use in this way

I'm not talking about partitions ;-)

According my faulty memory (I cannot reproduce it now)
/dev/sd<something> is what the Installer writes in the bootloader
section of config.scm:

--8<---------------cut here---------------start------------->8---

  (bootloader
    (bootloader-configuration
      (bootloader grub-bootloader)
      (target "/dev/sda")
      (keyboard-layout keyboard-layout)))

--8<---------------cut here---------------end--------------->8---

and that caused the Installer to fail on grub-install since /dev/sda was
my USB media, (fortunately it failed because there was no space for grub
:-) )

On the other hand, by setting "/dev/sdb" whould made grub-install
succeed when running from USB but fail when running from the system
itself

[...]

>> 3. how is the USB media "relocated" to the last /dev/sd? device 
>> by the installer?
>
> It's… not?

So it's pure coincidence that grub-install on /dev/sda succeedes on the
whole set of machines users are installing via USB media? :-O

> Dev nodes & names are doled out by the kernel.  As 
> you've discovered, they aren't to be relied on, and you should use 
> labels or UUIDs instead.

Labels and UUIDs are for volumes, not for the whole disk ;-)

I'm not talking about filesystem config, where using labels or UUIDS is
strongly recommended (and used by the Installer), I'm talking about
grub-install config

But wait! There's the /dev/disk/by-id/ tree, I did not notice it until
now! :-)

That's the solution:

--8<---------------cut here---------------start------------->8---

  (bootloader
    (bootloader-configuration
      (bootloader grub-bootloader)
      (target "/dev/disk/by-id/scsi-3600508b1001c75a3bebb04b23d19e249")
      (keyboard-layout keyboard-layout)))

--8<---------------cut here---------------end--------------->8---

I did not test this but it smells like running, if Guix devels agree I
think Installer should adopt /dev/disk/by-id by default, sorry I'm not
able to propose a patch for this

[...]

> Hoping to have scared you into using UUIDs,

Yes! You did it (albeit it is disk/by-id and not UUIDs) :-D

Thanks for your suggestions! Gio'.

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
  2019-05-25 13:16   ` Giovanni Biscuolo
@ 2019-05-26 11:22     ` Tobias Geerinckx-Rice
  2019-05-26 11:31     ` Tobias Geerinckx-Rice
  2019-05-28 15:11     ` Ludovic Courtès
  2 siblings, 0 replies; 6+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-05-26 11:22 UTC (permalink / raw)
  To: Giovanni Biscuolo; +Cc: guix-devel, help-guix

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

Giovanni,

Giovanni Biscuolo wrote:
>> /dev/xdyN names have never been safe to use in this way
>
> I'm not talking about partitions ;-)

Neither was I.  Force o' habit.  May your partitions never be in 
random order.

> According my faulty memory (I cannot reproduce it now)
> /dev/sd<something> is what the Installer writes in the 
> bootloader
> section of config.scm:
>
> --8<---------------cut 
> here---------------start------------->8---
>
>   (bootloader
>     (bootloader-configuration
>       (bootloader grub-bootloader)
>       (target "/dev/sda")
>       (keyboard-layout keyboard-layout)))
>

I didn't realise that our *installer* did this…  It shouldn't. 
Thanks for noting this.

> So it's pure coincidence that grub-install on /dev/sda succeedes 
> on the
> whole set of machines users are installing via USB media? :-O

‘Pure coincidence’ is too loaded.  It almost always works!  But 
your original question already illustrates how ‘almost always 
works’ leads to false inductions of ‘should work’.

The odds may be hugely in your favour, but why gamble at all?

>> you've discovered, they aren't to be relied on, and you should 
>> use 
>> labels or UUIDs instead.
>
> Labels and UUIDs are for volumes, not for the whole disk ;-)

…?  I must not be using the right terminology, but each drive has 
a ‘unique identifier’, and a human-readable label (if that human 
likes numbers, a lot) that isn't unique.

‘ID’ & ‘name’, then, fine, whatever we call it, my point remains 
:-P

Kind regards,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
  2019-05-25 13:16   ` Giovanni Biscuolo
  2019-05-26 11:22     ` Tobias Geerinckx-Rice
@ 2019-05-26 11:31     ` Tobias Geerinckx-Rice
  2019-05-28 15:11     ` Ludovic Courtès
  2 siblings, 0 replies; 6+ messages in thread
From: Tobias Geerinckx-Rice @ 2019-05-26 11:31 UTC (permalink / raw)
  To: Giovanni Biscuolo; +Cc: guix-devel, help-guix

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

[Part two, having made my train connection with 8 seconds to 
spare.]

Giovanni Biscuolo wrote:
> But wait! There's the /dev/disk/by-id/ tree, I did not notice it 
> until
> now! :-)

Yes!  That's what I meant!  Thank you.  I'll be sure to use the 
udev terminology for this in future, it's confusing enough as it 
is.

Thanks,

T G-R

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]

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

* Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
  2019-05-25 13:16   ` Giovanni Biscuolo
  2019-05-26 11:22     ` Tobias Geerinckx-Rice
  2019-05-26 11:31     ` Tobias Geerinckx-Rice
@ 2019-05-28 15:11     ` Ludovic Courtès
  2 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2019-05-28 15:11 UTC (permalink / raw)
  To: Giovanni Biscuolo; +Cc: guix-devel, help-guix

Hello!

Giovanni Biscuolo <g@xelera.eu> skribis:

> But wait! There's the /dev/disk/by-id/ tree, I did not notice it until
> now! :-)
>
> That's the solution:
>
>
>   (bootloader
>     (bootloader-configuration
>       (bootloader grub-bootloader)
>       (target "/dev/disk/by-id/scsi-3600508b1001c75a3bebb04b23d19e249")
>       (keyboard-layout keyboard-layout)))
>
> I did not test this but it smells like running, if Guix devels agree I
> think Installer should adopt /dev/disk/by-id by default, sorry I'm not
> able to propose a patch for this

Ideally, we’d use an actual UUID object (or a string?) here rather than
this Linux/udev-specific idiom.  So it would look like:

  (bootloader-configuration
    ;; …
    (target (uuid …)))

Would that work?

I believe using Guile-Parted we could map it back to a /dev name.

WDYT?

Ludo’.

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

end of thread, other threads:[~2019-05-28 15:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-25  9:04 Installer: GUIX_IMAGE as /dev/sda on some hardware? Giovanni Biscuolo
2019-05-25 11:58 ` Tobias Geerinckx-Rice
2019-05-25 13:16   ` Giovanni Biscuolo
2019-05-26 11:22     ` Tobias Geerinckx-Rice
2019-05-26 11:31     ` Tobias Geerinckx-Rice
2019-05-28 15:11     ` Ludovic Courtès

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).