Questions générales sur Manjaro Linux.
S'il vous plaît, avant de poster, essayez la fonction de recherche du forum.
Répondre

Plus de Manjaro dans Grub

#1Messageil y a 1 an

Hello,

EN démarrant mon pc tout à l'heure j'ai constaté que Manjaro n'apparaissait pas dasn le grub, seulement mes autres os (win11, kde NEon, Kubuntu).

Depuis Kubuntu j'ai installé boot repair et l'ai fait tourner.

Mais ça ne marche pas toujours pas de Manjaro dans mon menu Grub.

Ci-joint une copie du boot-info.

Si qq'un a une idée.

Merci d'avance,

Aloun

boot-repair-4ppa2056                                              [20230414_1842]

============================== Boot Info Summary ===============================

 => Windows 7/8/10/11/2012 is installed in the MBR of /dev/nvme0n1.

nvme0n1p1: _____________________________________________________________________

    File system:       vfat
    Boot sector type:  Windows 8/10/11/2012: FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /efi/Boot/bkpbootx64.efi /efi/Boot/bootx64.efi 
                       /efi/Boot/fbx64.efi /efi/Boot/mmx64.efi 
                       /efi/geckolinux/grubx64.efi /efi/mageia/grubx64.efi 
                       /efi/Manjaro/grubx64.efi /efi/MX21/grubx64.efi 
                       /efi/neon/grubx64.efi /efi/neon/mmx64.efi 
                       /efi/neon/shimx64.efi /efi/ubuntu/grubx64.efi 
                       /efi/ubuntu/mmx64.efi /efi/ubuntu/shimx64.efi 
                       /efi/neon/grub.cfg /efi/ubuntu/grub.cfg 
                       /efi/Microsoft/Boot/bootmgfw.efi 
                       /efi/Microsoft/Boot/bootmgr.efi 
                       /efi/Microsoft/Boot/cbmr_driver.efi

nvme0n1p2: _____________________________________________________________________

    File system:       
    Boot sector type:  -
    Boot sector info: 

nvme0n1p3: _____________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/10/11/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  Windows 10 or 11
    Boot files:        /Windows/System32/winload.exe

nvme0n1p4: _____________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/10/11/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

nvme0n1p5: _____________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  KDE neon 5.27
    Boot files:        /boot/grub/grub.cfg /etc/fstab

nvme0n1p6: _____________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Manjaro Linux
    Boot files:        /boot/grub/grub.cfg /etc/fstab /etc/default/grub

nvme0n1p7: _____________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 8/10/11/2012: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

nvme0n1p8: _____________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 22.04.2 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /etc/default/grub


================================ 4 OS detected =================================

OS#1:   KDE neon 5.27 (22.04) on nvme0n1p5
OS#2:   Manjaro Linux (22.1.0) on nvme0n1p6
OS#3:   Ubuntu 22.04.2 LTS on nvme0n1p8
OS#4:   Windows 10 or 11 on nvme0n1p3

================================ Host/Hardware =================================

CPU architecture: 64-bit
Video: TU106 [GeForce RTX 2060 Rev. A] EFI VGA from NVIDIA Corporation
BOOT_IMAGE of the installed session in use:
/boot/vmlinuz-5.15.0-69-generic root=UUID=37727857-6e69-4a10-a635-a5be91cf1fe2 ro quiet splash vt.handoff=7
df -Th / : /dev/nvme0n1p8 ext4   79G   54G   21G  73% /

===================================== UEFI =====================================

BIOS/UEFI firmware: F15a(5.17) from American Megatrends International, LLC.
The firmware is EFI-compatible, and is set in EFI-mode for this installed-session.
SecureBoot disabled (confirmed by mokutil).
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0008,0004,0003,0000,0001,0005
Boot0000* Windows Boot Manager	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/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.}...d................
Boot0001  MX21	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\MX21\GRUBX64.EFI)
Boot0002* ubuntu	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\UBUNTU\SHIMX64.EFI)
Boot0003* neon	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\NEON\SHIMX64.EFI)
Boot0004* mageia	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\MAGEIA\GRUBX64.EFI)
Boot0005  geckolinux	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\GECKOLINUX\GRUBX64.EFI)
Boot0008* Manjaro	HD(1,GPT,e156fee5-6860-4259-86a8-85d4e967c55c,0x800,0x32000)/File(\EFI\MANJARO\GRUBX64.EFI)

64349b3622c65f495a99dbf6102496e3   nvme0n1p1/Boot/bkpbootx64.efi
64349b3622c65f495a99dbf6102496e3   nvme0n1p1/Boot/bootx64.efi
a9c517741ac31962d7feb152948ad1ee   nvme0n1p1/Boot/fbx64.efi
a660182adef313615746a665966d2ccc   nvme0n1p1/Boot/mmx64.efi
d2e4145806552e570667e02850566990   nvme0n1p1/geckolinux/grubx64.efi
b99467ba3e5c70382406599fc97a766b   nvme0n1p1/mageia/grubx64.efi
edd5a6ae81f17d441887d323aacee263   nvme0n1p1/Manjaro/grubx64.efi
4c3ed3bea0bc26ed9faa3ecea12668b0   nvme0n1p1/MX21/grubx64.efi
3795ef72a4ed0369ca44e711527904bf   nvme0n1p1/neon/grubx64.efi
fdafb5eece6caeccb788c946a28e6872   nvme0n1p1/neon/mmx64.efi
728124f6ec8e22fbdbe7034812c81b95   nvme0n1p1/neon/shimx64.efi
5ddf997e8b025bfbc2009e85b32f60dc   nvme0n1p1/ubuntu/grubx64.efi
a660182adef313615746a665966d2ccc   nvme0n1p1/ubuntu/mmx64.efi
64349b3622c65f495a99dbf6102496e3   nvme0n1p1/ubuntu/shimx64.efi
1218b32286c5a2baf0537f8502c8e64f   nvme0n1p1/Microsoft/Boot/bootmgfw.efi
d99f2df7850c1d370e73b3214660ff5d   nvme0n1p1/Microsoft/Boot/bootmgr.efi
b8796e68099026aabcebb8fcf75b21f6   nvme0n1p1/Microsoft/Boot/cbmr_driver.efi

============================= Drive/Partition Info =============================

Disks info: ____________________________________________________________________

nvme0n1	: is-GPT,	no-BIOSboot,	has---ESP, 	not-usb,	not-mmc, has-os,	has-win,	2048 sectors * 512 bytes

Partitions info (1/3): _________________________________________________________

nvme0n1p8	: is-os,	64, apt-get,	signed grub-pc grub-efi ,	grub2,	grub-install,	grubenv-ok,	update-grub,	farbios
nvme0n1p7	: no-os,	64, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
nvme0n1p5	: is-os,	64, apt-get,	signed grub-pc grub-efi ,	grub1,	grub-install,	grubenv-ok,	update-grub,	farbios
nvme0n1p3	: is-os,	64, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
nvme0n1p1	: no-os,	64, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	not-far
nvme0n1p6	: is-os,	64, pacman,	grub1 ,	grub2,	grub-install,	grubenv-ng,	update-grub,	farbios
nvme0n1p4	: no-os,	64, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios

Partitions info (2/3): _________________________________________________________

