Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-31 Thread Danny Milosavljevic
Yeah, but disk ids are not uuids.

/dev/disk/by-id seems to be a good way to find those disk ids in order to pass
them to grub-install.  I doubt that this can be made OS-independent--even the
udev rules specify different variables for different devices, sometimes it's
bus id and serial number, sometimes it's name and serial number, sometimes it's
ieee1394_id, sometimes ID_WWN_WITH_EXTENSION.

Alternatively, grub also works from a boot-active partition--it nothing else
works, we can install grub to a partition (for example the root partition).

Then, migration would be difficult, though (if people had grub installed on
the MBR, that destroyed the previous loader that would have loaded from the
boot sector of the partition).


pgpCuMwQhpnpo.pgp
Description: OpenPGP digital signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-31 Thread Tobias Geerinckx-Rice

Ludovic Courtès wrote:

Danny Milosavljevic  skribis:
Grub already can search by uuid or label (via "search --fsuuid" 
and
"search --label", respectively).  IF you specify an uuid or 
label

in your operating-system configuration it will use that.


These are concerned with file system UUIDs/labels, whereas this 
issue is

about disk IDs, AIUI.  Or am I missing something?


This.  Also, this only affects grub-install—not ‘grub 
run-time’—which runs under the Hurd/Linux/…, unless I, too, am 
missing something, and this entire thread collapses in a cacophony 
of confusion.


G'night,

T G-R


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-31 Thread Ludovic Courtès
Hi Danny,

Danny Milosavljevic  skribis:

> Grub already can search by uuid or label (via "search --fsuuid" and
> "search --label", respectively).  IF you specify an uuid or label
> in your operating-system configuration it will use that.

These are concerned with file system UUIDs/labels, whereas this issue is
about disk IDs, AIUI.  Or am I missing something?

Ludo’.



Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-29 Thread Danny Milosavljevic
Grub already can search by uuid or label (via "search --fsuuid" and
"search --label", respectively).  IF you specify an uuid or label
in your operating-system configuration it will use that.

The only part missing is: The Guix installer's config generator should
find out the uuids and print those instead of the /dev nodes.

If nothing else, we can just use blkid to find out which is which.

For example: blkid -d -s UUID -o value /dev/sda1

But T G-R is right, Guix already does what is required at other places.

Care has to be taken that parted also uses GUIDs for GPT partition TYPES
and also for partitions as such (not their contents).  Those are something
else.


pgpGgHJrk6jjx.pgp
Description: OpenPGP digital signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-29 Thread Giovanni Biscuolo
Hello Tobias and Ludo'

I've opened a bug report for this, WDYT if we go on there?

Tobias Geerinckx-Rice  writes:

> Ludovic Courtès wrote:
>> Ideally, we’d use an actual UUID object (or a string?) here 
>> rather than
>> this Linux/udev-specific idiom.  […]
>> I believe using Guile-Parted we could map it back to a /dev 
>> name.
>
> Yah, 's one of the reasons that I haven't sent anything yet (the 
> main one being shame, of course; car/cdr for the win & all that).
>
>> Would that work?
>
> I'd looked in Guile-parted before but came up dry.  To be fair I 
> did little more than grep around for ‘uid’ and friends.  So you 
> tell me ;-)
>
> …
>
> Hum, wait a minute.  Isn't that irrelevant?  Doesn't Guix itself 
> do exactly this when mounting file systems?  Sigh, silly me, I 
> should be able to re-use that…  >_<

Grub supports quite a number of ways to specify devices [1] but I cannot
find something suitable for this purpose: am I missimg something
obvious?

AFAIU on ther distros (e.g. Debian) (the installer?) populates a device
map [2] using the grub-mkdevicemap utility (grub-common package in
Debian) but I cannot find that in our grub package

This is an example on one of my Debian hosts:

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

$ cat /boot/grub/device.map
(hd0)   /dev/disk/by-id/ata-WDC_WD10EADS-00L5B1_WD-WCAU4D992691
(hd1)   /dev/disk/by-id/ata-ST3250620NS_9QE2L68Z
(hd2)   /dev/disk/by-id/ata-ST3250620NS_9QE2FSQD
(hd3)   /dev/disk/by-id/ata-ST3250620NS_9QE27YPJ
(hd4)   /dev/disk/by-id/ata-WDC_WD7500BPKT-00PK4T0_WD-WX11A4181554
(hd5)   /dev/disk/by-id/ata-WDC_WD7500BPKT-00PK4T0_WD-WXM1A61D0766

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

(the map is not updated)

We could use (hd?) in grub config - that's grub specific, not Linux/udev
specific - **but** we should find a way to automate the selection of the
device corresponding to our target (the one mounted as /mnt)

Thanks for working on this!!!

Happy hacking. Gio'.



[1] https://www.gnu.org/software/grub/manual/grub/html_node/Device-syntax.html


[2] https://www.gnu.org/software/grub/manual/grub/html_node/Device-map.html

-- 
Giovanni Biscuolo

Xelera IT Infrastructures


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-28 Thread Tobias Geerinckx-Rice

[De-CC'ing help-guix again.]

Ludo'!

Ludovic Courtès wrote:
Ideally, we’d use an actual UUID object (or a string?) here 
rather than

this Linux/udev-specific idiom.  […]
I believe using Guile-Parted we could map it back to a /dev 
name.


Yah, 's one of the reasons that I haven't sent anything yet (the 
main one being shame, of course; car/cdr for the win & all that).



Would that work?


I'd looked in Guile-parted before but came up dry.  To be fair I 
did little more than grep around for ‘uid’ and friends.  So you 
tell me ;-)


…

Hum, wait a minute.  Isn't that irrelevant?  Doesn't Guix itself 
do exactly this when mounting file systems?  Sigh, silly me, I 
should be able to re-use that…  >_<


Kind regards,

T G-R


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-28 Thread Ludovic Courtès
Hello!

Giovanni Biscuolo  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’.



Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-26 Thread Tobias Geerinckx-Rice

Giovanni Biscuolo wrote:
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


I've written a patch to make this work:

 (bootloader
   (bootloader-configuration
 (bootloader grub-bootloader)
 (target
   "/dev/disk/by-id/ata-QEMU_HARDDISK_QM1")
 …

…now to rewrite so it stands a chance of being merged :-)

Kind regards,

T G-R


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-26 Thread Tobias Geerinckx-Rice
[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


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-26 Thread Tobias Geerinckx-Rice

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


signature.asc
Description: PGP signature


Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?

2019-05-25 Thread Giovanni Biscuolo
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  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 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


signature.asc
Description: PGP signature