Advice for BtrFS spanning 2 Samsung 870 SSD's?

I’ve had zero problems with BtrFS spanning 2 ea 2TB Samsung 870 SSD’s since I disabled automatic snapshotting. (HP ZBook 15 laptop)
(ID_MODEL_FROM_DATABASE=8 Series/C220 Series Chipset Family USB xHCI (ZBook 15))

The only “unusual” thing I encounter is that I must press F9 immediately after power-on during boot in order to get to the BIOS boot manager which displays opensuse as an option to boot.
(Otherwise BIOS says no bootable OS’s are installed.)

So I’m wondering if this will cause a problem with an online update from 15.3 -> 15.4, and, if so, are there any wise advice on the update (besides full backup before starting the update)?
https://en.opensuse.org/SDB:System_upgrade

Thanks! :slight_smile:
Patricia

Hi
This is UEFI boot, if yes, what does the following show (as root user);


efibootmgr -v

Yes, native UEFI.

**/home/patti #** efibootmgr -v 
BootCurrent: 0000 
Timeout: 0 seconds 
BootOrder: 0000 
Boot0000* opensuse      HD(1,GPT,5fb55b2a-5dbf-4ff1-803c-1f202b0132f6,0x800,0x100000)/File(\EFI\opensuse\grubx64.efi) 
**/home/patti #**



Hi
So is it meant to be secure boot, as in is it enabled in the system BIOS?

Does that UUID 5fb55b2a-5dbf-4ff1-803c-1f202b0132f6 correspond to the EFI system partition?


blkid | grep "EFI system partition"

Thank you for the replies! I never went through the process of enabling secure boot.
https://pages.cs.wisc.edu/~remzi/Classes/736/Papers/iron.pdf

Yes, that looks to be right about sda1.


NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT 
sda               8:0    0  1.8T  0 disk  
├─sda1            8:1    0  512M  0 part /boot/efi 
└─sda2            8:2    0  1.8T  0 part  
  ├─system-root 254:0    0  3.6T  0 lvm  / 
  └─system-swap 254:1    0 14.9G  0 lvm  [SWAP] 
sdb               8:16   0  1.8T  0 disk  
└─sdb1            8:17   0  1.8T  0 part  
  └─system-root 254:0    0  3.6T  0 lvm  /

[FONT=monospace]/dev/sda1: UUID="AD54-396A" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="5fb55b2a-5dbf-4ff1-803c-1f202b0132f6" 
/dev/sda2: UUID="O9f42c-BVZP-4Tmq-Z2rI-94jF-epJt-RZNXPz" TYPE="LVM2_member" PARTUUID="26b3c18d-2f5d-46cb-b7d0-e3df92ee5434" 
/dev/sdb1: UUID="zNSnOP-2bsv-awh2-xGwM-qy53-ufVL-YB0JXB" TYPE="LVM2_member" PARTUUID="b6e621f5-08a1-4139-8ddd-8502785504df" 
/dev/mapper/system-root: UUID="e711d272-7b60-4d9d-b3cf-415936023b52" UUID_SUB="b6904fb1-fd11-40d0-9b47-dce0d24f456b" BLOCK_SIZE="4096" TYPE="btrfs" 
/dev/mapper/system-swap: UUID="ed7b840d-1aff-4e35-aec7-e5cf99b22593" TYPE="swap"


[/FONT]

I had thought that maybe the UEFI just didn’t recognize current BtrFS boot conventions.

Hi
If you fire up YaST2 bootloader and change the timeout (default 8) to say 4 and save, it should do some foo and hopefully make the nvram entry to be recognized. If that doesn’t work we can delete the entry and manually re-create.

Again, thanks for your time and experience!

Just to clarify - if I don’t hit F9 within about 3 seconds of power-on, then BIOS reports no OS installed and says it will shut down. It apparently doesn’t even find a filesystem if I don’t select F9 (which is labeled “BIOS bootloader”). Would the suse boot software even be activated? So that seems to be somehow a BIOS problem? (Is that what YaST is calling “nvram”?)