nvme0n1p8	: isnotESP,	fstab-has-goodEFI,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
nvme0n1p7	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	recovery-or-hidden,	no-bmgr,	notwinboot
nvme0n1p5	: isnotESP,	fstab-has-goodEFI,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
nvme0n1p3	: isnotESP,	part-has-no-fstab,	no-nt,	haswinload,	no-recov-nor-hid,	no-bmgr,	notwinboot
nvme0n1p1	: is---ESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
nvme0n1p6	: isnotESP,	fstab-has-goodEFI,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
nvme0n1p4	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot

Partitions info (3/3): _________________________________________________________

nvme0n1p8	: not--sepboot,	with-boot,	fstab-without-boot,	not-sep-usr,	with--usr,	fstab-without-usr,	std-grub.d,	nvme0n1
nvme0n1p7	: not--sepboot,	no---boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	no--grub.d,	nvme0n1
nvme0n1p5	: not--sepboot,	with-boot,	fstab-without-boot,	not-sep-usr,	with--usr,	fstab-without-usr,	std-grub.d,	nvme0n1
nvme0n1p3	: not--sepboot,	no---boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	no--grub.d,	nvme0n1
nvme0n1p1	: not--sepboot,	no---boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	no--grub.d,	nvme0n1
nvme0n1p6	: not--sepboot,	with-boot,	fstab-without-boot,	not-sep-usr,	with--usr,	fstab-without-usr,	std-grub.d,	nvme0n1
nvme0n1p4	: not--sepboot,	no---boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	no--grub.d,	nvme0n1

fdisk -l (filtered): ___________________________________________________________

Disk nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk identifier: 94A27434-CF0E-41A4-8CD7-5362DD0C74BE
               Start        End    Sectors   Size Type
nvme0n1p1       2048     206847     204800   100M EFI System
nvme0n1p2     206848     239615      32768    16M Microsoft reserved
nvme0n1p3     239616 1024514047 1024274432 488.4G Microsoft basic data
nvme0n1p4 1024514048 1172994048  148480001  70.8G Microsoft basic data
nvme0n1p5 1745410048 1952258047  206848000  98.6G Linux filesystem
nvme0n1p6 1172994050 1321474047  148479998  70.8G Linux filesystem
nvme0n1p7 1952258048 1953521663    1263616   617M Windows recovery environment
nvme0n1p8 1576644608 1745410047  168765440  80.5G Linux filesystem
Partition table entries are not in disk order.

parted -lm (filtered): _________________________________________________________

nvme0n1:1000GB:nvme:512:512:gpt:CT1000P2SSD8:;
1:1049kB:106MB:105MB:fat32:EFI system partition:boot, esp;
2:106MB:123MB:16.8MB::Microsoft reserved partition:msftres;
3:123MB:525GB:524GB:ntfs:WIndows:msftdata;
4:525GB:601GB:76.0GB:ntfs:Disque dur:msftdata;
6:601GB:677GB:76.0GB:ext4:Manjaro:;
8:807GB:894GB:86.4GB:ext4:Kubuntu:;
5:894GB:1000GB:106GB:ext4:KDE Neon:;
7:1000GB:1000GB:647MB:ntfs::hidden, diag;

Free space >10MiB: ______________________________________________________________

nvme0n1: 645251MiB:769846MiB:124595MiB

blkid (filtered): ______________________________________________________________

NAME        FSTYPE   UUID                                 PARTUUID                             LABEL      PARTLABEL
nvme0n1                                                                                                   
├─nvme0n1p1 vfat     58E3-4E2B                            e156fee5-6860-4259-86a8-85d4e967c55c            EFI system partition
├─nvme0n1p2                                               9c8705e9-1e3e-4a30-998c-8d4224e34d7b            Microsoft reserved partition
├─nvme0n1p3 ntfs     0646E43B46E42D5D                     74fd7f14-01e7-44aa-a6c8-291f499d808b            WIndows
├─nvme0n1p4 ntfs     5826F8A426F88472                     bd272e26-5700-47b2-8614-08e59f6ee9a3 Disque dur Disque dur
├─nvme0n1p5 ext4     36eca5f9-c15c-4a03-8f2e-effa252f6371 5d3f612f-96d2-f54e-8ad4-e17e3c4167b2            KDE Neon
├─nvme0n1p6 ext4     d79d9b2b-2e9f-401a-9aac-34d82b29e10e 68946c52-429b-ac4b-bfbb-836fa7619377            Manjaro
├─nvme0n1p7 ntfs     C0D0F14DD0F149E4                     519b61e5-a057-46f7-b699-3274ca186c97            
└─nvme0n1p8 ext4     37727857-6e69-4a10-a635-a5be91cf1fe2 85f2a19f-ea89-408a-948f-f5199223da0d            Kubuntu

Mount points (filtered): _______________________________________________________

                                     Avail Use% Mounted on
/dev/nvme0n1p1                         56M  42% /mnt/boot-sav/nvme0n1p1
/dev/nvme0n1p3                      234.1G  52% /media/alain/0646E43B46E42D5D
/dev/nvme0n1p4                       40.8G  42% /media/alain/Disque dur
/dev/nvme0n1p5                       60.1G  33% /media/alain/36eca5f9-c15c-4a03-8f2e-effa252f6371
/dev/nvme0n1p6                       36.4G  42% /media/alain/d79d9b2b-2e9f-401a-9aac-34d82b29e10e
/dev/nvme0n1p7                       91.1M  85% /mnt/boot-sav/nvme0n1p7
/dev/nvme0n1p8                       20.8G  68% /

Mount options (filtered): ______________________________________________________


==================== nvme0n1p1/efi/neon/grub.cfg (filtered) ====================

search.fs_uuid 36eca5f9-c15c-4a03-8f2e-effa252f6371 root 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

=================== nvme0n1p1/efi/ubuntu/grub.cfg (filtered) ===================

search.fs_uuid 37727857-6e69-4a10-a635-a5be91cf1fe2 root 
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

=================== nvme0n1p5/boot/grub/grub.cfg (filtered) ====================

