• isorecorder

    From Andrew M.A. Cater@21:1/5 to All on Sun Jan 10 15:00:02 2021
    On Sun, Jan 10, 2021 at 02:37:27PM +0100, The7up wrote:
    Hi!

    It looks like isorecorder not available since a while ago. May I remove it from the list in w.d.o/faq/CD index page?

    At the same time, rufus (https://rufus.ie/) should be mentioned as a great app on Windows to make bootable usb stick from iso (GNU licensing, source code available on GitLab).

    Please cc me on the answer, I'm not a member of this list, but you can find me on debian-www.

    Zibi

    Isorecorder _is_ available but not reliably. When I was trying to pick up the failures in http resolution, it was there sometimes and not others. It's only supported for Windows versions prior to version 8.
    Probably a good thing to remove but it needs to be removed everywhere it occurs: I'd be quite happy to go through and do this

    Rufus on the other hand _was_ problematic in the past and w32diskimager works.

    Andy C.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From The7up@21:1/5 to All on Sun Jan 10 14:40:01 2021
    Hi!

    It looks like isorecorder not available since a while ago. May I remove it
    from the list in w.d.o/faq/CD index page?

    At the same time, rufus (https://rufus.ie/) should be mentioned as a great
    app on Windows to make bootable usb stick from iso (GNU licensing, source
    code available on GitLab).

    Please cc me on the answer, I'm not a member of this list, but you can find
    me on debian-www.

    Zibi

    <div dir="ltr"><div>Hi!</div><div><br></div><div>It looks like isorecorder not available since a while ago. May I remove it from the list in w.d.o/faq/CD index page?</div><div><br></div><div>At the same time, rufus (<a href="https://rufus.ie/">https://
    rufus.ie/</a>) should be mentioned as a great app on Windows to make bootable usb stick from iso (GNU licensing, source code available on GitLab).<br></div><div><br></div><div>Please cc me on the answer, I&#39;m not a member of this list, but you can
    find me on debian-www.</div><div><br></div><div>Zibi<br></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lou Poppler@21:1/5 to All on Sun Jan 10 17:20:01 2021
    On Sun, 2021-01-10 at 14:37 +0100, The7up wrote:
    Hi!

    It looks like isorecorder not available since a while ago. May I remove it from the list in w.d.o/faq/CD index page?

    At the same time, rufus (https://rufus.ie/) should be mentioned as a great app on Windows to make bootable usb stick from iso (GNU licensing, source code available on GitLab).

    Please cc me on the answer, I'm not a member of this list, but you can find me on debian-www.

    Zibi

    If you want to recommend rufus, please do so ONLY with a prominent,  un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.
    If you allow rufus to write in its default "ISO mode", it will replace parts of the debian image with its own recipe of loaders and configurations.

    I have seen many, many visitors to #debian with hard-to-diagnose installation problems which disappear after we finally discover their image was written in rufus "ISO mode" and counsel them to re-do it in "DD mode".

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to Lou Poppler on Sun Jan 10 18:20:02 2021
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,  un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    I understand that manual selection of this mode has been removed in
    favor of automatic detection of dd candidates:
    https://github.com/pbatard/rufus/issues/1148#issuecomment-395562137

    I don't use Rufus myself but it is my answer to users of MS-Windows when
    they ask what to do with an ISO that is bootable from USB-stick.


    Have a nice day :)

    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lou Poppler@21:1/5 to Thomas Schmitt on Sun Jan 10 20:00:02 2021
    On Sun, 2021-01-10 at 18:13 +0100, Thomas Schmitt wrote:
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,  un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    I understand that manual selection of this mode has been removed in
    favor of automatic detection of dd candidates:
    https://github.com/pbatard/rufus/issues/1148#issuecomment-395562137

    I don't use Rufus myself but it is my answer to users of MS-Windows when
    they ask what to do with an ISO that is bootable from USB-stick.


    Have a nice day :)

    Thomas

    Hi Thomas,

    Your github link references changes made in 2018.
    In September 2020, I tested the latest rufus on a windows system,
    and found that the ISO mode was still default, DD mode only an option.
    I corresponded with rufus's author Pete Batard, including some logs from #debian
    discussing my testing of rufus, and he kindly returned a lengthy response to my
    email.

    Everything below are excerpts from his email:

    On Thu, 1 Oct 2020, Pete Batard <pete@akeo.ie> wrote:
    [...]
    Unfortunately, the Syslinux people have made their modules 
    incompatible from one version to another, and you can't get a core 
    USB/HDD Syslinux bootloader, that is compatible with the Isolinux 
    El-Torito core bootloader, from the ISO itself, so, if the version of  Isolinux used by the ISO is different from the one of the USB/HDD 
    Syslinux that Rufus embeds, we need to download it. We will therefore 
    prompt a dialog to do so, to let users know that Rufus is planning to  download extra components from the internet. But this is a standard 
    prompt, not an error.

    Now the one thing that might have thrown this user off is that Rufus 
    always prompts to download these components BEFORE it asks to choose 
    between ISO and DD mode, even as these components are only used for ISO 
    mode, on account that I find it better for users to have the extra 
    Syslinux or GRUB components needed to write in ISO mode available on 
    their machine for subsequent runs. But I can understand how some people 
    may *WRONGLY* assume that, if Rufus asks them to download these, then 
    it's not going to ask them between DD and ISO mode, which is incorrect, 
    as this is really the very next prompt.
    [...]
    Finally, I'm not sure why that user is so hell bent on using DD vs ISO. 
    Rufus does actually recommend ISO mode over DD (which is part of the 
    reason why I want to nudge users into downloading the extra remote  Syslinux/GRUB components they need) because, if you pay attention to 
    user reports from the internet, especially on social media sites like 
    reddit, you will find that DD-mode image writing does often throw 
    Windows people off, as they think that their drive has been reduced in 
    size to just the ESP since Windows will not mount the main, larger  installation partition. This, I'm afraid, is not something that Linux 
    distro maintainers and power-users tend to see, who, I will assert, see  ISOHybrid as some kind of panacea, whereas they need to realise that 
    there really exist a lot of Windows users, who are trying to install 
    Linux for the first time and are not familiar with file systems and  partitioning that assume, when seeing that the Linux USB they just wrote 
    has apparently been "reduced" to a 16 or 32 MB ESP, that there is an 
    issue with their boot media and do not proceed to attempt installation 
    as a result (a bit like the user below assuming that if they are 
    prompted for files that apply for ISO mode, then it must mean that Rufus 
    will not prompt them for DD mode, which is incorrect).

    And since I believe that this is ultimately damaging with regards to 
    helping people try Debian or other Linux distros, this is why Rufus 
    tends to recommend ISO mode over DD mode. I therefore have to stress out 
    that distros that are concerned about helping Windows users try or 
    install Linux in the best conditions not put all their eggs in the 
    ISOHybrid "DD" basket, but also ensure that their live or installer 
    system can function with a single FAT32 partition (which, thankfully, 
    the Debian and Ubuntu maintainers seem to readily understand, as far as 
    I can see).

    So, to summarise:
    - The DD vs ISO prompt is there. But it only appears after the download  Syslinux component prompt, and will obviously not show if you cancel the  whole operation on the first prompt. So far, I've had very few reports 
    of users being thrown off by this.
    [...]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to Lou Poppler on Sun Jan 10 20:50:02 2021
    Hi,

    The7up originally wrote:
    ... > It looks like isorecorder not available since a while ago. May I
    ... > remove it from the list in w.d.o/faq/CD index page?
    ... > At the same time, rufus (https://rufus.ie/ [rufus.ie]) should be
    ... > mentioned as a great app on Windows to make bootable usb stick from
    ... > iso (GNU licensing, source code available on GitLab)

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,  un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    i wrote:
    I understand that manual selection of this mode has been removed in
    favor of automatic detection of dd candidates:
    https://github.com/pbatard/rufus/issues/1148#issuecomment-395562137

    Lou Poppler wrote:
    I corresponded with rufus's author Pete Batard, including some logs from #debian discussing my testing of rufus, and he kindly returned a lengthy response to my email.

    On Thu, 1 Oct 2020, Pete Batard <pete@akeo.ie> wrote:
    Now the one thing that might have thrown this user off is that Rufus  always prompts to download these components BEFORE it asks to choose  between ISO and DD mode,

    Then i misunderstood that GitHub issue post from 2018.

    So yes, the urge to use DD mode should be very visible within the advise
    to copy a Debian amd64, i386, or arm64 ISO flatly to an USB-Stick.

    I know that Pete Batard prefers other methods. But the flat copy is what
    our ISOs strive for on the first hand.


    Pete Batard wrote:
    DD-mode image writing does often throw 
    Windows people off, as they think that their drive has been reduced in 
    size to just the ESP since Windows will not mount the main, larger  installation partition.

    I wonder whether that problem is resolved by the new layout of Ubuntu 20.1
    0
    which is a GPT variation of my proposals for debian-cd:
    https://lists.debian.org/debian-cd/2019/07/msg00007.html

    To my theory, the unwillingness of MS-Windows to show the ISO partition of
    the current Debian ISO layout is in its partition type 0x00, which is
    needed to keep the nested MBR partition layout legal for EFI.
    My proposed layout without nested partitions makes it possible to have
    a conventional partition type for the ISO partition or to use a GPT instead
    of an MBR partition table.


    Have a nice day :)

    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Lou Poppler on Sun Jan 10 21:20:02 2021
    Hello All,

    I am the main developer of Rufus and since I am now being involved in
    this discussion, let me reply to a few points:

    On 2021.01.10 18:56, Lou Poppler wrote:
    On Sun, 2021-01-10 at 18:13 +0100, Thomas Schmitt wrote:
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,
    un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    For people who seem to be under the impression that "(Rufus) will
    replace parts of the debian image with its own recipe of loaders and configurations", I have to vehemently dispute that it is doing any such
    thing.

    The goal of Rufus is to create a bootable USB with content that is as
    close as possible to the ISO content *AND* is bootable as USB media, period.

    As such, when booting in UEFI mode, the *only* element that Rufus may
    modify are the labels used in the GRUB/Syslinux config files (kernel
    option) for source media lookup, to accommodate FAT32 limitations on
    that matter (since FAT limits labels to 11 uppercase characters, and ISO volumes can and usually do use labels with much longer names).

    Apart from this, everything else is a binary identical copy of the ISO
    content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux
    bootloaders, which can't come from the ISO but which we produce from
    vanilla official releases, and rely on the distro not to have deviated
    too much in terms of patches from vanilla GRUB/Syslinux. However, if
    such deviation occurs, you usually get an early boot error that is easy
    to diagnose, and we also have provision, through the bootloader download facility of Rufus, to produce GRUB/Syslinux bootloaders that include
    specific fixes, such as the ones required for BootHole, since GRUB has
    yet to produce a mainline release that includes those.

    So I have to be adamant that if the media doesn't boot, especially in
    UEFI mode, then it's not a matter of Rufus introducing "its own recipe
    of loaders and configuration" but rather a problem of distro maintainers
    not having properly tested UEFI/FAT32 boot mode by extracting the ISO
    content onto a FAT32 partition, and trying to boot said media. And I am
    pretty positive that you will find that the users who reported issues
    after creating their media through Rufus, will report the exact same
    issues if creating the media themselves without using a third party utility.

    Which brings me nicely to the point that the current Debian Bullseye
    test images have broken said mode of operation (UEFI install from ISO
    content extracted on FAT32) early in December, which is causing problems
    for people trying to install Debian on Pi 4 for instance ([1] but my
    testing shows that this applies to more than arm64. And yes, I've been
    meaning to file a bug for this, but I haven't had a chance to do that yet).

    So le me reiterate this plea:

    PLEASE, PLEASE, PLEASE, do not treat ISOHybrid as an excuse to ignore
    non DD mode of installation, because, when you look at it objectively,
    you should find that DD is *NOT* a panacea (for instance, DD mode is
    completely useless for installation of vanilla Bullseye on a Pi 4,
    whereas FAT32 extraction, *when* not broken, gives you the same
    experience as if you were installing Debian on a UEFI x86 PC) and users
    do and will rely on a non DD mode of creating their install media.

    If you actively expect that everybody should use DD-mode only when
    creating a bootable media from an ISOHybrid, you *WILL* diminish the
    user experience.

    I understand that manual selection of this mode has been removed in
    favor of automatic detection of dd candidates:
    https://github.com/pbatard/rufus/issues/1148#issuecomment-395562137

    I'm afraid Thomas has been interpreting the item to which this pertains
    wrong.

    Rufus used to have a separate entries in one of it's UI dropdown for the
    type of image the user wanted to select. One of these entries was for
    "ISO Image", which would trigger a default filter of "*.iso" when
    selecting an image, and another entry was for "DD image", which would
    set a default filter of "*.img, *.disk, *.vhd, ...".

    But considering that, behind the scenes Rufus was ultimately performing
    its own detection of the properties of an image, and that there was no
    real difference between these 2 options if you applied a filter of
    "*.*", it of course made sense to consolidate the 2 dropdown elements
    into a single "Disk or ISO Image".

    However, this threw of people who were used to seeing a separate option
    for "DD image" and led them to think that this option had been removed altogether.

    So I'm afraid that Thomas' interpretation is incorrect. Automatic
    detection was always being enacted, and the only thing the DD or ISO
    "mode" did was apply a different filter for the file selection dialog.

    I don't use Rufus myself but it is my answer to users of MS-Windows when
    they ask what to do with an ISO that is bootable from USB-stick.

    As Lou pointed out from a previous e-mail I sent (and as the plea above
    should make clear) I see the matter very differently, on account of the feedback I receive from Windows users, as well as what I am seeing on
    social media, with Windows users really being thrown off by not being
    able to "see" the full content that has been copied to their USB.

    For instance, I can literally point to reddit post after reddit post
    where a Windows user is utterly confused after they created a media in
    DD mode, by the fact that Windows only mounts the ESP and that there
    only seems to be a couple files there. Most of these users end up
    believing that their media was improperly created and do not try to boot
    it at all.

    This is why I made the decision to promote ISO/File copy over DD copy in
    Rufus for ISO Hybrid.

    I will however point out that, when doing so, Rufus produces the
    following *explicit* warning (which appears every single time a user
    creates media from an ISOHybrid):

    ----------------------------------------------------------------------- ISOHybrid image detected

    The image you have selected is an 'ISOHybrid' image. This means it can
    be written either in ISO (file copy) mode or DD (disk image) mode.
    Rufus recommends using ISO mode, so that you always have full access to
    the drive after writing it.
    However, if you encounter issues during boot, you can try writing this
    image again in DD mode.

    Please select the mode that you want to use to write this image:
    o Write in ISO mode (Recommended)"
    o Write in DD mode -----------------------------------------------------------------------

    In other words, Rufus prominently advises users to try recreating the
    media in DD mode if they think they encountered an issue in DD mode.

    As such, I can't see myself agreeing with proponents of "If you use
    Rufus, only use DD" as we are literally doing everything we can to help
    users, and I will maintain that most of the responsibility of ensuring
    that ISO mode works is with the distro maintainers, since, once again,
    all Rufus does (apart from changing the label in config files, *IF*
    necessary) is perform a 1:1 copy of all the ISO content onto a FAT32 media.

    Moreover, since this mode of operation is very convenient, on account
    that it really doesn't even require the user to use a third party
    application (including Rufus, but also including a dd imager) and is
    cross platform, I can't help be feel dismayed at seeing the apparent
    trend that some distro maintainers appear to have of disregarding simple
    ISO extraction on FAT32 media for UEFI boot, on account that "users
    should just use DD anyway".

    From where I stand, doing so only leads to a worse overall experience
    for users trying to install your distro.

    So I hope we can all agree that there is a place for both DD and
    ISO/file copy mode, and that the promotion of one should not relegate
    the other to a feature that is no longer being properly tested and left
    to wither (as we can see with the >1 month breakage of UEFI-FAT32
    installation from Bullseye testing netinstall ISOs).

    Regards,

    /Pete

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Pete Batard on Sun Jan 10 21:30:01 2021
    Adding missing link:

    [1] https://www.raspberrypi.org/forums/viewtopic.php?f=50&t=282839&start=25#p1778729

    On 2021.01.10 20:19, Pete Batard wrote:
    Hello All,

    I am the main developer of Rufus and since I am now being involved in
    this discussion, let me reply to a few points:

    On 2021.01.10 18:56, Lou Poppler wrote:
    On Sun, 2021-01-10 at 18:13 +0100, Thomas Schmitt wrote:
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,
    un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    For people who seem to be under the impression that "(Rufus) will
    replace parts of the debian image with its own recipe of loaders and configurations", I have to vehemently dispute that it is doing any such thing.

    The goal of Rufus is to create a bootable USB with content that is as
    close as possible to the ISO content *AND* is bootable as USB media,
    period.

    As such, when booting in UEFI mode, the *only* element that Rufus may
    modify are the labels used in the GRUB/Syslinux config files (kernel
    option) for source media lookup, to accommodate FAT32 limitations on
    that matter (since FAT limits labels to 11 uppercase characters, and ISO volumes can and usually do use labels with much longer names).

    Apart from this, everything else is a binary identical copy of the ISO content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux bootloaders, which can't come from the ISO but which we produce from
    vanilla official releases, and rely on the distro not to have deviated
    too much in terms of patches from vanilla GRUB/Syslinux. However, if
    such deviation occurs, you usually get an early boot error that is easy
    to diagnose, and we also have provision, through the bootloader download facility of Rufus, to produce GRUB/Syslinux bootloaders that include
    specific fixes, such as the ones required for BootHole, since GRUB has
    yet to produce a mainline release that includes those.

    So I have to be adamant that if the media doesn't boot, especially in
    UEFI mode, then it's not a matter of Rufus introducing "its own recipe
    of loaders and configuration" but rather a problem of distro maintainers
    not having properly tested UEFI/FAT32 boot mode by extracting the ISO
    content onto a FAT32 partition, and trying to boot said media. And I am pretty positive that you will find that the users who reported issues
    after creating their media through Rufus, will report the exact same
    issues if creating the media themselves without using a third party
    utility.

    Which brings me nicely to the point that the current Debian Bullseye
    test images have broken said mode of operation (UEFI install from ISO
    content extracted on FAT32) early in December, which is causing problems
    for people trying to install Debian on Pi 4 for instance ([1] but my
    testing shows that this applies to more than arm64. And yes, I've been meaning to file a bug for this, but I haven't had a chance to do that yet).

    So le me reiterate this plea:

    PLEASE, PLEASE, PLEASE, do not treat ISOHybrid as an excuse to ignore
    non DD mode of installation, because, when you look at it objectively,
    you should find that DD is *NOT* a panacea (for instance, DD mode is completely useless for installation of vanilla Bullseye on a Pi 4,
    whereas FAT32 extraction, *when* not broken, gives you the same
    experience as if you were installing Debian on a UEFI x86 PC) and users
    do and will rely on a non DD mode of creating their install media.

    If you actively expect that everybody should use DD-mode only when
    creating a bootable media from an ISOHybrid, you *WILL* diminish the
    user experience.

    I understand that manual selection of this mode has been removed in
    favor of automatic detection of dd candidates:
       https://github.com/pbatard/rufus/issues/1148#issuecomment-395562137

    I'm afraid Thomas has been interpreting the item to which this pertains wrong.

    Rufus used to have a separate entries in one of it's UI dropdown for the
    type of image the user wanted to select. One of these entries was for
    "ISO Image", which would trigger a default filter of "*.iso" when
    selecting an image, and another entry was for "DD image", which would
    set a default filter of "*.img, *.disk, *.vhd, ...".

    But considering that, behind the scenes Rufus was ultimately performing
    its own detection of the properties of an image, and that there was no
    real difference between these 2 options if you applied a filter of
    "*.*", it of course made sense to consolidate the 2 dropdown elements
    into a single "Disk or ISO Image".

    However, this threw of people who were used to seeing a separate option
    for "DD image" and led them to think that this option had been removed altogether.

    So I'm afraid that Thomas' interpretation is incorrect. Automatic
    detection was always being enacted, and the only thing the DD or ISO
    "mode" did was apply a different filter for the file selection dialog.

    I don't use Rufus myself but it is my answer to users of MS-Windows when >>> they ask what to do with an ISO that is bootable from USB-stick.

    As Lou pointed out from a previous e-mail I sent (and as the plea above should make clear) I see the matter very differently, on account of the feedback I receive from Windows users, as well as what I am seeing on
    social media, with Windows users really being thrown off by not being
    able to "see" the full content that has been copied to their USB.

    For instance, I can literally point to reddit post after reddit post
    where a Windows user is utterly confused after they created a media in
    DD mode, by the fact that Windows only mounts the ESP and that there
    only seems to be a couple files there. Most of these users end up
    believing that their media was improperly created and do not try to boot
    it at all.

    This is why I made the decision to promote ISO/File copy over DD copy in Rufus for ISO Hybrid.

    I will however point out that, when doing so, Rufus produces the
    following *explicit* warning (which appears every single time a user
    creates media from an ISOHybrid):

    ----------------------------------------------------------------------- ISOHybrid image detected

    The image you have selected is an 'ISOHybrid' image. This means it can
    be written either in ISO (file copy) mode or DD (disk image) mode.
    Rufus recommends using ISO mode, so that you always have full access to
    the drive after writing it.
    However, if you encounter issues during boot, you can try writing this
    image again in DD mode.

    Please select the mode that you want to use to write this image:
    o Write in ISO mode (Recommended)"
    o Write in DD mode -----------------------------------------------------------------------

    In other words, Rufus prominently advises users to try recreating the
    media in DD mode if they think they encountered an issue in DD mode.

    As such, I can't see myself agreeing with proponents of "If you use
    Rufus, only use DD" as we are literally doing everything we can to help users, and I will maintain that most of the responsibility of ensuring
    that ISO mode works is with the distro maintainers, since, once again,
    all Rufus does (apart from changing the label in config files, *IF* necessary) is perform a 1:1 copy of all the ISO content onto a FAT32 media.

    Moreover, since this mode of operation is very convenient, on account
    that it really doesn't even require the user to use a third party
    application (including Rufus, but also including a dd imager) and is
    cross platform, I can't help be feel dismayed at seeing the apparent
    trend that some distro maintainers appear to have of disregarding simple
    ISO extraction on FAT32 media for UEFI boot, on account that "users
    should just use DD anyway".

    From where I stand, doing so only leads to a worse overall experience
    for users trying to install your distro.

    So I hope we can all agree that there is a place for both DD and
    ISO/file copy mode, and that the promotion of one should not relegate
    the other to a feature that is no longer being properly tested and left
    to wither (as we can see with the >1 month breakage of UEFI-FAT32 installation from Bullseye testing netinstall ISOs).

    Regards,

    /Pete

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lou Poppler@21:1/5 to Pete Batard on Sun Jan 10 23:30:01 2021
    On Sun, 2021-01-10 at 20:19 +0000, Pete Batard wrote:

    The goal of Rufus is to create a bootable USB with content that is as
    close as possible to the ISO content *AND* is bootable as USB media, period.

    As such, when booting in UEFI mode, the *only* element that Rufus may
    modify are the labels used in the GRUB/Syslinux config files (kernel
    option) for source media lookup, to accommodate FAT32 limitations on
    that matter (since FAT limits labels to 11 uppercase characters, and ISO volumes can and usually do use labels with much longer names).

    Apart from this, everything else is a binary identical copy of the ISO content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux bootloaders, which can't come from the ISO but which we produce from
    vanilla official releases,
    [...]
    Let me emphasize that the unmodified debian installer images, when copied to a USB stick via (unix) dd or cp, boot just fine in both UEFI mode and BIOS mode. They also work just fine when copied unmodified to a CD or DVD.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Lou Poppler on Mon Jan 11 01:00:02 2021
    On 2021.01.10 22:23, Lou Poppler wrote:
    On Sun, 2021-01-10 at 20:19 +0000, Pete Batard wrote:

    The goal of Rufus is to create a bootable USB with content that is as
    close as possible to the ISO content *AND* is bootable as USB media, period. >>
    As such, when booting in UEFI mode, the *only* element that Rufus may
    modify are the labels used in the GRUB/Syslinux config files (kernel
    option) for source media lookup, to accommodate FAT32 limitations on
    that matter (since FAT limits labels to 11 uppercase characters, and ISO
    volumes can and usually do use labels with much longer names).

    Apart from this, everything else is a binary identical copy of the ISO
    content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux
    bootloaders, which can't come from the ISO but which we produce from
    vanilla official releases,
    [...]
    Let me emphasize that the unmodified debian installer images, when copied to a
    USB stick via (unix) dd or cp, boot just fine in both UEFI mode and BIOS mode.
    They also work just fine when copied unmodified to a CD or DVD.


    I'm afraid I have to disagree with this, from direct empirical evidence.

    This is a test I conducted a few moments ago, using the latest AMD64
    netinst testing image (dated 2021.01.09). I didn't use Rufus to create
    the bootable media but instead did it on Linux (up to date Armbian on an
    RK3399 platform) with the exact set of commands below:

    ---------------------------------------------------------------------

    root@nano:/mnt/ssd# wget https://cdimage.debian.org/cdimage/weekly-builds/amd64/iso-cd/debian-testing-amd64-netinst.iso
    root@nano:/mnt/ssd# mount -o loop debian-testing-amd64-netinst.iso /mnt/iso mount: /mnt/iso: WARNING: device write-protected, mounted read-only. root@nano:/mnt/ssd# dd if=/dev/zero of=/dev/sda bs=512 count=34
    34+0 records in
    34+0 records out
    17408 bytes (17 kB, 17 KiB) copied, 0.0113974 s, 1.5 MB/s
    root@nano:/mnt/ssd# dd if=/dev/zero of=/dev/sda bs=512 count=34 seek=$((`blockdev --getsz /dev/sda` - 34))
    34+0 records in
    34+0 records out
    17408 bytes (17 kB, 17 KiB) copied, 0.0144371 s, 1.2 MB/s
    root@nano:/mnt/ssd# gdisk /dev/sda
    GPT fdisk (gdisk) version 1.0.3

    Partition table scan:
    MBR: not present
    BSD: not present
    APM: not present
    GPT: not present

    Creating new GPT entries.

    Command (? for help): n
    Partition number (1-128, default 1): 1
    First sector (34-234441614, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-234441614, default = 234441614) or {+-}size{KMGTP}:
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 0700
    Changed type of partition to 'Microsoft basic data'

    Command (? for help): w

    Final checks complete. About to write GPT data. THIS WILL OVERWRITE
    EXISTING PARTITIONS!!

    Do you want to proceed? (Y/N): Y
    OK; writing new GUID partition table (GPT) to /dev/sda.
    The operation has completed successfully.
    root@nano:/mnt/ssd# mkfs.vfat /dev/sda1
    mkfs.fat 4.1 (2017-01-24)
    root@nano:/mnt/ssd# mount /dev/sda1 /mnt/hd
    root@nano:/mnt/ssd# rsync -av /mnt/iso/ /mnt/hd
    sending incremental file list
    rsync: symlink "/mnt/hd/debian" -> "." failed: Operation not permitted (1)
    ./
    README.html
    README.mirrors.html
    README.mirrors.txt
    README.source
    README.txt
    autorun.inf
    g2ldr
    g2ldr.mbr
    md5sum.txt
    setup.exe
    win32-loader.ini
    rsync: symlink "/mnt/hd/dists/testing" -> "bullseye" failed: Operation
    not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/basic-defs.html" ->
    "basic-defs.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/choosing.html" ->
    "choosing.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/compatibility.html" -> "compatibility.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/contributing.html" -> "contributing.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/customizing.html" ->
    "customizing.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/faqinfo.html" -> "faqinfo.en.html"
    failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/ftparchives.html" ->
    "ftparchives.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/getting-debian.html" -> "getting-debian.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/index.html" -> "index.en.html"
    failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/kernel.html" -> "kernel.en.html"
    failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/nextrelease.html" ->
    "nextrelease.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/pkg-basics.html" ->
    "pkg-basics.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/pkgtools.html" ->
    "pkgtools.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/redistributing.html" -> "redistributing.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/software.html" ->
    "software.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/support.html" -> "support.en.html"
    failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/doc/FAQ/html/uptodate.html" ->
    "uptodate.en.html" failed: Operation not permitted (1)
    rsync: symlink "/mnt/hd/firmware/firmware-linux-free_20200122-1_all.deb"
    "../pool/main/f/firmware-free/firmware-linux-free_20200122-1_all.deb"
    failed: Operation not permitted (1)
    .disk/
    .disk/base_components
    .disk/base_installable
    .disk/cd_type
    .disk/info
    .disk/mkisofs
    .disk/udeb_include
    EFI/
    EFI/boot/
    EFI/boot/bootx64.efi

    (...)

    pool/main/x/xauth/xauth_1.0.10-1_amd64.deb
    pool/main/x/xfsprogs/
    pool/main/x/xfsprogs/xfsprogs-udeb_5.6.0-1+b2_amd64.udeb pool/main/x/xfsprogs/xfsprogs_5.6.0-1+b2_amd64.deb pool/main/x/xkeyboard-config/ pool/main/x/xkeyboard-config/xkb-data_2.29-2_all.deb pool/main/x/xserver-xorg-input-libinput/ pool/main/x/xserver-xorg-input-libinput/xserver-xorg-input-libinput-udeb_0.30.0-1_amd64.udeb
    pool/main/x/xxhash/
    pool/main/x/xxhash/libxxhash0_0.8.0-1_amd64.deb
    pool/main/x/xz-utils/
    pool/main/x/xz-utils/liblzma5_5.2.5-1.0_amd64.deb pool/main/x/xz-utils/xz-utils_5.2.5-1.0_amd64.deb
    pool/main/z/
    pool/main/z/zlib/
    pool/main/z/zlib/zlib1g-udeb_1.2.11.dfsg-2_amd64.udeb pool/main/z/zlib/zlib1g_1.2.11.dfsg-2_amd64.deb
    tools/
    tools/loadlin.exe
    tools/loadlin.txt

    sent 434,994,400 bytes received 26,184 bytes 17,755,942.20 bytes/sec
    total size is 434,798,648 speedup is 1.00
    rsync error: some files/attrs were not transferred (see previous errors)
    (code 23) at main.c(1207) [sender=3.1.3]
    root@nano:/mnt/ssd# umount /mnt/hd
    root@nano:/mnt/ssd#

    ---------------------------------------------------------------------

    Then when booting the media on an intel NUC x86_64 PC (in UEFI mode) and
    after selecting the language, you *will* run into the following error:

    ---------------------------------------------------------------------

    [!!] Detect and mount installation media

    No device for installation media was detected.

    You may need to load additional drivers from removable media, such as
    a driver floppy or a USB stick. If you have these available now,
    insert the media, and continue. Otherwise, you will be given the
    option to manually select some modules.

    Load drivers from removable media?

    <Yes> <No>

    ---------------------------------------------------------------------

    Again, this is something I have been able to replicate using the latest,
    using all the steps highlighted above just a few minutes ago.


    Now, your report that you are not seeing this kind of issue (which we
    have additional confirmation of, at least for Raspberry Pi 4 Debian installation) made me dig a little further as to whether this issue is
    as universal as I initially was led to believe, or if there might be an environmental component to it. And after further testing, I have found
    that this seems to only affect UAS devices. For instance, I can validate
    that the following UAS device (Mushkin Ventura Ultra USB 3.0 120 GB)
    always produce the installation media detection issue:

    ---------------------------------------------------------------------

    root@nano:/mnt/ssd# dmesg
    (...)
    [549114.637578] usb 8-1: new SuperSpeed Gen 1 USB device number 19 using xhci-hcd
    [549114.658815] usb 8-1: New USB device found, idVendor=174c,
    idProduct=55aa, bcdDevice= 1.00
    [549114.658837] usb 8-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
    [549114.658852] usb 8-1: Product: Ventura Ultra
    [549114.658867] usb 8-1: Manufacturer: Mushkin
    [549114.658881] usb 8-1: SerialNumber: 000000000025
    [549114.666050] scsi host0: uas
    [549114.668168] scsi 0:0:0:0: Direct-Access Mushkin Ventura Ultra
    0 PQ: 0 ANSI: 6
    [549114.670930] sd 0:0:0:0: Attached scsi generic sg0 type 0
    [549145.389481] sd 0:0:0:0: tag#14 uas_eh_abort_handler 0 uas-tag 1
    inflight: CMD IN
    [549145.389487] sd 0:0:0:0: tag#14 CDB: opcode=0x12 12 01 00 00 40 00 [549145.409499] scsi host0: uas_eh_device_reset_handler start
    [549145.537655] usb 8-1: reset SuperSpeed Gen 1 USB device number 19
    using xhci-hcd
    [549145.559210] scsi host0: uas_eh_device_reset_handler success
    [549145.565782] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks:
    (120 GB/112 GiB)
    [549145.565871] sd 0:0:0:0: [sda] Write Protect is off
    [549145.565874] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
    [549145.566029] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
    enabled, doesn't support DPO or FUA
    [549145.566228] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes [549145.608066] sda: sda1 sda2 sda3
    [549145.610265] sd 0:0:0:0: [sda] Attached SCSI disk

    ---------------------------------------------------------------------

    However, when testing with another UAS USB device I have (a SanDisk
    Extreme 3.0 32 GB), the media detection script appears to behave as
    expected.

    So at least, this gives us a better idea of where the issue is likely to
    lie (most likely the current media detection scripts treat UAS USB
    devices differently from non UAS ones).

    But if you do get your hands on a UAS device, you should find that the statement that "unmodified debian installer images, when copied to a USB
    stick via (unix) dd or cp, boot just fine in UEFI mode" is not entirely accurate...

    Regards,

    /Pete

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to All on Mon Jan 11 09:00:02 2021
    Hi,

    the advantages of putting an unmodified ISO image plainly onto a USB are:
    - The boot and installation process is as near to DVD as possible.
    - If anything goes wrong during that process, it is clear that debian-cd
    is in charge of diagnosing and hopefully managing the effort to provide
    a correction.

    Nevertheless, the goals of Pete are valid too:
    - A USB stick with large FAT partition is what many users expect.
    - The (unspecified by UEFI) way of copying EFI boot equipment and data
    payload into a FAT filesystem seems to be indeed the way how experienced
    users of MS-Windows prepare a bootable USB stick.
    - Copying from filesystem to filesystem is at least one order of magnitude
    less prone to fatal mishaps than is copying onto a device.

    Both approaches are combinable:
    - Have all EFI equipment as directory tree in the ISO filesystem. I.e.
    not only as image file or as appended partition.
    - Make sure that the installation works without name conflicts from a
    filesystem with sloppy naming rules. I.e. from FAT.

    And to promote my own song:

    Debian ISOs should strive for a specs compliant partition table with as
    few borderline hacks as possible.

    It would be fully compliant if bearing a MBR partition table with disjoint
    ISO and EFI partitions. But during the Ubuntu ISO reform there were
    problems with new Lenovos which booted only with GPT
    https://bugs.launchpad.net/ubuntu-cdimage/+bug/1886148
    and with old HPs which are well known to boot only if some MBR partition
    bears the boot flag
    https://bugs.launchpad.net/ubuntu-cdimage/+bug/1899308

    The Lenovo case is probably not fully explored, because it seems that
    the same machines boot from our current abominable MBR-with-invalid-GPT
    layout. The HP case needed a small hack by adding an MBR partition of
    type 0x00 and size 1 which bears the boot flag.
    I am not aware of failure reports with the Ubuntu 20.10 ISOs which could
    be blamed on their partition layout.


    Have a nice day :)

    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Thomas Schmitt on Mon Jan 11 13:00:02 2021
    Hi Thomas,

    On 2021.01.11 07:53, Thomas Schmitt wrote:
    Hi,

    the advantages of putting an unmodified ISO image plainly onto a USB are:
    - The boot and installation process is as near to DVD as possible.
    - If anything goes wrong during that process, it is clear that debian-cd
    is in charge of diagnosing and hopefully managing the effort to provide
    a correction.

    Nevertheless, the goals of Pete are valid too:
    - A USB stick with large FAT partition is what many users expect.
    - The (unspecified by UEFI) way of copying EFI boot equipment and data
    payload into a FAT filesystem seems to be indeed the way how experienced
    users of MS-Windows prepare a bootable USB stick.
    - Copying from filesystem to filesystem is at least one order of magnitude
    less prone to fatal mishaps than is copying onto a device.

    Both approaches are combinable:

    Yes, as we've discussed elsewhere, that is pretty much my point. Though
    I'll let you speak for the finer aspects of ISOHybrid, I don't see any
    major technical issue with ensuring that an ISO media works at both the
    ISO and FAT file system level.

    For instance I will point out to the ArchLinux ISOs ensuring that they
    use a label like "ARCH_202010" which can be applied for both FAT (11
    chars max, uppercase) and ISO, and makes installation media lookup by
    label also work when extracting content onto FAT32.

    And whereas symlinks are fine (when pointing to something like a doc
    directory, or some other non critical part), one needs to be mindful
    that they will of course not translate to FAT, and therefore should not
    be used for mandatory installation matters.

    Finally, of course, installation scripts and bootloaders should include
    the necessary components to deal with both ISO9660 and FAT at the file
    system level.

    - Have all EFI equipment as directory tree in the ISO filesystem. I.e.
    not only as image file or as appended partition.
    - Make sure that the installation works without name conflicts from a
    filesystem with sloppy naming rules. I.e. from FAT.

    And to promote my own song:

    Debian ISOs should strive for a specs compliant partition table with as
    few borderline hacks as possible.

    It would be fully compliant if bearing a MBR partition table with disjoint ISO and EFI partitions. But during the Ubuntu ISO reform there were
    problems with new Lenovos which booted only with GPT
    https://bugs.launchpad.net/ubuntu-cdimage/+bug/1886148
    and with old HPs which are well known to boot only if some MBR partition bears the boot flag
    https://bugs.launchpad.net/ubuntu-cdimage/+bug/1899308

    The Lenovo case is probably not fully explored, because it seems that
    the same machines boot from our current abominable MBR-with-invalid-GPT layout. The HP case needed a small hack by adding an MBR partition of
    type 0x00 and size 1 which bears the boot flag.
    I am not aware of failure reports with the Ubuntu 20.10 ISOs which could
    be blamed on their partition layout.

    From my testing, Ubuntu 20.10 ISOs work fine when extracted to FAT32, especially as they are not relying on locating the installation media by
    label.

    Per [1] (to which you participated and where we also discussed some of
    these matters) the prerelease version happened to break file extraction support, but the Ubuntu maintainers were fairly proactive in ensuring
    that this mode of creating media got fixed and was fully working for the release. Which is why I am expecting Debian maintainers to also
    recognize that ISO file extraction is legitimate method of creating installation media, that they want to (continue to) support.

    Regards,

    /Pete

    [1] https://bugs.launchpad.net/ubuntu/+source/casper/+bug/1895131

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to Pete Batard on Mon Jan 11 14:20:01 2021
    Hi,

    Pete Batard wrote:
    Yes, as we've discussed elsewhere, that is pretty much my point.

    That's why i summarized the results of our wiggling and fitting with
    Ubuntu ISO development.


    symlinks [...] will of course not translate to FAT [...]

    Duh. I forgot that aspect in my summary.
    So its proposal part should be: ------------------------------------------------------------------------
    Both approaches are combinable:
    - Have all EFI equipment as directory tree in the ISO filesystem. I.e.
    not only as image file or as appended partition.
    - Make sure that the installation works without name conflicts from a
    filesystem with sloppy naming rules and without symbolic links.
    I.e. from FAT. ------------------------------------------------------------------------

    As Pete pointed out in the Ubuntu discussions, name length is not
    restricted to 8.3. Nevertheless very long package names can cause truncation which might become a problem if two names get truncated to the same text,
    or if truncation implies mangling to avoid such collisions.


    Have a nice day :)

    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Pete Batard on Tue Jan 12 13:00:01 2021
    Hey Pete,

    HNY etc. Thanks for joining the discussion! :-)

    On Sun, Jan 10, 2021 at 08:19:15PM +0000, Pete Batard wrote:
    On 2021.01.10 18:56, Lou Poppler wrote:
    On Sun, 2021-01-10 at 18:13 +0100, Thomas Schmitt wrote:
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,
    un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    For people who seem to be under the impression that "(Rufus) will replace >parts of the debian image with its own recipe of loaders and configurations", >I have to vehemently dispute that it is doing any such thing.

    The goal of Rufus is to create a bootable USB with content that is as close >as possible to the ISO content *AND* is bootable as USB media, period.

    As such, when booting in UEFI mode, the *only* element that Rufus may modify >are the labels used in the GRUB/Syslinux config files (kernel option) for >source media lookup, to accommodate FAT32 limitations on that matter (since >FAT limits labels to 11 uppercase characters, and ISO volumes can and usually >do use labels with much longer names).

    Thanks for clarifying that.

    Apart from this, everything else is a binary identical copy of the ISO >content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux >bootloaders, which can't come from the ISO but which we produce from vanilla >official releases, and rely on the distro not to have deviated too much in >terms of patches from vanilla GRUB/Syslinux. However, if such deviation >occurs, you usually get an early boot error that is easy to diagnose, and we >also have provision, through the bootloader download facility of Rufus, to >produce GRUB/Syslinux bootloaders that include specific fixes, such as the >ones required for BootHole, since GRUB has yet to produce a mainline release >that includes those.

    So I have to be adamant that if the media doesn't boot, especially in UEFI >mode, then it's not a matter of Rufus introducing "its own recipe of loaders >and configuration" but rather a problem of distro maintainers not having >properly tested UEFI/FAT32 boot mode by extracting the ISO content onto a >FAT32 partition, and trying to boot said media. And I am pretty positive that >you will find that the users who reported issues after creating their media >through Rufus, will report the exact same issues if creating the media >themselves without using a third party utility.

    Which brings me nicely to the point that the current Debian Bullseye test >images have broken said mode of operation (UEFI install from ISO content >extracted on FAT32) early in December, which is causing problems for people >trying to install Debian on Pi 4 for instance ([1] but my testing shows that >this applies to more than arm64. And yes, I've been meaning to file a bug for >this, but I haven't had a chance to do that yet).

    Argh. Thanks for raising this now, at least. I certainly haven't
    consciously made any changes to debian-cd that would cause this, so
    I'm a little surprised to hear about it. I'll take a look in the d-i
    code...

    So le me reiterate this plea:

    PLEASE, PLEASE, PLEASE, do not treat ISOHybrid as an excuse to ignore non DD >mode of installation, because, when you look at it objectively, you should >find that DD is *NOT* a panacea (for instance, DD mode is completely useless >for installation of vanilla Bullseye on a Pi 4, whereas FAT32 extraction, >*when* not broken, gives you the same experience as if you were installing >Debian on a UEFI x86 PC) and users do and will rely on a non DD mode of >creating their install media.

    Hmmm. What exactly is the problem with the Pi 4, out of curiosity?

    ...

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com "You can't barbecue lettuce!" -- Ellie Crane

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Steve McIntyre on Tue Jan 12 14:00:01 2021
    Hi Steve, Happy New Year to you too!

    On 2021.01.12 11:56, Steve McIntyre wrote:
    Hey Pete,

    HNY etc. Thanks for joining the discussion! :-)

    On Sun, Jan 10, 2021 at 08:19:15PM +0000, Pete Batard wrote:
    On 2021.01.10 18:56, Lou Poppler wrote:
    On Sun, 2021-01-10 at 18:13 +0100, Thomas Schmitt wrote:
    Hi,

    Lou Poppler wrote:
    If you want to recommend rufus, please do so ONLY with a prominent,
    un-ignoreable warning explaining that the user MUST select rufus'
    "DD mode" at the prompt immediately before writing the media.

    For people who seem to be under the impression that "(Rufus) will replace
    parts of the debian image with its own recipe of loaders and configurations",
    I have to vehemently dispute that it is doing any such thing.

    The goal of Rufus is to create a bootable USB with content that is as close >> as possible to the ISO content *AND* is bootable as USB media, period.

    As such, when booting in UEFI mode, the *only* element that Rufus may modify >> are the labels used in the GRUB/Syslinux config files (kernel option) for
    source media lookup, to accommodate FAT32 limitations on that matter (since >> FAT limits labels to 11 uppercase characters, and ISO volumes can and usually
    do use labels with much longer names).

    Thanks for clarifying that.

    Apart from this, everything else is a binary identical copy of the ISO
    content, which you can easily validate if needed.

    Then, for BIOS mode, we of course need to install GRUB or Syslinux
    bootloaders, which can't come from the ISO but which we produce from vanilla >> official releases, and rely on the distro not to have deviated too much in >> terms of patches from vanilla GRUB/Syslinux. However, if such deviation
    occurs, you usually get an early boot error that is easy to diagnose, and we >> also have provision, through the bootloader download facility of Rufus, to >> produce GRUB/Syslinux bootloaders that include specific fixes, such as the >> ones required for BootHole, since GRUB has yet to produce a mainline release >> that includes those.

    So I have to be adamant that if the media doesn't boot, especially in UEFI >> mode, then it's not a matter of Rufus introducing "its own recipe of loaders >> and configuration" but rather a problem of distro maintainers not having
    properly tested UEFI/FAT32 boot mode by extracting the ISO content onto a
    FAT32 partition, and trying to boot said media. And I am pretty positive that
    you will find that the users who reported issues after creating their media >> through Rufus, will report the exact same issues if creating the media
    themselves without using a third party utility.

    Which brings me nicely to the point that the current Debian Bullseye test
    images have broken said mode of operation (UEFI install from ISO content
    extracted on FAT32) early in December, which is causing problems for people >> trying to install Debian on Pi 4 for instance ([1] but my testing shows that >> this applies to more than arm64. And yes, I've been meaning to file a bug for
    this, but I haven't had a chance to do that yet).

    Argh. Thanks for raising this now, at least. I certainly haven't
    consciously made any changes to debian-cd that would cause this, so
    I'm a little surprised to hear about it. I'll take a look in the d-i
    code...

    Further testing (which I also mentioned in this thread) seems to
    indicate that this only seems to apply for UAS media, so it's possible
    that it wasn't a recent change, but that install media detection has not
    been compatible with UAS devices for some time, which we only started to
    pick it up on account that some of us have been testing Pi 4 Debian installation with UAS.

    I'm still planning to look more closely into this when I get a chance,
    and create a new bug (unless someone beats me to it), but if you have a
    UAS device lying around, you should be able to replicate the issue with
    the current Bullseye installation ISOs, including amd64 ones, as I
    confirmed that the problem was (still) present in the latest netinst
    testing amd64 ISOs.

    FYI, the USB subsystem should tell you if a device is UAS with something
    like this (from dmesg):

    [549114.637578] usb 8-1: new SuperSpeed Gen 1 USB device number 19 using xhci-hcd
    [549114.658815] usb 8-1: New USB device found, idVendor=174c,
    idProduct=55aa, bcdDevice= 1.00
    [549114.658837] usb 8-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
    [549114.658852] usb 8-1: Product: Ventura Ultra
    [549114.658867] usb 8-1: Manufacturer: Mushkin
    [549114.658881] usb 8-1: SerialNumber: 000000000025
    [549114.666050] scsi host0: uas
    [549114.668168] scsi 0:0:0:0: Direct-Access Mushkin Ventura Ultra
    0 PQ: 0 ANSI: 6

    So le me reiterate this plea:

    PLEASE, PLEASE, PLEASE, do not treat ISOHybrid as an excuse to ignore non DD >> mode of installation, because, when you look at it objectively, you should >> find that DD is *NOT* a panacea (for instance, DD mode is completely useless >> for installation of vanilla Bullseye on a Pi 4, whereas FAT32 extraction,
    *when* not broken, gives you the same experience as if you were installing >> Debian on a UEFI x86 PC) and users do and will rely on a non DD mode of
    creating their install media.

    Hmmm. What exactly is the problem with the Pi 4, out of curiosity?

    The problem with the Pi 4 (as with all Pi's) is that it needs to load a
    set of binary files, from SD or USB media, before it can boot anything,
    and we also need to load the UEFI firmware from SD or USB.

    Now the nice thing, that was introduced a few months ago on the Pi 4 is
    that you can load all these files from an ESP, with the caveat that the
    ESP has to be at the beginning of your media (which means for instance
    that even if adding files onto it wasn't an issue, the partition layout
    used by the current ISOHybrid when copied in DD mode would still make
    that media unbootable on a Pi 4).

    This logically leads to the idea that, if you are okay with sacrificing
    a bit of space for the ESP, you can place all of these Raspberry Pi
    specific boot files on it, along with the Debian installation content
    extracted from a netinst or mini ISO (we advise netinst as it makes it
    faster to get to a minimal serviceable install than mini for people with
    slow connection, and because we don't see the extra space needed as that
    big of an issue) and once you have that, you can boot and go through a
    full default installation of Debian and end up with a fully working system.

    And what makes it even better is that you don't even need to provision
    two medias for this (install media + target), as the same media can transparently act as both the installer and target.

    Considering that the Pi has no "internal" disk or flash to install a
    distro to, and that one must use either an SD card or USB drive, it does
    make a lot of sense in my opinion not to require users to juggle with
    multiple media, especially as, and this is one of the main pain points
    we are trying to avoid through this method, using two media would force
    users to go through the shell during the install process to ensure that
    they copy all the Pi boot files and UEFI firmware from the install media
    to the target before they reboot, as, again, a Pi will not boot any
    media where these extra files aren't present.

    But by reusing the ESP, where these files have already been copied, no
    extra step is necessary.

    Furthermore, if you simply go with the defaults during Debian
    installation, the disk partitioner will recognize the ESP as reusable
    and set it as the ESP to use for the new system, and therefore when GRUB installs for the final system, it simply replaces the one that was used
    for booting the installer, which ensures that, once the user reboot,
    they get into their newly installed system.

    In other words, when everything works properly, installing Debian
    through this method is virtually the same as installing Debian on an x86
    PC, with no need for extra caveats or having users perform additional configuartion.

    The only slightly problematic point is the creation of the
    bootable/target media, but even that is not that difficult, as it can be summarized in:

    - Create a GPT/ESP that's large enough in size and format it to FAT32.
    - Copy all the necessary Raspberry Pi boot and UEFI firmware files onto it.
    - Extract all the content from the Debian netinst/mini ISO onto the ESP.

    But of course, this relies on the Debian installation process to be able
    to handle source content being located on a FAT32 drive, and having been extracted from the ISO through file copy, i.e. on the Debian installer
    being able to properly locate the installation content from USB media
    that wasn't created through dd.

    And once again, I have to reiterate that, from my experience as the
    purveyor of software that people may use to install Debian, that
    primarily relies on this mode of installation, Debian has always done a
    very good job with handling FAT32 (for instance, Debian is not over
    relying on labels to identify the source media, but instead on a lookup
    that checks for the presence of specific files), even as I know this
    requires extra efforts from the maintainers, so I am fairly confident
    that this is probably just something that we failed to notice
    previously, on account that it is thankfully not as widespread an issue
    due to an environmental component (only seems to affect USB drives with
    UAS support), and that can hopefully be fixed without incurring too much effort.

    Oh, and in case other people are looking at this, I'm going to bring up
    that we recently found what appears to be a more straightforward
    regression this time, with broken support for the NIC that the Pi 4 uses (details at [1]) which of course makes networked installation very
    problematic. But that's a different matter (which I'm also planning to
    look more closely into when I get a chance).

    Regards,

    /Pete

    [1] https://www.raspberrypi.org/forums/viewtopic.php?f=50&t=282839&sid=757bdd11714483ca73fea35af8bb9b64&start=50#p1791942

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Pete Batard on Wed Jan 13 20:00:02 2021
    On Tue, Jan 12, 2021 at 12:53:21PM +0000, Pete Batard wrote:
    On 2021.01.12 11:56, Steve McIntyre wrote:
    On Sun, Jan 10, 2021 at 08:19:15PM +0000, Pete Batard wrote:

    ...

    Which brings me nicely to the point that the current Debian Bullseye test >> > images have broken said mode of operation (UEFI install from ISO content >> > extracted on FAT32) early in December, which is causing problems for people
    trying to install Debian on Pi 4 for instance ([1] but my testing shows that
    this applies to more than arm64. And yes, I've been meaning to file a bug for
    this, but I haven't had a chance to do that yet).

    Argh. Thanks for raising this now, at least. I certainly haven't
    consciously made any changes to debian-cd that would cause this, so
    I'm a little surprised to hear about it. I'll take a look in the d-i
    code...

    Further testing (which I also mentioned in this thread) seems to indicate >that this only seems to apply for UAS media, so it's possible that it wasn't >a recent change, but that install media detection has not been compatible >with UAS devices for some time, which we only started to pick it up on >account that some of us have been testing Pi 4 Debian installation with UAS.

    Ahhh. That sounds like a very relevant thing, yes!

    I've never seen a UAS device here yet, let alone tested with one. :-)
    So it's not quite such a surprise that there might be problems there.

    I'm still planning to look more closely into this when I get a chance, and >create a new bug (unless someone beats me to it), but if you have a UAS >device lying around, you should be able to replicate the issue with the >current Bullseye installation ISOs, including amd64 ones, as I confirmed that >the problem was (still) present in the latest netinst testing amd64 ISOs.

    FYI, the USB subsystem should tell you if a device is UAS with something like >this (from dmesg):

    [549114.637578] usb 8-1: new SuperSpeed Gen 1 USB device number 19 using >xhci-hcd
    [549114.658815] usb 8-1: New USB device found, idVendor=174c, idProduct=55aa, >bcdDevice= 1.00
    [549114.658837] usb 8-1: New USB device strings: Mfr=2, Product=3, >SerialNumber=1
    [549114.658852] usb 8-1: Product: Ventura Ultra
    [549114.658867] usb 8-1: Manufacturer: Mushkin
    [549114.658881] usb 8-1: SerialNumber: 000000000025
    [549114.666050] scsi host0: uas
    [549114.668168] scsi 0:0:0:0: Direct-Access Mushkin Ventura Ultra 0
    PQ: 0 ANSI: 6

    ACK. I'm just looking for one to buy right now so I can test with
    it. I can't see anybody selling the Mushkin drive you show here, which
    is not helpful. Silly question - do you have any suggestions for a
    make/model to look for at all please? Google searches are basucally
    useless here for finding that level of detail on USB flash drives. :-(

    ...

    Hmmm. What exactly is the problem with the Pi 4, out of curiosity?

    The problem with the Pi 4 (as with all Pi's) is that it needs to load a set >of binary files, from SD or USB media, before it can boot anything, and we >also need to load the UEFI firmware from SD or USB.

    Now the nice thing, that was introduced a few months ago on the Pi 4 is that >you can load all these files from an ESP, with the caveat that the ESP has to >be at the beginning of your media (which means for instance that even if >adding files onto it wasn't an issue, the partition layout used by the >current ISOHybrid when copied in DD mode would still make that media >unbootable on a Pi 4).

    Sigh, OK. Firmware that doesn't deal flexibly with partitioning,
    i.e. by reading/parsing the partition table properly. I thought we'd
    be past that by now. :-(

    Is the firmware assuming a specific offset for the beginning of the
    ESP? Or will it deal with GPT, or is this brokenly expecting just a
    DOS partition table?

    This logically leads to the idea that, if you are okay with sacrificing a bit >of space for the ESP, you can place all of these Raspberry Pi specific boot >files on it, along with the Debian installation content extracted from a >netinst or mini ISO (we advise netinst as it makes it faster to get to a >minimal serviceable install than mini for people with slow connection, and >because we don't see the extra space needed as that big of an issue) and once >you have that, you can boot and go through a full default installation of >Debian and end up with a fully working system.

    ACK, OK. Given the platform limitation you've just described, that
    makes sense.

    And what makes it even better is that you don't even need to provision two >medias for this (install media + target), as the same media can transparently >act as both the installer and target.

    Considering that the Pi has no "internal" disk or flash to install a distro >to, and that one must use either an SD card or USB drive, it does make a lot >of sense in my opinion not to require users to juggle with multiple media, >especially as, and this is one of the main pain points we are trying to avoid >through this method, using two media would force users to go through the >shell during the install process to ensure that they copy all the Pi boot >files and UEFI firmware from the install media to the target before they >reboot, as, again, a Pi will not boot any media where these extra files >aren't present.

    But by reusing the ESP, where these files have already been copied, no extra >step is necessary.

    Furthermore, if you simply go with the defaults during Debian installation, >the disk partitioner will recognize the ESP as reusable and set it as the ESP >to use for the new system, and therefore when GRUB installs for the final >system, it simply replaces the one that was used for booting the installer, >which ensures that, once the user reboot, they get into their newly installed >system.

    Right.

    <more useful stuff elided - thanks!>

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com Who needs computer imagery when you've got Brian Blessed?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Steve McIntyre on Wed Jan 13 21:20:01 2021
    On 2021.01.13 18:49, Steve McIntyre wrote:
    I've never seen a UAS device here yet, let alone tested with one. :-)

    They've existed for quite a few years.

    I think currently have about 4 of those in my arsenal, with the first
    one purchased more than 6 or 7 years ago.

    So it's not quite such a surprise that there might be problems there.

    I'm still planning to look more closely into this when I get a chance, and >> create a new bug (unless someone beats me to it), but if you have a UAS
    device lying around, you should be able to replicate the issue with the
    current Bullseye installation ISOs, including amd64 ones, as I confirmed that
    the problem was (still) present in the latest netinst testing amd64 ISOs.

    FYI, the USB subsystem should tell you if a device is UAS with something like
    this (from dmesg):

    [549114.637578] usb 8-1: new SuperSpeed Gen 1 USB device number 19 using
    xhci-hcd
    [549114.658815] usb 8-1: New USB device found, idVendor=174c, idProduct=55aa,
    bcdDevice= 1.00
    [549114.658837] usb 8-1: New USB device strings: Mfr=2, Product=3,
    SerialNumber=1
    [549114.658852] usb 8-1: Product: Ventura Ultra
    [549114.658867] usb 8-1: Manufacturer: Mushkin
    [549114.658881] usb 8-1: SerialNumber: 000000000025
    [549114.666050] scsi host0: uas
    [549114.668168] scsi 0:0:0:0: Direct-Access Mushkin Ventura Ultra 0
    PQ: 0 ANSI: 6

    ACK. I'm just looking for one to buy right now so I can test with
    it. I can't see anybody selling the Mushkin drive you show here, which
    is not helpful.

    Yeah, that Mushkin device is definitely something I've had for more than
    5 years, and that I don't expect to be sold any longer. And most regular
    flash drives would not be UAS.

    Silly question - do you have any suggestions for a
    make/model to look for at all please? Google searches are basucally
    useless here for finding that level of detail on USB flash drives. :-(

    OK. One thing you may want to check first, if you have any lying around,
    are USB <-> SATA or USB <-> NVMe adapters, because these frequently turn
    to be UAS.

    For instance, the following USB <-> SATA "enclosure", that I purchased
    more than 5 years ago, is UAS: https://archive.plugable.com/products/usb3-sata-uasp1/ (it even says so
    in the link).

    I don't think they are sold brand new any more, but you might be able to
    find one of those off e-bay.

    Or, for something more recent and perhaps more convenient to get, the
    following USB <-> NVMe enclosure is also UAS (at least for the "NVME -
    10Gbps" version, which is what I have):

    https://www.aliexpress.com/item/1005001742426847.html

    Obviously, these last two devices require an additional NVMe or SATA
    disk to be usable. But I'd say USB <-> NVMe adapters are likely to
    become more and more widespread especially as can solve the problems of
    using something a bit more reliable and faster (as well as much better
    with random I/O) than regular flash drives, even more so on platforms
    that have USB 3.x but no NVMe.

    Plus I can certainly see people wanting to use the "extract all the
    Debian installation files into an ESP" procedure on regular x86 UEFI
    PCs, using a USB SSD (especially now that USB speeds are starting to
    catch up with NVMe), in which case there's a good chance their
    installation media will be UAS...

    Sigh, OK. Firmware that doesn't deal flexibly with partitioning,
    i.e. by reading/parsing the partition table properly. I thought we'd
    be past that by now. :-(

    Three words: cheapest platform possible.

    That's what the Pi Foundation are pursuing, and thus, by transitive
    property, Broadcom, since that's who the Foundation chose as their
    supplier. As a result you're being met with tons of limitations or
    quirks (such as a poor/buggy PCIe DMA implementation of the SoC, limited
    mask ROM space that's likely to result in major trade-offs, and,
    recently in order to save another few more cents on the platform, the
    complete removal of the xHCI controller EEPROM that existed in the
    initial Pi 4 models, which means that, if you happen to reset xHCI, you
    must now take care of loading its firmware data back in RAM).

    My understanding is that SoC mask ROM is designed to look only at the
    first FAT partition to load its boot files, and that we can actually
    count ourselves lucky that the Pi 4 SoC can handle GPT as well as ESPs,
    as the mask ROM from the SoC on Pi 3 and earlier models could only
    handle MBR and partition types of 0xc/0xe (and not 0xef)...

    But of course, the counterpoint of that is that the price point of the
    Pi continues to make it one of the most popular platforms out there.

    Is the firmware assuming a specific offset for the beginning of the
    ESP?

    Not that I can tell. I've tested with different offsets and I'm also not
    aware of a specific value at which the first partition is expected to start.

    Or will it deal with GPT,

    It deals with a GPT, but it'll look no further than the first partition.

    I'm pretty sure the current code (which should mostly be part of the
    mask EEPROM of the SoC) does something like this:

    1. Find the offset of the first partition, be it either MBR or GPT.
    2. *Always assume* that it's FAT16/FAT32 and see if trying to load the
    platform files works.

    But, of course, all of this is closed source and coming from a chip manufacturer that seems very tight lipped about anything that pertains
    to their hardware. So it's hard to tell for sure...

    Regards,

    /Pete

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Thomas Schmitt@21:1/5 to Steve McIntyre on Thu Jan 14 17:00:02 2021
    Hi,

    Steve McIntyre wrote:
    [Dropping CC to Lou as we've wandered, re-adding Thomas for the GPT question.]

    [Lou and i are subscribed to debian-cd, obviously. :))
    It seems you dropped the original poster: The7up <the7up@gmail.com>
    who might indeed not be interested in partitioning.]


    For the
    sake of this kind of use-case, is it sensible when driving xorriso to
    tweak the created partition table to list the ESP as partition 1? At
    the moment we're just using "-append_partition 2 0xef
    /path/to/ESP.img", would just changing that to be partition 1 instead
    work?

    That would still work, but leave the ISO fileystem without a partition
    entry to mark it.

    The man page of xorrisofs says:

    partition_number may be 1 to 4. Number 1 will put the whole ISO
    image into the unclaimed space before partition 1.

    Minimalistic experiment:

    xorriso -as mkisofs -o test.iso /bin/ls -append_partition 1 0xef /bin/cp

    yields (with /bin/ls as ISO payload having ~ 120 KB and /bin/cp as
    appended payload having ~150 KB):

    $ sbin/fdisk -l test.iso
    ...
    Device Boot Start End Sectors Size Id Type
    test.iso1 364 659 296 148K ef EFI (FAT-12/16/32)

    --------------------------------------------------------------------------

    I could tweak libisofs so that the ISO filesystem can appear as partition 2
    but that would be unusual by partition 2 sitting before partition 1.

    On the other hand, there is urgent need for an ISO filesystem partition
    only if the reader cannot mount the base device but only its partitions.


    Have a nice day :)

    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Pete Batard on Thu Jan 14 16:30:02 2021
    [ Dropping CC to Lou as we've wandered, but re-adding Thomas for the
    GPT question. ]

    On Wed, Jan 13, 2021 at 08:16:39PM +0000, Pete Batard wrote:
    On 2021.01.13 18:49, Steve McIntyre wrote:
    I've never seen a UAS device here yet, let alone tested with one. :-)

    They've existed for quite a few years.

    I think currently have about 4 of those in my arsenal, with the first one >purchased more than 6 or 7 years ago.

    ACK.

    So it's not quite such a surprise that there might be problems there.

    I'm still planning to look more closely into this when I get a chance, and >> > create a new bug (unless someone beats me to it), but if you have a UAS
    device lying around, you should be able to replicate the issue with the
    current Bullseye installation ISOs, including amd64 ones, as I confirmed that
    the problem was (still) present in the latest netinst testing amd64 ISOs. >> >
    FYI, the USB subsystem should tell you if a device is UAS with something like
    this (from dmesg):

    [549114.637578] usb 8-1: new SuperSpeed Gen 1 USB device number 19 using >> > xhci-hcd
    [549114.658815] usb 8-1: New USB device found, idVendor=174c, idProduct=55aa,
    bcdDevice= 1.00
    [549114.658837] usb 8-1: New USB device strings: Mfr=2, Product=3,
    SerialNumber=1
    [549114.658852] usb 8-1: Product: Ventura Ultra
    [549114.658867] usb 8-1: Manufacturer: Mushkin
    [549114.658881] usb 8-1: SerialNumber: 000000000025
    [549114.666050] scsi host0: uas
    [549114.668168] scsi 0:0:0:0: Direct-Access Mushkin Ventura Ultra 0 >> > PQ: 0 ANSI: 6

    ACK. I'm just looking for one to buy right now so I can test with
    it. I can't see anybody selling the Mushkin drive you show here, which
    is not helpful.

    Yeah, that Mushkin device is definitely something I've had for more than 5 >years, and that I don't expect to be sold any longer. And most regular flash >drives would not be UAS.

    Yes, that's what I've found.

    Silly question - do you have any suggestions for a
    make/model to look for at all please? Google searches are basucally
    useless here for finding that level of detail on USB flash drives. :-(

    OK. One thing you may want to check first, if you have any lying around, are >USB <-> SATA or USB <-> NVMe adapters, because these frequently turn to be >UAS.

    For instance, the following USB <-> SATA "enclosure", that I purchased more >than 5 years ago, is UAS: >https://archive.plugable.com/products/usb3-sata-uasp1/ (it even says so in >the link).

    I don't think they are sold brand new any more, but you might be able to find >one of those off e-bay.

    Or, for something more recent and perhaps more convenient to get, the >following USB <-> NVMe enclosure is also UAS (at least for the "NVME - >10Gbps" version, which is what I have):

    https://www.aliexpress.com/item/1005001742426847.html

    Right. I've found and ordered a Startech USB3S2SAT3CB which looks
    useful. I've got a couple of small spare SSDs that I can use that
    with. I was hoping to find a source for reasonably-priced USB-UAS
    flash drives but the only one I can see off-hand is the "Corsair
    Voyager GTX", e.g. at

    https://www.scan.co.uk/products/128gb-corsair-flash-voyager-gtx-usb-31-gen-1-type-a-pendrive-black-460mb-s-read-460mb-s-write-33k-40

    Obviously, these last two devices require an additional NVMe or SATA disk to >be usable. But I'd say USB <-> NVMe adapters are likely to become more and >more widespread especially as can solve the problems of using something a bit >more reliable and faster (as well as much better with random I/O) than >regular flash drives, even more so on platforms that have USB 3.x but no >NVMe.

    Plus I can certainly see people wanting to use the "extract all the Debian >installation files into an ESP" procedure on regular x86 UEFI PCs, using a >USB SSD (especially now that USB speeds are starting to catch up with NVMe), >in which case there's a good chance their installation media will be UAS...

    Right. Now I know it's a problem, I can have a look.

    <pi 4>

    Sigh, OK. Firmware that doesn't deal flexibly with partitioning,
    i.e. by reading/parsing the partition table properly. I thought we'd
    be past that by now. :-(

    Three words: cheapest platform possible.

    That's what the Pi Foundation are pursuing, and thus, by transitive property, >Broadcom, since that's who the Foundation chose as their supplier. As a >result you're being met with tons of limitations or quirks (such as a >poor/buggy PCIe DMA implementation of the SoC, limited mask ROM space that's >likely to result in major trade-offs, and, recently in order to save another >few more cents on the platform, the complete removal of the xHCI controller >EEPROM that existed in the initial Pi 4 models, which means that, if you >happen to reset xHCI, you must now take care of loading its firmware data >back in RAM).

    My understanding is that SoC mask ROM is designed to look only at the first >FAT partition to load its boot files, and that we can actually count >ourselves lucky that the Pi 4 SoC can handle GPT as well as ESPs, as the mask >ROM from the SoC on Pi 3 and earlier models could only handle MBR and >partition types of 0xc/0xe (and not 0xef)...

    But of course, the counterpoint of that is that the price point of the Pi >continues to make it one of the most popular platforms out there.

    Nod, cheap always wins. :-(

    Is the firmware assuming a specific offset for the beginning of the
    ESP?

    Not that I can tell. I've tested with different offsets and I'm also not >aware of a specific value at which the first partition is expected to start.

    Or will it deal with GPT,

    It deals with a GPT, but it'll look no further than the first partition.

    I'm pretty sure the current code (which should mostly be part of the mask >EEPROM of the SoC) does something like this:

    1. Find the offset of the first partition, be it either MBR or GPT.
    2. *Always assume* that it's FAT16/FAT32 and see if trying to load the >platform files works.

    But, of course, all of this is closed source and coming from a chip >manufacturer that seems very tight lipped about anything that pertains to >their hardware. So it's hard to tell for sure...

    Oh, sure. You clearly have *some* experience here, hence the
    question. :-)

    @Thomas: This may seem like a silly question, I know, but... For the
    sake of this kind of use-case, is it sensible when driving xorriso to
    tweak the created partition table to list the ESP as partition 1? At
    the moment we're just using "-append_partition 2 0xef
    /path/to/ESP.img", would just changing that to be partition 1 instead
    work?

    As we're already starting to add more things (e.g. DTBs) into the
    media ESP, we could also add support for including (evil!! non-free!!)
    boot firmware etc. there too for platforms that need it.

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com "I suspect most samba developers are already technically insane... Of
    course, since many of them are Australians, you can't tell." -- Linus Torvalds

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Thomas Schmitt on Fri Jan 15 14:50:01 2021
    On Thu, Jan 14, 2021 at 04:59:08PM +0100, Thomas Schmitt wrote:
    Steve McIntyre wrote:
    [Dropping CC to Lou as we've wandered, re-adding Thomas for the GPT
    question.]

    [Lou and i are subscribed to debian-cd, obviously. :))
    It seems you dropped the original poster: The7up <the7up@gmail.com>
    who might indeed not be interested in partitioning.]

    That's what I've assumed...

    For the
    sake of this kind of use-case, is it sensible when driving xorriso to
    tweak the created partition table to list the ESP as partition 1? At
    the moment we're just using "-append_partition 2 0xef
    /path/to/ESP.img", would just changing that to be partition 1 instead
    work?

    That would still work, but leave the ISO fileystem without a partition
    entry to mark it.

    The man page of xorrisofs says:

    partition_number may be 1 to 4. Number 1 will put the whole ISO
    image into the unclaimed space before partition 1.

    Minimalistic experiment:

    xorriso -as mkisofs -o test.iso /bin/ls -append_partition 1 0xef /bin/cp

    yields (with /bin/ls as ISO payload having ~ 120 KB and /bin/cp as
    appended payload having ~150 KB):

    $ sbin/fdisk -l test.iso
    ...
    Device Boot Start End Sectors Size Id Type
    test.iso1 364 659 296 148K ef EFI (FAT-12/16/32)

    --------------------------------------------------------------------------

    I could tweak libisofs so that the ISO filesystem can appear as partition 2 >but that would be unusual by partition 2 sitting before partition 1.

    On the other hand, there is urgent need for an ISO filesystem partition
    only if the reader cannot mount the base device but only its partitions.

    Cool, thanks for that. In the cases we're looking at, I don't think
    that we need that partition then. I'll have a play with this and a few
    other things.

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com "I used to be the first kid on the block wanting a cranial implant,
    now I want to be the first with a cranial firewall. " -- Charlie Stross

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Steve McIntyre on Sun Jan 17 00:10:01 2021
    On Thu, Jan 14, 2021 at 03:19:09PM +0000, Steve McIntyre wrote:
    On Wed, Jan 13, 2021 at 08:16:39PM +0000, Pete Batard wrote:
    On 2021.01.13 18:49, Steve McIntyre wrote:
    I've never seen a UAS device here yet, let alone tested with one. :-)

    ...

    Right. I've found and ordered a Startech USB3S2SAT3CB which looks
    useful. I've got a couple of small spare SSDs that I can use that
    with. I was hoping to find a source for reasonably-priced USB-UAS
    flash drives but the only one I can see off-hand is the "Corsair
    Voyager GTX", e.g. at

    https://www.scan.co.uk/products/128gb-corsair-flash-voyager-gtx-usb-31-gen-1-type-a-pendrive-black-460mb-s-read-460mb-s-write-33k-40

    Obviously, these last two devices require an additional NVMe or SATA disk to >>be usable. But I'd say USB <-> NVMe adapters are likely to become more and >>more widespread especially as can solve the problems of using something a bit >>more reliable and faster (as well as much better with random I/O) than >>regular flash drives, even more so on platforms that have USB 3.x but no >>NVMe.

    Plus I can certainly see people wanting to use the "extract all the Debian >>installation files into an ESP" procedure on regular x86 UEFI PCs, using a >>USB SSD (especially now that USB speeds are starting to catch up with NVMe), >>in which case there's a good chance their installation media will be UAS...

    Right. Now I know it's a problem, I can have a look.

    OK, and I've sussed it. I splurged on that Voyager drive too, and
    tested with it. The problem we have is deep down in the way that Linux
    / udev describe UAS-attached drives. In d-i we look for CD/DVD media
    and then USB drives, and for the latter we look for "ID_BUS=usb" from
    "udevadm info". On UAS media instead we get "ID_BUS=ata" so they don't
    show up. This isn't a recent change, it's been like that way forever.

    I've just added extra fallback code in d-i now to check for "usb" in
    the "ID_PATH" string too, and I've just run an installation now using
    that build. All looks good here. The changes will be in the next daily
    build early tomorrow.

    Hilariously, it's not just d-i that doesn't deal with the UAS edge
    cases here. My test PC here would only recognise UAS media in BIOS
    mode (i.e. CSM enabled), not in UEFI mode. In my initial debugging
    here I ended up having to use two USB sticks - an older one to boot
    off and then remove, then the Voyager one to test detection code
    with. Firmware update needed! :-)

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com Is there anybody out there?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pete Batard@21:1/5 to Steve McIntyre on Sun Jan 17 01:30:02 2021
    On 2021.01.16 23:00, Steve McIntyre wrote:
    On Thu, Jan 14, 2021 at 03:19:09PM +0000, Steve McIntyre wrote:
    On Wed, Jan 13, 2021 at 08:16:39PM +0000, Pete Batard wrote:
    On 2021.01.13 18:49, Steve McIntyre wrote:
    I've never seen a UAS device here yet, let alone tested with one. :-)

    ...

    Right. I've found and ordered a Startech USB3S2SAT3CB which looks
    useful. I've got a couple of small spare SSDs that I can use that
    with. I was hoping to find a source for reasonably-priced USB-UAS
    flash drives but the only one I can see off-hand is the "Corsair
    Voyager GTX", e.g. at

    https://www.scan.co.uk/products/128gb-corsair-flash-voyager-gtx-usb-31-gen-1-type-a-pendrive-black-460mb-s-read-460mb-s-write-33k-40

    Obviously, these last two devices require an additional NVMe or SATA disk to
    be usable. But I'd say USB <-> NVMe adapters are likely to become more and >>> more widespread especially as can solve the problems of using something a bit
    more reliable and faster (as well as much better with random I/O) than
    regular flash drives, even more so on platforms that have USB 3.x but no >>> NVMe.

    Plus I can certainly see people wanting to use the "extract all the Debian >>> installation files into an ESP" procedure on regular x86 UEFI PCs, using a >>> USB SSD (especially now that USB speeds are starting to catch up with NVMe),
    in which case there's a good chance their installation media will be UAS... >>
    Right. Now I know it's a problem, I can have a look.

    OK, and I've sussed it.

    Very nice!

    I splurged on that Voyager drive too, and
    tested with it. The problem we have is deep down in the way that Linux
    / udev describe UAS-attached drives. In d-i we look for CD/DVD media
    and then USB drives, and for the latter we look for "ID_BUS=usb" from "udevadm info". On UAS media instead we get "ID_BUS=ata" so they don't
    show up.

    That makes a lot of sense.

    Thanks for investing resources to figure this one out. I'm pretty sure
    this will make a lot of people who want to install Debian (on Pi or on
    other platforms), and that would otherwise have run into this issue,
    very happy.

    This isn't a recent change, it's been like that way forever.

    Yeah. I'm pretty sure I switched to testing with a UAS drive right at
    the time someone reported they had an issue (that was also linked to
    them using UAS media) which logically led me to think that there existed
    a regression. But once we zeroed in on UAS being the culprit, I had a
    feeling that it might be something that had existed for some time.

    I've just added extra fallback code in d-i now to check for "usb" in
    the "ID_PATH" string too, and I've just run an installation now using
    that build. All looks good here. The changes will be in the next daily
    build early tomorrow.

    Since we're talking scanning limitation with regards to what d-i will
    pick as install media, is there any chance you could looking into also
    scanning SD/MMC media (most of which do not reside behind an USB
    controller though some do)?

    We have a very similar ESP/netint-based installation guide for the Pi 3
    [1], this time using SD, because it makes a more sense to use SD on Pi 3
    for varied reasons, and we have to require users to enter the "cdrom"
    target manually with:

    -t vfat -o rw /dev/mmcblk0p1

    If SD removable media could be scanned in the same manner as USB media,
    it would probably also improve the situation for people trying to
    install Debian using SD, and just not Pi 3 users.

    I also suspect that we are bound to find folks trying to use the
    ESP/netinst installation method using M.2 NVMe drives, especially if
    they don't happen to have a free USB drive lying around. In that case
    maybe /dev/nvme### media should also be considered in the lookup for installation media?

    All in all, it is likely that having d-i to only scan for USB and
    optical devices might become limiting in the long run, especially if we
    have means to identify, with relative certainty, whether a
    media/partition was created for the goal of Debian installation.

    But of course, you guys might have some constraints, that I am not aware
    of, that also make you not want to overexpand the range of devices that
    should qualify as installation media...

    Hilariously, it's not just d-i that doesn't deal with the UAS edge
    cases here. My test PC here would only recognise UAS media in BIOS
    mode (i.e. CSM enabled), not in UEFI mode.

    Interesting. Sadly, UEFI firmware bugs and limitations are far from
    uncommon.

    In my initial debugging
    here I ended up having to use two USB sticks - an older one to boot
    off and then remove, then the Voyager one to test detection code
    with. Firmware update needed! :-)

    Once again, great job! I really can't thank you enough for spending time
    fixing this. :)

    Regards,

    /Pete

    [1]
    https://pete.akeo.ie/2019/07/installing-debian-arm64-on-raspberry-pi.html

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Steve McIntyre@21:1/5 to Pete Batard on Tue Jan 19 02:10:02 2021
    On Sun, Jan 17, 2021 at 12:26:18AM +0000, Pete Batard wrote:
    On 2021.01.16 23:00, Steve McIntyre wrote:

    I splurged on that Voyager drive too, and
    tested with it. The problem we have is deep down in the way that Linux
    / udev describe UAS-attached drives. In d-i we look for CD/DVD media
    and then USB drives, and for the latter we look for "ID_BUS=usb" from
    "udevadm info". On UAS media instead we get "ID_BUS=ata" so they don't
    show up.

    That makes a lot of sense.

    Thanks for investing resources to figure this one out. I'm pretty sure this >will make a lot of people who want to install Debian (on Pi or on other >platforms), and that would otherwise have run into this issue, very happy.

    This isn't a recent change, it's been like that way forever.

    Yeah. I'm pretty sure I switched to testing with a UAS drive right at the >time someone reported they had an issue (that was also linked to them using >UAS media) which logically led me to think that there existed a regression. >But once we zeroed in on UAS being the culprit, I had a feeling that it might >be something that had existed for some time.

    ACK. If you see any oddities like this in future, please let us
    know. I'm happy to look into obvious failures like this, but I'm not
    psychic! :-)

    I've just added extra fallback code in d-i now to check for "usb" in
    the "ID_PATH" string too, and I've just run an installation now using
    that build. All looks good here. The changes will be in the next daily
    build early tomorrow.

    Since we're talking scanning limitation with regards to what d-i will pick as >install media, is there any chance you could looking into also scanning >SD/MMC media (most of which do not reside behind an USB controller though >some do)?

    We have a very similar ESP/netint-based installation guide for the Pi 3 [1], >this time using SD, because it makes a more sense to use SD on Pi 3 for >varied reasons, and we have to require users to enter the "cdrom" target >manually with:

    -t vfat -o rw /dev/mmcblk0p1

    If SD removable media could be scanned in the same manner as USB media, it >would probably also improve the situation for people trying to install Debian >using SD, and just not Pi 3 users.

    ACK, that makes sense too. I'm surprised not to have heard complaints
    about this already, I'll be honest. I'll take a look. My Thinkpad just
    exposes SD as /dev/sdX (via USB), but I've got a Macchiatobin with
    native SD on-board too to test with, showing up as mmcblk0.

    I also suspect that we are bound to find folks trying to use the ESP/netinst >installation method using M.2 NVMe drives, especially if they don't happen to >have a free USB drive lying around. In that case maybe /dev/nvme### media >should also be considered in the lookup for installation media?

    All in all, it is likely that having d-i to only scan for USB and optical >devices might become limiting in the long run, especially if we have means to >identify, with relative certainty, whether a media/partition was created for >the goal of Debian installation.

    But of course, you guys might have some constraints, that I am not aware of, >that also make you not want to overexpand the range of devices that should >qualify as installation media...

    So far, the design goal has been to limit searching to only look at
    removable media types. That's a decision from way before my
    involvement in the project. I can change it, but I'm a little bit
    worried about unexpected assumptions that it might break

    Hilariously, it's not just d-i that doesn't deal with the UAS edge
    cases here. My test PC here would only recognise UAS media in BIOS
    mode (i.e. CSM enabled), not in UEFI mode.

    Interesting. Sadly, UEFI firmware bugs and limitations are far from uncommon.

    Tell me about it :-)

    --
    Steve McIntyre, Cambridge, UK. steve@einval.com "Further comment on how I feel about IBM will appear once I've worked out
    whether they're being malicious or incompetent. Capital letters are forecast."
    Matthew Garrett, http://www.livejournal.com/users/mjg59/30675.html

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)