My main concern is that the existing BtrFS will be maintained during the 15.3 -> 15.4 process. I guess it should since an online update never goes through the FS setup that a fresh install does. The BIOS thing is sort of a separate issue. I guess you could call it a “bug” in BtrFS? I set up my BtrFS through the opensuse installer using merged-BtrFS defaults. So it’s vanilla.

Hi
Can you press F10 to get into the BIOS and check boot order, that secure boot is disabled etc.

Thanks Again.

Reverified no secure boot and native UEFI in use.

Boot order: there’s no options for booting to specific partitions or disks, only externals (e.g., “USB hard drive”), or whatever is in the SATA bay (such as a CD/DVD). No forbidden options.

So it looks like this BIOS predates whatever hardware BtrFS is expecting, although F9 does find OpenSuSE as a listed option - so the UEFI is at least partially compatible with BtrFS.
There is an “add custom boot” feature into which I can type a path. No examples given or help available in BIOS.

BTW: I didn’t visit here during the forum big chanageover a while back, so I was demoted in the penguin ranks to a beginner.rotfl!
(although I’ve always asked strange questions)

UEFI does not “boot from specific disk” at all. That is simply not how UEFI boot works.

So it looks like this BIOS predates whatever hardware BtrFS is expecting,

Do not mix apples and oranges.

Your firmware is not aware of btrfs at all. But there are known cases when firmware accepts only Windows boot entry and ignores everything else. Your case sounds like this one. Show output of “ls -lR /boot/efi” (or “tree -Dh /boot/efi” if you have tree installed).

Hi
Unusual for a HP system to be this way, I’ve seen that with the likes of Toshiba and Acer laptops… Maybe it needs an ‘Internal Hard Drive’ entry;


HP Pavilion 15-aw057nr (Secure boot and TPM 2.0 active) [MicroOS-Desktop]


BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,9999
Boot0000* opensuse-secureboot    HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)/File(\EFI\opensuse\shim.efi)
Boot0001* Internal Hard Disk    PciRoot(0x0)/Pci(0x11,0x0)/Sata(0,65535,0)/HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)..BO
Boot9999* USB Drive (UEFI)    PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)..BO

