Re: Installer: GUIX_IMAGE as /dev/sda on some hardware?
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?
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?
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?
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?
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?
[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?
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?
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?
[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?
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?
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