GNU/Linux   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-35-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-32-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-67-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-60-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-58-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-57-generic   36eca5f9-c15c-4a03-8f2e-effa252f6371
Windows Boot Manager (on nvme0n1p1)   osprober-efi-58E3-4E2B
Ubuntu 22.04.2 LTS (22.04) (on nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu (on nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-67-generic (on nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-60-generic (on nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-58-generic (on nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
### END /etc/grub.d/30_os-prober ###
UEFI Firmware Settings   uefi-firmware
### END /etc/grub.d/30_uefi-firmware ###

======================== nvme0n1p5/etc/fstab (filtered) ========================

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=58E3-4E2B                            /boot/efi      vfat    defaults,noatime 0 2
UUID=36eca5f9-c15c-4a03-8f2e-effa252f6371 /              ext4    defaults,noatime,discard 0 1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

================= nvme0n1p5: Location of files loaded by Grub ==================

           GiB - GB             File                                 Fragment(s)
 879,067398071 = 943,891431424  boot/grub/grub.cfg                             1
 879,081050873 = 943,906091008  boot/vmlinuz                                   2
 911,927745819 = 979,174961152  boot/vmlinuz-5.15.0-57-generic                 1
 877,544937134 = 942,256701440  boot/vmlinuz-5.15.0-58-generic                 1
 884,662124634 = 949,898723328  boot/vmlinuz-5.15.0-60-generic                 2
 879,081050873 = 943,906091008  boot/vmlinuz-5.15.0-67-generic                 2
 888,670528412 = 954,202714112  boot/vmlinuz-5.19.0-32-generic                 1
 892,217403412 = 958,011142144  boot/vmlinuz-5.19.0-35-generic                 2
 892,217403412 = 958,011142144  boot/vmlinuz.old                               2
 863,476116180 = 927,150419968  boot/initrd.img                                5
 861,026363373 = 924,520017920  boot/initrd.img-5.15.0-57-generic              3
 863,026363373 = 926,667501568  boot/initrd.img-5.15.0-58-generic              2
 864,893550873 = 928,672378880  boot/initrd.img-5.15.0-60-generic              3
 863,476116180 = 927,150419968  boot/initrd.img-5.15.0-67-generic              5
 864,901363373 = 928,680767488  boot/initrd.img-5.19.0-32-generic              7
 860,651363373 = 924,117364736  boot/initrd.img-5.19.0-35-generic              2

=================== nvme0n1p5: ls -l /etc/grub.d/ (filtered) ===================

-rwxr-xr-x 1 root root 18683 Dec  2 16:18 10_linux
-rwxr-xr-x 1 root root 43031 Dec  2 16:18 10_linux_zfs
-rwxr-xr-x 1 root root 14180 Dec  2 16:18 20_linux_xen
-rwxr-xr-x 1 root root 13369 Dec  2 16:18 30_os-prober
-rwxr-xr-x 1 root root  1372 Dec  2 16:18 30_uefi-firmware
-rwxr-xr-x 1 root root   700 Sep 20  2022 35_fwupd
-rwxr-xr-x 1 root root   214 Dec  2 16:18 40_custom
-rwxr-xr-x 1 root root   215 Dec  2 16:18 41_custom

=================== nvme0n1p6/boot/grub/grub.cfg (filtered) ====================

Manjaro Linux   d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 6.2.10-1-MANJARO x64)   d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 6.2.10-1-MANJARO x64 - fallback initramfs)   gnulinux-6.2.10-1-MANJARO x64-fallback-d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 6.1.23-1-MANJARO x64)   d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 6.1.23-1-MANJARO x64 - fallback initramfs)   gnulinux-6.1.23-1-MANJARO x64-fallback-d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 5.15.106-1-MANJARO x64)   d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Manjaro Linux (Kernel: 5.15.106-1-MANJARO x64 - fallback initramfs)   gnulinux-5.15.106-1-MANJARO x64-fallback-d79d9b2b-2e9f-401a-9aac-34d82b29e10e
Windows Boot Manager (sur nvme0n1p1)   osprober-efi-58E3-4E2B
KDE neon 5.27 (22.04) (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-35-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-32-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-67-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-60-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-58-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-57-generic (sur nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
Ubuntu 22.04.2 LTS (22.04) (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-69-generic (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-67-generic (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-60-generic (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-58-generic (sur nvme0n1p8)   37727857-6e69-4a10-a635-a5be91cf1fe2
### END /etc/grub.d/30_os-prober ###
UEFI Firmware Settings   uefi-firmware
### END /etc/grub.d/30_uefi-firmware ###

======================== nvme0n1p6/etc/fstab (filtered) ========================

# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=58E3-4E2B                            /boot/efi      vfat    umask=0077 0 2
UUID=d79d9b2b-2e9f-401a-9aac-34d82b29e10e /              ext4    defaults,noatime 0 1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

==================== nvme0n1p6/etc/default/grub (filtered) =====================

GRUB_DEFAULT=saved
GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=hidden
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash udev.log_priority=3"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT=true
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
GRUB_TERMINAL_INPUT=console
GRUB_GFXMODE=auto
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_DISABLE_RECOVERY=true
GRUB_DISABLE_OS_PROBER=false
GRUB_COLOR_NORMAL="light-gray/black"
GRUB_COLOR_HIGHLIGHT="green/black"
GRUB_THEME="/usr/share/grub/themes/manjaro/theme.txt"

================= nvme0n1p6: Location of files loaded by Grub ==================

           GiB - GB             File                                 Fragment(s)
 589,477559090 = 632,946709504  boot/grub/grub.cfg                             1
 604,298153877 = 648,860201984  boot/vmlinuz-5.15-x86_64                       1
 604,311520576 = 648,874554368  boot/vmlinuz-6.1-x86_64                        2
 604,319333076 = 648,882942976  boot/vmlinuz-6.2-x86_64                        2
 602,841866493 = 647,296525312  boot/initramfs-5.15-x86_64-fallback.img        2
 604,348908424 = 648,914699264  boot/initramfs-5.15-x86_64.img                 2
 602,900357246 = 647,359329280  boot/initramfs-6.1-x86_64-fallback.img         1
 602,856911659 = 647,312679936  boot/initramfs-6.1-x86_64.img                  1
 622,464875221 = 668,366570496  boot/initramfs-6.2-x86_64-fallback.img         2
 602,919518471 = 647,379903488  boot/initramfs-6.2-x86_64.img                  1

=================== nvme0n1p6: ls -l /etc/grub.d/ (filtered) ===================

-rwxr-xr-x 1 root root 13736 Apr  5 16:07 10_linux
-rwxr-xr-x 1 root root 14287 Apr  5 16:07 20_linux_xen
-rwxr-xr-x 1 root root 12649 Apr  5 16:07 30_os-prober
-rwxr-xr-x 1 root root  1120 Apr  5 16:07 30_uefi-firmware
-rwxr-xr-x 1 root root   722 Mar 31 13:15 35_fwupd
-rwxr-xr-x 1 root root   214 Apr  5 16:07 40_custom
-rwxr-xr-x 1 root root   215 Apr  5 16:07 41_custom
-rwxr-xr-x 1 root root 26939 Dec 19 10:57 41_snapshots-btrfs
-rwxr-xr-x 1 root root  1219 Feb  9 22:50 60_memtest86+
-rwxr-xr-x 1 root root  1394 Feb  9 22:50 60_memtest86+-efi

=================== nvme0n1p6/etc/grub.d/41_snapshots-btrfs ====================

#! /usr/bin/env bash
#
# Written by: Antynea
# BTC donation address: 1Lbvz244WA8xbpHek9W2Y12cakM6rDe5Rt
# Github: https://github.com/Antynea/grub-btrfs
#
# Purpose:
#   Improves Grub by adding "btrfs snapshots" to the Grub menu.
#   You can boot your system on a "snapshot" from the Grub menu.
#   Supports manual snapshots, snapper, timeshift ...
#   Warning : booting on read-only snapshots can be tricky.
#   (Read about it, https://github.com/Antynea/grub-btrfs#warning-booting-on-read-only-snapshots-can-be-tricky)
#
# What this script does:
# - Automatically List snapshots existing on root partition (btrfs).
# - Automatically Detect if "/boot" is in separate partition.
# - Automatically Detect kernel, initramfs and intel/amd microcode in "/boot" directory on snapshots.
# - Automatically Create corresponding "menuentry" in grub.cfg.
# - Automatically detect the type/tags and descriptions/comments of snapper/timeshift snapshots.
# - Automatically generate grub.cfg if you use the provided systemd service.
#
# Installation:
# - Refer to https://github.com/Antynea/grub-btrfs#installation-
#
# Customization:
#  You have the possibility to modify many parameters in /etc/default/grub-btrfs/config.
#
# Automatically update Grub
#  If you would like grub-btrfs menu to automatically update when a snapshot is created or deleted:
#  - Refer to https://github.com/Antynea/grub-btrfs#automatically-update-grub.
#
# Special thanks for assistance and contributions:
# - My friends
# - All contributors on Github
#
set -e
sysconfdir="/etc"
grub_btrfs_config="${sysconfdir}/default/grub-btrfs/config"
[[ -f "$grub_btrfs_config" ]] && . "$grub_btrfs_config"
[[ -f "${sysconfdir}/default/grub" ]] && . "${sysconfdir}/default/grub"
## Error Handling
print_error()
{
    local err_msg="$*"
    local bug_report="If you think an error has occurred, please file a bug report at \"https://github.com/Antynea/grub-btrfs\""
    printf "%s\n" "${err_msg}" "${bug_report}" >&2 ;
    exit 0
}
# parse arguments
while getopts :V-: opt; do
    case "$opt" in
        -)
            case "${OPTARG}" in
                version)
                    printf "Version %s\n" "${GRUB_BTRFS_VERSION}" >&2 ;
                    exit 0
                    ;;
            esac;;
        V)
            printf "Version %s\n" "${GRUB_BTRFS_VERSION}" >&2 ;
            exit 0
            ;;
        *)
            printf "Unknown flag, exiting...\n"
            exit 0
            ;;
    esac
done
## Exit the script, if:
[[ "${GRUB_BTRFS_DISABLE,,}" == "true" ]] && print_error "GRUB_BTRFS_DISABLE is set to true (default=false)"
if ! type btrfs >/dev/null 2>&1; then print_error "btrfs-progs isn't installed"; fi
[[ -f "${GRUB_BTRFS_MKCONFIG_LIB:-/usr/share/grub/grub-mkconfig_lib}" ]] && . "${GRUB_BTRFS_MKCONFIG_LIB:-/usr/share/grub/grub-mkconfig_lib}" || print_error "grub-mkconfig_lib couldn't be found"
[[ "$(${grub_probe} --target="fs" / 2>/dev/null)" != "btrfs" ]] && print_error "Root filesystem isn't btrfs"
printf "Detecting snapshots ...\n" >&2 ;
## Submenu name
distro=$(awk -F "=" '/^NAME=/ {gsub(/"/, "", $2); print $2}' /etc/os-release)
submenuname=${GRUB_BTRFS_SUBMENUNAME:-"${distro:-Linux} snapshots"}
## Limit snapshots to show in the Grub menu (default=50)
limit_snap_show="${GRUB_BTRFS_LIMIT:-50}"
## How to sort snapshots list
btrfs_subvolume_sort="--sort=${GRUB_BTRFS_SUBVOLUME_SORT:-"-rootid"}"
## Customize GRUB directory, where "grub.cfg" file is saved
grub_directory=${GRUB_BTRFS_GRUB_DIRNAME:-"/boot/grub"}
## Customize BOOT directory, where kernels/initrams/microcode is saved.
boot_directory=${GRUB_BTRFS_BOOT_DIRNAME:-"/boot"}
## Password protection management for submenu
# Protection support for submenu (--unrestricted)
case "${GRUB_BTRFS_DISABLE_PROTECTION_SUBMENU,,}" in
    true)   unrestricted_access_submenu="--unrestricted ";;
    *)      unrestricted_access_submenu=""