HP Notebook 14-an013nr (No secure boot or TPM, dual boot) [openSUSE Leap 15.4 - Online upgrade from Leap 15.3 btrfs no snapper]

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,3000,0002,2001,2002,2004
Boot0000* openSUSE    HD(1,GPT,383ba74c-8a8e-43b5-a073-679cb3703729,0x800,0x82000)/File(\EFI\opensuse\grubx64.efi)RC
Boot0002* Windows Boot Manager    HD(1,GPT,383ba74c-8a8e-43b5-a073-679cb3703729,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* EFI USB Device    RC
Boot3000* Internal Hard Disk or Solid State Disk    RC

According to efibootmgr output UEFI configuration has sufficient data to boot openSUSE. If firmware ignores this configuration, it is a firmware bug. Boot entries you show are vendor specific and we have no way to create them without knowing exact content. One possibility is to reset all BIOS settings to default (which may add default boot entries) but then one need to boot from rescue medium to reinstall bootloader.

Documentation says:

Requirements for a rollback from a bootable snapshot

  •   The root file system needs to be Btrfs. Booting from LVM volume snapshots      is not supported. 
    
  •   The root file system needs to be on a single device, a single partition      and a single subvolume. Directories that are excluded from snapshots such      as /srv (see [Section 3.1.3, “Directories that are excluded from snapshots”](https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-snapper.html#snapper-dir-excludes)      for a full list) may reside on separate partitions. 
    
  •   The system needs to be bootable via the installed boot loader. 
    

https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-snapper.html#sec-snapper-snapshot-boot
Don’t impose restrictions on your system. Rollback is a great feature of openSUSE. You may regret your decision made.

I am sticking to KISS:

erlangen:~ # fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 1.82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: Samsung SSD 970 EVO Plus 2TB            
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: F5B232D0-7A67-461D-8E7D-B86A5B4C6C10

Device              Start        End    Sectors  Size Type
/dev/nvme0n1p1       2048    1050623    1048576  512M EFI System
/dev/nvme0n1p2    1050624 3702228991 3701178368  1.7T Linux filesystem
erlangen:~ # 
erlangen:~ # lsblk -f /dev/nvme0n1
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1                                                                            
├─nvme0n1p1 vfat   FAT32       19CF-0B54                             510.4M     0% /boot/efi
├─nvme0n1p2 btrfs              0e58bbe5-eff7-4884-bb5d-a0aac3d8a344    1.3T    26% /var
│                                                                                  /usr/local
│                                                                                  /srv
│                                                                                  /root
│                                                                                  /opt
│                                                                                  /home
│                                                                                  /boot/grub2/x86_64-efi
│                                                                                  /boot/grub2/i386-pc
│                                                                                  /.snapshots
│                                                                                  /
erlangen:~ # 
erlangen:~ # btrfs filesystem usage -T /
Overall:
    Device size:                   1.72TiB
    Device allocated:            465.07GiB
    Device unallocated:            1.27TiB
    Device missing:                  0.00B
    Used:                        450.70GiB
    Free (estimated):              1.28TiB      (min: 662.57GiB)
    Free (statfs, df):             1.28TiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              512.00MiB      (used: 0.00B)
    Multiple profiles:                  no

                  Data      Metadata System              
Id Path           single    DUP      DUP      Unallocated
-- -------------- --------- -------- -------- -----------
 1 /dev/nvme0n1p2 459.01GiB  6.00GiB 64.00MiB     1.27TiB
-- -------------- --------- -------- -------- -----------
   Total          459.01GiB  3.00GiB 32.00MiB     1.27TiB
   Used           446.34GiB  2.18GiB 80.00KiB            
erlangen:~ # 

tumbleweed-test is used as a fast and convenient rescue system installed on the Samsung 970 EVO Plus 2TB:

erlangen:~ # efibootmgr 
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* tumbleweed-nvme0n1p2
Boot0001* tumbleweed-test
erlangen:~ # 

Mileage of “zypper dist-upgrade” may vary considerably: https://forums.opensuse.org/showthread.php/572120-All-methods-of-installing-an-upgrade-to-15-4-fail?p=3140831#post3140831

Hi
OK, the system boots with the F9 boot key and selecting the entry.

No need to re-install bootloader on HP system, you can use the F9 key and browse to the efi file and select it to boot.

@Pattim Can you boot he system press the F9 key and confirm there is a “<boot from efi file>” entry, browse to the EFI/opensuse direcotry and select the grubx64.efi file to boot.

Now I do wonder if you enable secure boot in YaST bootloader to add the second entry and install that may help?

Hi Malcom - F9 offers 2 choices: “Boot from EFI file” and “opensuse” - I normally use the second one, but some time back I recalled using the first one. Anyway, I tried booting from EFI file and a couple of path choices later it offered grub64.efi and it booted fine. So does that mean this is a “firmware problem” and does that mean the BIOS needs to be updated? (does “firmware” mean it resides in an EPROM or the modern equivalent of an EPROM?)

Hi
Yes, the entries are in NVRAM (eeprom) on the systemboard.

So the browse option should remain and you know where to go…

Lets try a second one and see if that works first…

Here is my example;


efibootmgr -v


BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0001,9999
Boot0000* opensuse-secureboot	HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)/File(\EFI\opensuse\shim.efi)
Boot0001* Internal Hard Disk	PciRoot(0x0)/Pci(0x11,0x0)/Sata(0,65535,0)/HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)..BO
Boot9999* USB Drive (UEFI)	PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)..BO


efibootmgr -c -L "opensuse-test" -l "\\EFI\opensuse\grubx64.efi"


BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,0000,0001,9999
Boot0000* opensuse-secureboot
Boot0001* Internal Hard Disk
Boot9999* USB Drive (UEFI)
Boot0002* opensuse-test


efibootmgr -v


BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,0000,0001,9999
Boot0000* opensuse-secureboot	HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)/File(\EFI\opensuse\shim.efi)
Boot0001* Internal Hard Disk	PciRoot(0x0)/Pci(0x11,0x0)/Sata(0,65535,0)/HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)..BO
Boot0002* opensuse-test	HD(1,GPT,a28b7e33-daf6-4353-b1ea-bb86f074b606,0x800,0x100000)/File(\EFI\opensuse\grubx64.efi)
Boot9999* USB Drive (UEFI)	PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)..BO

So as you can see, I now have a second entry and it’s set to boot first now, if your new entry is not, we can set or just try the boot next option;

Boot efi entry next option;


efibootmgr -n 0002

BootNext: 0002 <<<====

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,0000,0001,9999
Boot0000* opensuse-secureboot
Boot0001* Internal Hard Disk
Boot0002* opensuse-test
Boot9999* USB Drive (UEFI)

Or set the order;


efibootmgr -o 0002,0000,9999,0001

BootNext: 0002
BootCurrent: 0000
Timeout: 0 seconds


BootOrder: 0002,0000,9999,0001 <<<+===

Boot0000* opensuse-secureboot
Boot0001* Internal Hard Disk
Boot0002* opensuse-test
Boot9999* USB Drive (UEFI)

Sit back and enjoy: BBS basics

BBS stands for BIOS Boot Specification. It is a standardized boot process that directs the BIOS to identify and prioritize the initial program load (IPL) of the devices in the computer. Usually allowing the selection of a specific drive to boot from.

Malcom and Karl - thanks for the great stuff! This is the mini-lesson I’ve been waiting for. I used to be able to walk into Herb’s office and ask …whatever… but he’s long-since retired. He gave me my first Cromix computer (Cromemco). Thanks again - I’ll work on this. Malcom - I see a lot in your coding that seems understandable. I didn’t know I could do that. When GRUB/UEFI took over, I felt orphaned.

(Has anyone else noticed that search engines are junk-advertising-and-often-wrong-engines now?)

Ultimately, it sounds like nobody thinks 15.3 -> 15.4 online update will be disrupted by the F9 requirement. I guess the 15.4’s grub64.efi will point to the correct things after the update?
https://en.opensuse.org/SDB:System_upgrade

One reason to update is I read that 15.4 supposedly handles displays better. My laptop has Intel on-chip and NVidia discrete graphics. I’d love it if I could only use NVidia, but I think opensuse “likes” nouveau better. In the old days, I’d just install the driver with an nvidia***.run file. Now there are many howto pages (many outdated) and it looks really tricky to change the default video driver.

I pretty much understand the basics… but knowing the exact files and ways to edit them as needed got tricky when LILO disappeared and GRUB came along in Opensuse. And I haven’t seen a good UEFI discussion - always too basic or too technical - but that’s life…

Hi Malcom - result, no change in boot process: select F9 during power-on; select “opensuse” from menu; hit enter.
Also,

efibootmgr -v 
BootCurrent: 0000 
Timeout: 0 seconds 
BootOrder: 0000 
Boot0000* opensuse      HD(1,GPT,5fb55b2a-5dbf-4ff1-803c-1f202b0132f6,0x800,0x100000)/File(\EFI\opensuse\grubx64.efi) 
Boot0001* opensuse-test HD(1,GPT,b6e621f5-08a1-4139-8ddd-8502785504df,0x800,0xe8e0808f)/File(\EFI\opensuse\grubx64.efi)


Hmmm… the bootorder didn’t “stick” during power cycling - it was 0001,0000

Trying again…

 efibootmgr -o 0001,0000 
BootCurrent: 0000 
Timeout: 0 seconds 
BootOrder: 0001,0000 
Boot0000* opensuse 
Boot0001* opensuse-test