esac
# Authorized users (--users foo,bar)
if [ -n "${GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS}" ] ; then
    protection_authorized_users="--users ${GRUB_BTRFS_PROTECTION_AUTHORIZED_USERS} "
fi
## Probe informations of Root and Boot devices
# Probe info "Root partition"
root_device=$(${grub_probe} --target=device /) # Root device
root_uuid=$(${grub_probe} --device ${root_device} --target="fs_uuid" 2>/dev/null) # UUID of the root device
root_uuid_subvolume=$(btrfs subvolume show / 2>/dev/null) || print_error "UUID of the root subvolume is not available"; # If UUID of root subvolume is not available, then exit
root_uuid_subvolume=$(awk -F":" 'match($1, /(^[ \t]+UUID)/) {sub(/^[ \t]+/, "", $2); print $2}' <<< "$root_uuid_subvolume") # UUID of the root subvolume
# Probe info "Boot partition"
boot_device=$(${grub_probe} --target=device ${boot_directory}) # Boot device
boot_uuid=$(${grub_probe} --device ${boot_device} --target="fs_uuid" 2>/dev/null) # UUID of the boot device
boot_uuid_subvolume=$(btrfs subvolume show "$boot_directory" 2>/dev/null) || boot_uuid_subvolume=" UUID: $root_uuid_subvolume"; # If boot folder isn't a subvolume, then UUID=root_uuid_subvolume
boot_uuid_subvolume=$(awk -F":" 'match($1, /(^[ \t]+UUID)/) {sub(/^[ \t]+/, "", $2); print $2}' <<< "$boot_uuid_subvolume") # UUID of the boot subvolume
boot_hs=$(${grub_probe} --device ${boot_device} --target="hints_string" 2>/dev/null) # hints string
boot_fs=$(${grub_probe} --device ${boot_device} --target="fs" 2>/dev/null) # Type filesystem of boot device
## Parameters passed to the kernel
kernel_parameters="$GRUB_CMDLINE_LINUX $GRUB_CMDLINE_LINUX_DEFAULT"
## Mount point location
grub_btrfs_mount_point=$(mktemp -dt grub-btrfs.XXXXXXXXXX)
## Class for theme
CLASS="--class snapshots --class gnu-linux --class gnu --class os"
## save IFS
oldIFS=$IFS
## Detect uuid requirement (lvm,btrfs...)
check_uuid_required() {
if [ "x${root_uuid}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
    || ! test -e "/dev/disk/by-uuid/${root_uuid}" \
    || ( test -e "${root_device}" && uses_abstraction "${root_device}" lvm ); then
    LINUX_ROOT_DEVICE=${root_device}
else
    LINUX_ROOT_DEVICE=UUID=${root_uuid}
fi
}
## Detect rootflags
detect_rootflags()
{
    local fstabflags=$(grep -oE '^\s*[^#][[:graph:]]+\s+/\s+btrfs\s+[[:graph:]]+' "${grub_btrfs_mount_point}/${snap_dir_name_trim}/etc/fstab" \
                        | sed -E 's/^.*[[:space:]]([[:graph:]]+)$/\1/;s/,?subvol(id)?=[^,$]+//g;s/^,//')
    rootflags="rootflags=${fstabflags:+$fstabflags,}${GRUB_BTRFS_ROOTFLAGS:+$GRUB_BTRFS_ROOTFLAGS,}"
}
unmount_grub_btrfs_mount_point()
{
if [[ -d "$grub_btrfs_mount_point" ]]; then
    local wait=true
    local wait_max=0
    printf "Unmount %s .." "$grub_btrfs_mount_point" >&2;
    while $wait; do
        if grep -qs "$grub_btrfs_mount_point" /proc/mounts; then
            wait_max=$((1+wait_max))
            if umount "$grub_btrfs_mount_point" >/dev/null 2>&1; then
                wait=false # umount successful
                printf " Success\n" >&2;
            elif [[ $wait_max = 10 ]]; then
                printf "\nWarning: Unable to unmount %s in %s\n" "$root_device" "$grub_btrfs_mount_point" >&2;
                break;
            else
                printf "." >&2 ; # output to show that the script is alive
                sleep 2 # wait 2 seconds before retry
            fi
        else
            wait=false # not mounted
            printf " Success\n" >&2;
        fi
    done
    if [[ "$wait" != true ]]; then
        if ! rm -d "$grub_btrfs_mount_point" >/dev/null 2>&1; then
            printf "Unable to delete %s: Device or ressource is busy\n" "$grub_btrfs_mount_point" >&2;
        fi
    fi
fi
}
## Create entry
entry()
{
    echo "$@" >> "$grub_directory/grub-btrfs.new"
}
## menu entries
make_menu_entries()
{
## \" required for snap,kernels,init,microcode with space in their name
    entry "submenu '${title_menu}' {
    submenu '${title_submenu}' { echo }"
    for k in "${name_kernel[@]}"; do
        [[ ! -f "${boot_dir}"/"${k}" ]] && continue;
        kversion=${k#*"-"}
        for i in "${name_initramfs[@]}"; do
            if [[ "${name_initramfs}" != "x" ]] ; then
                # prefix_i=${i%%"-"*}
                suffix_i=${i#*"-"}
                # alt_suffix_i=${i##*"-"}
                if   [ "${kversion}" = "${suffix_i}" ];                 then i="${i}";
                elif [ "${kversion}.img" = "${suffix_i}" ];             then i="${i}";
                elif [ "${kversion}-fallback.img" = "${suffix_i}" ];    then i="${i}";
                elif [ "${kversion}.gz" = "${suffix_i}" ];              then i="${i}";
                else continue;
                fi
                for u in "${name_microcode[@]}"; do
                    if [[ "${name_microcode}" != "x" ]] ; then
                    entry "
    menuentry '  "${k}" & "${i}" & "${u}"' ${CLASS} "\$menuentry_id_option" 'gnulinux-snapshots-$boot_uuid' {"
                    else
                    entry "
    menuentry '  "${k}" & "${i}"' ${CLASS} "\$menuentry_id_option" 'gnulinux-snapshots-$boot_uuid' {"
                    fi
                    entry "\
        if [ x\$feature_all_video_module = xy ]; then
        insmod all_video
        fi
        set gfxpayload=keep
        insmod ${boot_fs}
        if [ x\$feature_platform_search_hint = xy ]; then
            search --no-floppy --fs-uuid  --set=root ${boot_hs} ${boot_uuid}
        else
            search --no-floppy --fs-uuid  --set=root ${boot_uuid}
        fi
        echo 'Loading Snapshot: "${snap_date_trim}" "${snap_dir_name_trim}"'
        echo 'Loading Kernel: "${k}" ...'
        linux \"${boot_dir_root_grub}/"${k}"\" root="${LINUX_ROOT_DEVICE}" ${kernel_parameters} ${rootflags}subvol=\""${snap_dir_name_trim}"\""
                    if [[ "${name_microcode}" != "x" ]] ; then
                        entry "\
        echo 'Loading Microcode & Initramfs: "${u}" "${i}" ...'
        initrd \"${boot_dir_root_grub}/"${u}"\" \"${boot_dir_root_grub}/"${i}"\""
                    else
                        entry "\
        echo 'Loading Initramfs: "${i}" ...'
        initrd \"${boot_dir_root_grub}/"${i}"\""
                    fi
                    entry "    }"
                    count_warning_menuentries=$((1+count_warning_menuentries))
                done
            else
                for u in "${name_microcode[@]}"; do
                    if [[ "${name_microcode}" != "x" ]] ; then
                    entry "
    menuentry '  "${k}" & "${u}"' ${CLASS} "\$menuentry_id_option" 'gnulinux-snapshots-$boot_uuid' {"
                    else
                    entry "
    menuentry '  "${k}"' ${CLASS} "\$menuentry_id_option" 'gnulinux-snapshots-$boot_uuid' {"
                    fi
                    entry "\
        if [ x\$feature_all_video_module = xy ]; then
        insmod all_video
        fi
        set gfxpayload=keep
        insmod ${boot_fs}
        if [ x\$feature_platform_search_hint = xy ]; then
            search --no-floppy --fs-uuid  --set=root ${boot_hs} ${boot_uuid}
        else
            search --no-floppy --fs-uuid  --set=root ${boot_uuid}
        fi
        echo 'Loading Snapshot: "${snap_date_trim}" "${snap_dir_name_trim}"'
        echo 'Loading Kernel: "${k}" ...'
        linux \"${boot_dir_root_grub}/"${k}"\" root="${LINUX_ROOT_DEVICE}" ${kernel_parameters} ${rootflags}subvol=\""${snap_dir_name_trim}"\""
                    if [[ "${name_microcode}" != "x" ]] ; then
                        entry "\
        echo 'Loading Microcode: "${u}" ...'
        initrd \"${boot_dir_root_grub}/"${u}"\""
                    fi
                    entry "    }"
                    count_warning_menuentries=$((1+count_warning_menuentries))
                done
            fi
        done
    done
    entry  "}"
}
## Trim a string from leading and trailing whitespaces
trim() {
    local var="$*"
    var="${var#"${var%%[![:space:]]*}"}"
    var="${var%"${var##*[![:space:]]}"}"
    echo -n "$var"
}
## List of snapshots on filesystem
snapshot_list()
{
    local snapper_info="info.xml"
    local timeshift_info="info.json"
    local date_snapshots=()
    local path_snapshots=()
    local type_snapshots=()
    local description_snapshots=()
    IFS=$'\n'
    for snap in $(btrfs subvolume list -sa "${btrfs_subvolume_sort}" /); do # Parse btrfs snapshots
        IFS=$oldIFS
        snap=($snap)
        local path_snapshot=${snap[@]:13:${#snap[@]}}
        if [ "$path_snapshot" = "DELETED" ]; then continue; fi # Discard deleted snapshots
        [[ ${path_snapshot%%"/"*} == "<FS_TREE>" ]] && path_snapshot=${path_snapshot#*"/"} # Remove the "<FS_TREE>" string at the beginning of the path
        # ignore specific path during run "grub-mkconfig"
        if [ -n "${GRUB_BTRFS_IGNORE_SPECIFIC_PATH}" ] ; then
            for isp in "${GRUB_BTRFS_IGNORE_SPECIFIC_PATH[@]}" ; do
                [[ "${path_snapshot}" == "${isp}" ]] && continue 2;
            done
        fi
        if [ -n "${GRUB_BTRFS_IGNORE_PREFIX_PATH}" ] ; then
            for isp in "${GRUB_BTRFS_IGNORE_PREFIX_PATH[@]}" ; do
                [[ "${path_snapshot}" == "${isp}"/* ]] && continue 2;
            done
        fi
        [[ ! -d "$grub_btrfs_mount_point/$path_snapshot/boot" ]] && continue; # Discard snapshots without /boot folder
        # Parse Snapper & timeshift informations
        local type_snapshot="N/A"
        local description_snapshot="N/A"
        if [[ -s "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info" ]] ; then
            type_snapshot=$(awk -F"<|>" 'match($2, /^type/) {print $3}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info") # search matching string beginning "type"
            description_snapshot=$(awk -F"<|>" 'match($2, /^description/) {print $3}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$snapper_info") # search matching string beginning "description"
        elif [[ -s "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info" ]] ; then
            type_snapshot=$(awk -F" : " 'match($1, /^[ \t]+"tags"/) {gsub(/"|,/,"");print $2}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info") # search matching string beginning "tags"
            description_snapshot=$(awk -F" : " 'match($1, /^[ \t]+"comments"/) {gsub(/"|,/,"");print $2}' "$grub_btrfs_mount_point/${path_snapshot%"/"*}/$timeshift_info") # search matching string beginning "comments"
        fi
        [[ -z "$type_snapshot" ]] && type_snapshot=("N/A")
        [[ -z "$description_snapshot" ]] && description_snapshot=("N/A")
        # ignore specific {type,tag,description} of snapshot during run "grub-mkconfig"
        if [ -n "${GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE}" ] ; then
            for ist in "${GRUB_BTRFS_IGNORE_SNAPSHOT_TYPE[@]}" ; do
                [[ "${type_snapshot}" == "${ist}" ]] && continue 2;
            done
        fi
        if [ -n "${GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION}" ] ; then
            for isd in "${GRUB_BTRFS_IGNORE_SNAPSHOT_DESCRIPTION[@]}" ; do
                [[ "${description_snapshot}" == "${isd}" ]] && continue 2;
            done
        fi
        local date_snapshot="${snap[@]:10:2}"
        date_snapshots+=("$date_snapshot")
        path_snapshots+=("$path_snapshot")
        type_snapshots+=("$type_snapshot")
        description_snapshots+=("$description_snapshot")
    done
    # Find max length of a snapshot date, needed for pretty formatting
    local max_date_length=0
    for i in "${date_snapshots[@]}"; do
        local length="${#i}"
        [[ "$length" -gt "$max_date_length" ]] && max_date_length=$length
    done
    # Find max length of a snapshot name, needed for pretty formatting
    local max_path_length=0
    for i in "${path_snapshots[@]}"; do
        local length="${#i}"
        [[ "$length" -gt "$max_path_length" ]] && max_path_length=$length
    done
    # Find max length of a snapshot type, needed for pretty formatting
    local max_type_length=0
    for i in "${type_snapshots[@]}"; do
        local length="${#i}"
        [[ "$length" -gt "$max_type_length" ]] && max_type_length=$length
    done
    # Find max length of a snapshot description, needed for pretty formatting
    local max_description_length=0
    for i in "${description_snapshots[@]}"; do
        local length="${#i}"
        [[ "$length" -gt "$max_description_length" ]] && max_description_length=$length
    done
    for i in "${!path_snapshots[@]}"; do
        printf -v entry "%-${max_date_length}s | %-${max_path_length}s | %-${max_type_length}s | %-${max_description_length}s |" "${date_snapshots[$i]}" "${path_snapshots[$i]}" "${type_snapshots[$i]}" "${description_snapshots[$i]}"
        echo "$entry"
    done
    IFS=$oldIFS
}
## Parse snapshots in snapshot_list
parse_snapshot_list()
{
    snap_date=" $(echo "$item" | cut -d'|' -f1)" # column_1, first space is necessary for pretty formatting
    snap_date_trim="$(trim "$snap_date")"
    snap_dir_name="$(echo "$item" | cut -d'|' -f2)" # column_2
    snap_dir_name_trim="$(trim "$snap_dir_name")"
    snap_snapshot="$snap_dir_name" # Used by "title_format" function
    snap_type="$(echo "$item" | cut -d'|' -f3)" # column_3
    snap_description="$(echo "$item" | cut -d'|' -f4)" # column_4
}
## Detect kernels in "boot_directory"
detect_kernel()
{
    list_kernel=()
    # Original kernel (auto-detect)
    for okernel in  "${boot_dir}"/vmlinuz-* \
                    "${boot_dir}"/vmlinux-* \
                    "${boot_dir}"/kernel-* ; do
        [[ ! -f "${okernel}" ]] && continue;
        list_kernel+=("$okernel")
    done
    # Custom name kernel in "GRUB_BTRFS_NKERNEL"
    if [ -n "${GRUB_BTRFS_NKERNEL}" ] ; then
        for ckernel in "${boot_dir}/${GRUB_BTRFS_NKERNEL[@]}" ; do
            [[ ! -f "${ckernel}" ]] && continue;
            list_kernel+=("$ckernel")
        done
    fi
}
## Detect initramfs in "boot_directory"
detect_initramfs()
{
    list_initramfs=()
    # Original initramfs (auto-detect)
    for oinitramfs in   "${boot_dir}"/initrd.img-* \
                        "${boot_dir}"/initramfs-* \
                        "${boot_dir}"/initrd-* ; do
        [[ ! -f "${oinitramfs}" ]] && continue;
        list_initramfs+=("$oinitramfs")
    done
    # Custom name initramfs in "GRUB_BTRFS_NINIT"
    if [ -n "${GRUB_BTRFS_NINIT}" ] ; then
        for cinitramfs in "${boot_dir}/${GRUB_BTRFS_NINIT[@]}" ; do
            [[ ! -f "${cinitramfs}" ]] && continue;
            list_initramfs+=("$cinitramfs")
        done
    fi
    if [ -z "${list_initramfs}" ]; then list_initramfs=(x); fi
}
## Detect microcode in "boot_directory"
detect_microcode()
{
    list_ucode=()
    # Original intel/amd microcode (auto-detect)
    # See "https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html"
    for oiucode in  "${boot_dir}"/intel-uc.img \
                    "${boot_dir}"/intel-ucode.img \
                    "${boot_dir}"/amd-uc.img \
                    "${boot_dir}"/amd-ucode.img \
                    "${boot_dir}"/early_ucode.cpio \
                    "${boot_dir}"/microcode.cpio; do
        [[ ! -f "${oiucode}" ]] && continue;
        list_ucode+=("$oiucode")
    done
    # Custom name microcode in "GRUB_BTRFS_CUSTOM_MICROCODE"
    if [ -n "${GRUB_BTRFS_CUSTOM_MICROCODE}" ] ; then
        for cucode in "${boot_dir}/${GRUB_BTRFS_CUSTOM_MICROCODE[@]}" ; do
            [[ ! -f "${cucode}" ]] && continue
            list_ucode+=("$cucode")
        done
    fi
    if [ -z "${list_ucode}" ]; then list_ucode=(x); fi
}
## Title format in Grub-menu
declare -A title_column=( [date]=Date [snapshot]=Snapshot [type]=Type [description]=Description ) # Column title that appears in the header
title_format()
{
    title_menu="|" # "|" is for visuals only
    title_submenu="|" # "|" is for visuals only
    [[ -z "${GRUB_BTRFS_TITLE_FORMAT}" ]] && GRUB_BTRFS_TITLE_FORMAT=("date" "snapshot" "type" "description"); # Default parameters
    for key in "${!GRUB_BTRFS_TITLE_FORMAT[@]}"; do
            [[ ${GRUB_BTRFS_TITLE_FORMAT[$key],,} != "${title_column[${GRUB_BTRFS_TITLE_FORMAT[$key]}],,}" ]] && continue; # User used wrong parameter
            declare -n var="snap_${GRUB_BTRFS_TITLE_FORMAT[$key],,}" # $var is a indirect variable
            if [[ "${#var}" -lt "${#title_column[${GRUB_BTRFS_TITLE_FORMAT[$key],,}]}" ]]; then # Add extra spaces if length of $var is smaller than the length of column, needed for pretty formatting
                printf -v var "%-$(((${#title_column[${GRUB_BTRFS_TITLE_FORMAT[$key],,}]}-${#var})+${#var}))s" "${var}";
            fi
		    var="$(sed  "s/'//g"  <(echo "${var}"))"
            title_menu+="${var}|"
            title_submenu+=" $(trim "${var}") |"
    done
}
# Adds a header to the grub-btrfs.cfg file
header_menu()
{
    local header_entry=""
    [[ -z "${GRUB_BTRFS_TITLE_FORMAT}" ]] && GRUB_BTRFS_TITLE_FORMAT=("date" "snapshot" "type" "description"); # Default parameters
        for key in "${!GRUB_BTRFS_TITLE_FORMAT[@]}"; do
            [[ ${GRUB_BTRFS_TITLE_FORMAT[$key],,} != "${title_column[${GRUB_BTRFS_TITLE_FORMAT[$key]}],,}" ]] && continue; # User used wrong parameter
            declare -n var="snap_${GRUB_BTRFS_TITLE_FORMAT[$key],,}" # $var is a indirect variable
            # Center alignment, needed for pretty formatting
            local lenght_title_column_left=$((${#var}-${#title_column[${GRUB_BTRFS_TITLE_FORMAT[$key],,}]}))
            ((lenght_title_column_left%2)) && lenght_title_column_left=$((lenght_title_column_left+1));  # If the difference is an odd number, add an extra space
            lenght_title_column_left=$((((lenght_title_column_left/2)+${#title_column[${GRUB_BTRFS_TITLE_FORMAT[$key],,}]})));
            local lenght_title_column_right=$(((${#var}-lenght_title_column_left)+1)) #+1 is necessary for extra "|" character
            header_entry+=$(printf "%${lenght_title_column_left}s%${lenght_title_column_right}s" "${title_column[${GRUB_BTRFS_TITLE_FORMAT[$key],,}]}" "|") # Final "|" is for visuals only
        done
    sed -i "1imenuentry '|${header_entry}' { echo }" "$grub_directory/grub-btrfs.new" # First "|" is for visuals only
}
## List of kernels, initramfs and microcode in snapshots
boot_bounded()
{
    # Initialize menu entries
    IFS=$'\n'
    for item in $(snapshot_list); do
        [[ ${limit_snap_show} -le 0 ]] && break; # fix: limit_snap_show=0
        IFS=$oldIFS
        parse_snapshot_list
        boot_dir="$grub_btrfs_mount_point/$snap_dir_name_trim$boot_directory"
        detect_kernel
        if [ -z "${list_kernel}" ]; then continue; fi
        name_kernel=("${list_kernel[@]##*"/"}")
        detect_initramfs
        name_initramfs=("${list_initramfs[@]##*"/"}")
        detect_microcode
        name_microcode=("${list_ucode[@]##*"/"}")
        detect_rootflags
        title_format
        boot_dir_root_grub="$(make_system_path_relative_to_its_root "${boot_dir}")" # convert "boot_directory" to root of GRUB (e.g /boot become /)
        make_menu_entries
        # show snapshot found during run "grub-mkconfig"
        if [[ "${GRUB_BTRFS_SHOW_SNAPSHOTS_FOUND:-"true"}" = "true" ]]; then
            printf "Found snapshot: %s\n" "$item" >&2 ;
        fi
        # Limit snapshots found during run "grub-mkconfig"
        count_limit_snap=$((1+count_limit_snap))
        [[ $count_limit_snap -ge $limit_snap_show ]] && break;
    done
    IFS=$oldIFS
}
boot_separate()
{
    boot_dir="${boot_directory}"
    boot_dir_root_grub="$(make_system_path_relative_to_its_root "${boot_dir}")" # convert "boot_directory" to root of GRUB (e.g /boot become /)
    detect_kernel
    if [ -z "${list_kernel}" ]; then print_error "Kernels not found."; fi
    name_kernel=("${list_kernel[@]##*"/"}")
    detect_initramfs
    name_initramfs=("${list_initramfs[@]##*"/"}")
    detect_microcode
    name_microcode=("${list_ucode[@]##*"/"}")
    # Initialize menu entries
    IFS=$'\n'
    for item in $(snapshot_list); do
        [[ ${limit_snap_show} -le 0 ]] && break; # fix: limit_snap_show=0
        IFS=$oldIFS
        parse_snapshot_list
        detect_rootflags
        title_format
        make_menu_entries
        # show snapshot found during run "grub-mkconfig"
        if [[ "${GRUB_BTRFS_SHOW_SNAPSHOTS_FOUND:-"true"}" = "true" ]]; then
            printf "Found snapshot: %s\n" "$item" >&2 ;
        fi
        # Limit snapshots found during run "grub-mkconfig"
        count_limit_snap=$((1+count_limit_snap))
        [[ $count_limit_snap -ge $limit_snap_show ]] && break;
    done
    IFS=$oldIFS
}
rm -f "$grub_directory/grub-btrfs.new"
> "$grub_directory/grub-btrfs.new" # Create a "grub-btrfs.new" file in "grub_directory"
# Create mount point then mounting
[[ ! -d $grub_btrfs_mount_point ]] && mkdir -p "$grub_btrfs_mount_point"
mount -o ro,subvolid=5 /dev/disk/by-uuid/"$root_uuid" "$grub_btrfs_mount_point/"
trap "unmount_grub_btrfs_mount_point" EXIT # unmounting mount point on EXIT signal
count_warning_menuentries=0 # Count menuentries
count_limit_snap=0 # Count snapshots
check_uuid_required
# Detects if /boot is a separate partition
[[ "${GRUB_BTRFS_OVERRIDE_BOOT_PARTITION_DETECTION,,}" == "true" ]] && printf "Override boot partition detection : enable \n" >&2 && boot_separate;
if [[ "$root_uuid" != "$boot_uuid" ]] || [[ "$root_uuid_subvolume" != "$boot_uuid_subvolume" ]]; then boot_separate ; else boot_bounded ; fi
# Show warn, menuentries exceeds 250 entries
[[ $count_warning_menuentries -ge 250 ]] && printf "Generated %s total GRUB entries. You might experience issues loading snapshots menu in GRUB.\n" "${count_warning_menuentries}" >&2 ;
# Show total found snapshots
if [[ "${GRUB_BTRFS_SHOW_TOTAL_SNAPSHOTS_FOUND:-"true"}" = "true" && -n "${count_limit_snap}" && "${count_limit_snap}" != "0" ]]; then
    printf "Found %s snapshot(s)\n" "${count_limit_snap}" >&2 ;
fi
# if no snapshot found, exit
if [[ "${count_limit_snap}" = "0" || -z "${count_limit_snap}" ]]; then
    print_error "No snapshots found."
fi
# Make a submenu in GRUB (grub.cfg) and move "grub-btrfs.new" to "grub-btrfs.cfg"
header_menu
if "${bindir}/${GRUB_BTRFS_SCRIPT_CHECK:-grub-script-check}" "$grub_directory/grub-btrfs.new"; then
    cat "$grub_directory/grub-btrfs.new" > "$grub_directory/grub-btrfs.cfg"
    rm -f "$grub_directory/grub-btrfs.new"
    cat << EOF
submenu '${submenuname}' ${protection_authorized_users}${unrestricted_access_submenu}{
    configfile "\${prefix}/grub-btrfs.cfg"
}
EOF
else
    print_error "Syntax errors were detected in generated ${grub_directory}/grub-btrfs.new file. Old grub-btrfs.cfg (if present) was not replaced."
fi
# warn when this script is run but there is no entry in grub.cfg
grep "snapshots-btrfs" "${grub_directory}/grub.cfg" || printf "\nWARNING: '%s' needs to run at least once to generate the snapshots (sub)menu entry in grub the main menu. \
After that this script can run alone to generate the snapshot entries.\n\n" "${GRUB_BTRFS_MKCONFIG:-grub-mkconfig}" >&2 ;

=================== nvme0n1p8/boot/grub/grub.cfg (filtered) ====================

Ubuntu   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-69-generic   37727857-6e69-4a10-a635-a5be91cf1fe2
Ubuntu, with Linux 5.15.0-67-generic   37727857-6e69-4a10-a635-a5be91cf1fe2
Windows Boot Manager (on nvme0n1p1)   osprober-efi-58E3-4E2B
KDE neon 5.27 (22.04) (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-35-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.19.0-32-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-67-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-60-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-58-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
GNU/Linux, with Linux 5.15.0-57-generic (on nvme0n1p5)   36eca5f9-c15c-4a03-8f2e-effa252f6371
### END /etc/grub.d/30_os-prober ###
UEFI Firmware Settings   uefi-firmware
### END /etc/grub.d/30_uefi-firmware ###

======================== nvme0n1p8/etc/fstab (filtered) ========================

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/nvme0n1p8 during installation
UUID=37727857-6e69-4a10-a635-a5be91cf1fe2 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=58E3-4E2B  /boot/efi       vfat    umask=0077      0       1

==================== nvme0n1p8/etc/default/grub (filtered) =====================

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_DISABLE_OS_PROBER=false

================= nvme0n1p8: Location of files loaded by Grub ==================

           GiB - GB             File                                 Fragment(s)
 793,400074005 = 851,906842624  boot/grub/grub.cfg                             1
 820,165069580 = 880,645537792  boot/vmlinuz                                   2
 829,641624451 = 890,820911104  boot/vmlinuz-5.15.0-67-generic                 2
 820,165069580 = 880,645537792  boot/vmlinuz-5.15.0-69-generic                 2
 829,641624451 = 890,820911104  boot/vmlinuz.old                               2
 827,537105560 = 888,561201152  boot/initrd.img                                4
 824,677730560 = 885,490970624  boot/initrd.img-5.15.0-67-generic              3
 827,537105560 = 888,561201152  boot/initrd.img-5.15.0-69-generic              4
 824,677730560 = 885,490970624  boot/initrd.img.old                            3

=================== nvme0n1p8: ls -l /etc/grub.d/ (filtered) ===================

-rwxr-xr-x 1 root root 18683 Apr 15  2022 10_linux
-rwxr-xr-x 1 root root 43031 Apr 15  2022 10_linux_zfs
-rwxr-xr-x 1 root root 14180 Apr 15  2022 20_linux_xen
-rwxr-xr-x 1 root root 13369 Apr 15  2022 30_os-prober
-rwxr-xr-x 1 root root  1372 Apr 15  2022 30_uefi-firmware
-rwxr-xr-x 1 root root   700 Feb 19  2022 35_fwupd
-rwxr-xr-x 1 root root   214 Apr 15  2022 40_custom
-rwxr-xr-x 1 root root   215 Apr 15  2022 41_custom



Suggested repair: ______________________________________________________________

The default repair of the Boot-Repair utility would reinstall the grub-efi of
nvme0n1p8,
using the following options:  nvme0n1p1/boot/efi
Additional repair would be performed: unhide-bootmenu-10s use-standard-efi-file restore-efi-backups

Final advice in case of suggested repair: ______________________________________

Please do not forget to make your UEFI firmware boot on the Ubuntu 22.04.2 LTS entry (nvme0n1p1/efi/****/grub****.efi (**** will be updated in the final message) file) !
If your computer reboots directly into Windows, try to change the boot order in your UEFI firmware.
If your UEFI firmware does not allow to change the boot order, change the default boot entry of the Windows bootloader.
For example you can boot into Windows, then type the following command in an admin command prompt:
bcdedit /set {bootmgr} path \EFI\****\grub****.efi (**** will be updated in the final message)

Plus de Manjaro dans Grub

#2Messageil y a 1 an

bonsoir
de quel version Grub parle tu , et quelle est la dernière distribution ( ou réparation ) a avoir installé Grub ?

Plus de Manjaro dans Grub

#3Messageil y a 1 an

Merci pour ta réponse Stéphane.

Le grub était celui installé par Manjaro, dernier os installé.

MAis maintenant je suis revenu à un grub classique en noir et blanc où apparaissent Win 11, Kubuntu et KDE Neon mais pas Manjaro.

Je ne sais pas comment on fait pour connaître sa version de grub.

Plus de Manjaro dans Grub

#4Messageil y a 1 an

alors à priori :
sans doute un Grub d'origine Debian ou Ubuntu , qui n'a pas a ce jour réussi a démarrer avec plusieurs fichiers
de config ( initramfs + microcode ) , et ce n'est pas une version 2.06 réel

1) tu vérifie la config actuelle de ta carte-mère ( vérification , pas de modification )
- Secureboot ( devrait être off )
- Legacy ou CSM ( devrait être off )
- tous les disques en AHCI( pas de raid )
- pas de Fastboot
- pas d'optane/RST

2) utilise-tu cryptoluks ? O/N

3) il te faut une clé à jour ( la version de grub 2.06 est r456 ) pour le live iso USB manjaro

Plus de Manjaro dans Grub

#5Messageil y a 1 an

bonsoir ,

pour la clé USB manjaro je recommande de passer par la commande dd , avec ventoy c'est galère pour le probleme clavier et langage

si c'est bien en UEFI et pas en btrfs,
tu démarre sur le live iso USB manjaro
tu ouvre le terminal

lsblk -fs 
manjaro-chroot -a ( tu saisie 1 si il y a une seule ligne 0 ) 
cat /etc/fstab ( tu dois retrouver UUID Boot/efi  qui doit matcher avec la commande précédente )
efibootmgr ( vérification de la liste avant modification )
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
update-grub
mkinitcpio -P
efibootmgr ( vérifie , il doit être en position 0 ) 
exit ( fin de chroot , obligatoire )
Répondre