Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/04/2021, à 17:14

Massydra

Démarrage lent Ubuntu 20.04

Bonjour tout le monde,

Je suis nouveau dans ce forum. j'aurais besoin de votre précieuse aide. J'ai un dual boot sur mon pc i7 ; windows 10 et ubuntu 20.04 sont installés séparément sur deux disques durs SSD différents. J'ai également deux disques durs HDD . Le windows démarre au bout de 23 secondes. Mais depuis quelques jours,  le démarrage Ubuntu est très lent. Il met 1minute et 23 secondes pour démarrer. Une fois démarré , il marche très bien.

Y a t il une solution pour rendre le démarrage plus rapide ?

Boot-info rapport : https://paste.ubuntu.com/p/4wMYYJrzTY/

Je vous remercie d'avance.

Hors ligne

#2 Le 18/04/2021, à 17:19

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonjour,

Collage du Boot-Info, pour les spécialistes :

boot-info-4ppa130                                              [20210418_1735]

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

 => Grub2 (v2.00) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for /boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_msdos biosdisk search_fs_uuid
    ---------------------------------------------------------------------------
    
    config script
    ---------------------------------------------------------------------------
    search.fs_uuid b8b2710d-e551-4443-b9a2-f05cea163c64 root hd1,msdos1 
    set prefix=($root)'/boot/grub'
    
    ---------------------------------------------------------------------------
 => libparted MBR boot code is installed in the MBR of /dev/sdb.
 => Windows 7/8/2012 is installed in the MBR of /dev/sdc.
 => Grub2 (v2.00) is installed in the MBR of /dev/sdd and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (,msdos7)/boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_msdos biosdisk
    ---------------------------------------------------------------------------

sda1: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows 7/2008: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /boot/bcd

sda2: __________________________________________________________________________

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

sda3: __________________________________________________________________________

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

sda4: __________________________________________________________________________

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

sdb1: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 20.04.2 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /etc/default/grub 
                       /boot/grub/i386-pc/core.img

sdb2: __________________________________________________________________________

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

sdb5: __________________________________________________________________________

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

sdb6: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        

sdc1: __________________________________________________________________________

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

sdd1: __________________________________________________________________________

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


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

OS#1:   L'OS actuellement utilisé - Ubuntu 20.04.2 LTS CurrentSession on sdb1
OS#2:   Windows 7 (boot) on sda1
OS#3:   Windows 10 (boot) on sda2
OS#4:   Windows 8 or 10 on sda3

============================ Architecture/Host Info ============================

CPU architecture: 64-bit
BOOT_IMAGE of the installed session in use:
/boot/vmlinuz-5.8.0-50-generic root=UUID=b8b2710d-e551-4443-b9a2-f05cea163c64 ro quiet splash vt.handoff=7


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

This installed-session is not in EFI-mode.

68dfa19b4edf4d0b578c311623dd011e   sda1/boot/bootx64.efi


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

Disks info: ____________________________________________________________________

sdb	: notGPT,	no-BIOSboot,	has-noESP, 	not-usb,	not-mmc, has-os,	2048 sectors * 512 bytes
sda	: notGPT,	no-BIOSboot,	has-noESP, 	not-usb,	not-mmc, has-os,	2048 sectors * 512 bytes
sdc	: notGPT,	no-BIOSboot,	has-noESP, 	not-usb,	not-mmc, no-os,	2048 sectors * 512 bytes
sdd	: notGPT,	no-BIOSboot,	has-noESP, 	not-usb,	not-mmc, no-os,	2048 sectors * 512 bytes

Partitions info (1/3): _________________________________________________________

sdb1	: is-os,	64, apt-get,	grub-pc ,	grub2,	grub-install,	grubenv-ok,	update-grub,	farbios
sda1	: is-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	not-far
sda2	: is-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	not-far
sda3	: is-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
sda4	: no-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
sdb6	: no-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
sdc1	: no-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios
sdd1	: no-os,	32, nopakmgr,	no-docgrub,	nogrub,	nogrubinstall,	no-grubenv,	noupdategrub,	farbios

Partitions info (2/3): _________________________________________________________

sdb1	: isnotESP,	fstab-without-efi,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
sda1	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	bootmgr,	is-winboot
sda2	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	bootmgr,	is-winboot
sda3	: isnotESP,	part-has-no-fstab,	no-nt,	haswinload,	no-recov-nor-hid,	no-bmgr,	notwinboot
sda4	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
sdb6	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
sdc1	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot
sdd1	: isnotESP,	part-has-no-fstab,	no-nt,	no-winload,	no-recov-nor-hid,	no-bmgr,	notwinboot

Partitions info (3/3): _________________________________________________________

sdb1	: not-sepboot,	with-boot,	fstab-without-boot,	not-sep-usr,	with--usr,	fstab-without-usr,	customized,	sdb
sda1	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sda
sda2	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sda
sda3	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sda
sda4	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sda
sdb6	: maybesepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sdb
sdc1	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sdc
sdd1	: not-sepboot,	no-boot,	part-has-no-fstab,	not-sep-usr,	no---usr,	part-has-no-fstab,	std-grub.d,	sdd

fdisk -l (filtered): ___________________________________________________________

Disk sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk identifier: 0x9aa8eebb
      Boot     Start       End   Sectors   Size Id Type
sda1            2048  31920127  31918080  15.2G 27 Hidden NTFS WinRE
sda2  *     31920128  32124927    204800   100M  7 HPFS/NTFS/exFAT
sda3        32124928 936603505 904478578 431.3G  7 HPFS/NTFS/exFAT
sda4       936603648 937699327   1095680   535M 27 Hidden NTFS WinRE
Disk sdb: 223.58 GiB, 240057409536 bytes, 468862128 sectors
Disk identifier: 0xc552d39a
      Boot     Start       End   Sectors   Size Id Type
sdb1            2048 195311615 195309568  93.1G 83 Linux
sdb2       195313662 468860927 273547266 130.4G  5 Extended
sdb5       195313664 226562047  31248384  14.9G 82 Linux swap / Solaris
sdb6       226564096 468860927 242296832 115.5G 83 Linux
Disk sdc: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk identifier: 0x09032798
      Boot Start        End    Sectors   Size Id Type
sdc1  *     2048 1953521663 1953519616 931.5G  7 HPFS/NTFS/exFAT
Disk sdd: 596.18 GiB, 640135028736 bytes, 1250263728 sectors
Disk identifier: 0x00014e2b
      Boot Start        End    Sectors   Size Id Type
sdd1        2048 1250260991 1250258944 596.2G  7 HPFS/NTFS/exFAT

parted -lm (filtered): _________________________________________________________

sda:480GB:scsi:512:512:msdos:ATA TCSUNBOW X3 480G:;
1:1049kB:16.3GB:16.3GB:ntfs::msftres;
2:16.3GB:16.4GB:105MB:ntfs::boot;
3:16.4GB:480GB:463GB:ntfs::;
4:480GB:480GB:561MB:ntfs::msftres;
sdb:240GB:scsi:512:512:msdos:ATA SanDisk SSD PLUS:;
1:1049kB:100GB:100GB:ext4::;
2:100GB:240GB:140GB:::;
5:100GB:116GB:16.0GB:linux-swap(v1)::;
6:116GB:240GB:124GB:ext4::;
sdc:1000GB:scsi:512:512:msdos:ATA WDC WD10EACS-22D:;
1:1049kB:1000GB:1000GB:ntfs::boot;
sdd:640GB:scsi:512:512:msdos:ATA WDC WD6400AAKS-2:;
1:1049kB:640GB:640GB:ntfs::;

blkid (filtered): ______________________________________________________________

NAME   FSTYPE   UUID                                 PARTUUID                             LABEL           PARTLABEL
sda                                                                                                       
├─sda1 ntfs     5078C35F78C34288                     9aa8eebb-01                          Recovery        
├─sda2 ntfs     56E253FBE253DDB5                     9aa8eebb-02                          System Reserved 
├─sda3 ntfs     022C6DD92C6DC7ED                     9aa8eebb-03                                          
└─sda4 ntfs     4CB854E8B854D1D6                     9aa8eebb-04                                          
sdb                                                                                                       
├─sdb1 ext4     b8b2710d-e551-4443-b9a2-f05cea163c64 c552d39a-01                                          
├─sdb2                                               c552d39a-02                                          
├─sdb5 swap     86046774-1aa7-4682-9ede-a436d17aa522 c552d39a-05                                          
└─sdb6 ext4     cea94188-583b-44a7-a2f8-40bb954f6437 c552d39a-06                                          
sdc                                                                                                       
└─sdc1 ntfs     2E4E29A94E296B33                     09032798-01                          DATEN           
sdd                                                                                                       
└─sdd1 ntfs     62B85681B856539F                     00014e2b-01                          Nouveau nom     

df (filtered): _________________________________________________________________

                   Avail Use% Mounted on
sda1                5.9G  61% /mnt/boot-sav/sda1
sda2               70.2M  30% /mnt/boot-sav/sda2
sda3              253.6G  41% /mnt/boot-sav/sda3
sda4               88.9M  83% /mnt/boot-sav/sda4
sdb1               74.1G  14% /
sdb6                 98G   8% /home
sdc1              792.7G  15% /mnt/boot-sav/sdc1
sdd1              596.1G   0% /mnt/boot-sav/sdd1

Mount options: __________________________________________________________________

sda1              rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sda2              rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sda3              ro,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sda4              rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sdb1              rw,relatime,errors=remount-ro
sdb6              rw,relatime
sdc1              rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096
sdd1              rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096

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

Windows 10 (sur sda2)   56E253FBE253DDB5
### END /etc/grub.d/30_os-prober_proxy ###
Ubuntu   b8b2710d-e551-4443-b9a2-f05cea163c64
Ubuntu, avec Linux 5.8.0-50-generic   b8b2710d-e551-4443-b9a2-f05cea163c64
Ubuntu, avec Linux 5.8.0-49-generic   b8b2710d-e551-4443-b9a2-f05cea163c64
Ubuntu, avec Linux 5.8.0-44-generic   b8b2710d-e551-4443-b9a2-f05cea163c64
Windows 7 (sur sda1)   5078C35F78C34288

========================== sdb1/etc/fstab (filtered) ===========================

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdb1 during installation
UUID=b8b2710d-e551-4443-b9a2-f05cea163c64 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sdb6 during installation
UUID=cea94188-583b-44a7-a2f8-40bb954f6437 /home           ext4    defaults        0       2
# swap was on /dev/sdb5 during installation
UUID=86046774-1aa7-4682-9ede-a436d17aa522 none            swap    sw              0       0

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

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

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

           GiB - GB             File                                 Fragment(s)
  90,251117706 = 96,906399744   boot/grub/grub.cfg                             4
  77,008171082 = 82,686894080   boot/grub/i386-pc/core.img                     1
  32,221027374 = 34,597064704   boot/vmlinuz                                   1
   5,291290283 = 5,681479680    boot/vmlinuz-5.8.0-44-generic                  1
  37,041339874 = 39,772835840   boot/vmlinuz-5.8.0-49-generic                  1
  32,221027374 = 34,597064704   boot/vmlinuz-5.8.0-50-generic                  1
  37,041339874 = 39,772835840   boot/vmlinuz.old                               1
  90,143989563 = 96,791371776   boot/initrd.img                                3
  18,607093811 = 19,979214848   boot/initrd.img-5.8.0-44-generic               3
  89,657222748 = 96,268709888   boot/initrd.img-5.8.0-49-generic               3
  90,143989563 = 96,791371776   boot/initrd.img-5.8.0-50-generic               3
  89,657222748 = 96,268709888   boot/initrd.img.old                            3

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

-rwxr-xr-x 1 root root   930 mars  16 23:59 10_linux_proxy
-rwxr-xr-x 1 root root   251 mars  16 23:59 30_os-prober_proxy
-rwxr-xr-x 1 root root   930 mars  16 23:59 31_linux_proxy
-rwxr-xr-x 1 root root 42359 janv. 13 15:12 32_linux_zfs
-rwxr-xr-x 1 root root 12894 janv. 13 15:12 33_linux_xen
-rwxr-xr-x 1 root root   265 mars  16 23:59 34_memtest86+_proxy
-rwxr-xr-x 1 root root   251 mars  16 23:59 35_os-prober_proxy
-rwxr-xr-x 1 root root   265 mars  16 23:59 36_memtest86+_proxy
-rwxr-xr-x 1 root root   251 mars  16 23:59 37_os-prober_proxy
-rwxr-xr-x 1 root root  1424 janv. 13 15:12 38_uefi-firmware
-rwxr-xr-x 1 root root   214 janv. 13 15:12 40_custom
-rwxr-xr-x 1 root root   216 janv. 13 15:12 41_custom
drwxr-xr-x 4 root root  4096 mars  16 23:59 backup
drwxr-xr-x 2 root root  4096 mars  16 23:59 bin
drwxr-xr-x 2 root root  4096 mars  16 23:59 proxifiedScripts

======================== sdb1/etc/grub.d/31_linux_proxy ========================

#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/linux' | /etc/grub.d/bin/grubcfg_proxy "+'Ubuntu'~de61ebc97831f420b340cd5b4fd24117~
-*
-#text
+'SUBMENU' as 'Options avancées pour Ubuntu'{+'Options avancées pour Ubuntu'/*, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-45-generic'~0bac1e7a885e711b7a32324b4051b342~, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-45-generic (recovery mode)'~978650ccdba55ee1bf17eba3b6223956~, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-44-generic'~b6d3175bedd680cacbf375760f5bc8d2~, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-44-generic (recovery mode)'~f5d09f4110df9b660b05226338a7542b~, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-43-generic'~f209fa7543f5bcad3d6f9eb60b2fe5e8~, +'Options avancées pour Ubuntu'/'Ubuntu, avec Linux 5.8.0-43-generic (recovery mode)'~b43eec3b80f9c2053c8ad0d15a118a7a~}
"

========================= sdb1/etc/grub.d/32_linux_zfs =========================

#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2019 Canonical Ltd.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
prefix="/usr"
datarootdir="/usr/share"
ubuntu_recovery="1"
quiet_boot="1"
quick_boot="1"
gfxpayload_dynamic="1"
vt_handoff="1"
. "${pkgdatadir}/grub-mkconfig_lib"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
set -u
## Skip early if zfs utils isn't installed (instead of failing on first zpool list)
if ! `which zfs >/dev/null 2>&1`; then
    exit 0
fi
imported_pools=""
MNTDIR="$(mktemp -d ${TMPDIR:-/tmp}/zfsmnt.XXXXXX)"
ZFSTMP="$(mktemp -d ${TMPDIR:-/tmp}/zfstmp.XXXXXX)"
machine="$(uname -m)"
case "${machine}" in
    i?86) GENKERNEL_ARCH="x86" ;;
    mips|mips64) GENKERNEL_ARCH="mips" ;;
    mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
    arm*) GENKERNEL_ARCH="arm" ;;
    *) GENKERNEL_ARCH="${machine}" ;;
esac
RC=0
on_exit() {
    # Restore initial zpool import state
    for pool in ${imported_pools}; do
        zpool export "${pool}"
    done
    mountpoint -q "${MNTDIR}"  && umount "${MNTDIR}" || true
    rmdir "${MNTDIR}"
    rm -rf "${ZFSTMP}"
    exit "${RC}"
}
trap on_exit EXIT INT QUIT ABRT PIPE TERM
# List ONLINE and DEGRADED pools
import_pools() {
    # We have to ignore zpool import output, as potentially multiple / will be available,
    # and we need to autodetect all zpools this way with their real mountpoints.
    local initial_pools="$(zpool list | awk '{if (NR>1) print $1}')"
    local all_pools=""
    local imported_pools=""
    local err=""
    set +e
    err="$(zpool import -f -a -o cachefile=none -o readonly=on -N 2>&1)"
    # Only print stderr if the command returned an error
    # (it can echo "No zpool to import" with success, which we don't want)
    if [ $? -ne 0 ]; then
        echo "Some pools couldn't be imported and will be ignored:\n${err}" >&2
    fi
    set -e
    all_pools="$(zpool list | awk '{if (NR>1) print $1}')"
    for pool in ${all_pools}; do
        if echo "${initial_pools}" | grep -wq "${pool}"; then
            continue
        fi
        imported_pools="${imported_pools} ${pool}"
    done
    echo "${imported_pools}"
}
# List all the dataset with a root mountpoint
get_root_datasets() {
    local pools="$(zpool list | awk '{if (NR>1) print $1}')"
    for p in ${pools}; do
        local rel_pool_root=$(zpool get -H altroot ${p} | awk '{print $3}')
        if [ "${rel_pool_root}" = "-" ]; then
            rel_pool_root="/"
        fi
        zfs list -H -o name,canmount,mountpoint -t filesystem | grep -E '^'"${p}"'(\s|/[[:print:]]*\s)(on|noauto)\s'"${rel_pool_root}"'$' | awk '{print $1}'
    done
}
# find if given datasets can be mounted for directory and return its path (snapshot or real path)
# $1 is our current dataset name
# $2 directory path we look for (cannot contains /)
# $3 is the temporary mount directory to use
# $4 is the optional snapshot name
# return path for directory (which can be a mountpoint)
validate_system_dataset() {
    local dataset="$1"
    local directory="$2"
    local mntdir="$3"
    local snapshot_name="$4"
    local mount_path="${mntdir}/${directory}"
    if ! zfs list "${dataset}" >/dev/null 2>&1; then
        return
    fi
    if ! mount -o noatime,zfsutil -t zfs "${dataset}" "${mount_path}"; then
        grub_warn "Failed to find a valid directory '${directory}' for dataset '${dataset}@${snapshot_name}'. Ignoring"
        return
    fi
    local candidate_path="${mount_path}"
    if [ -n "${snapshot_name}" ]; then
        # WORKAROUND a bug https://github.com/zfsonlinux/zfs/issues/9958
        # Reading the content of a snapshot fails if it is not the first mount
        # for a given dataset
        first_mntdir=$(awk '{if ($1 == "'${dataset}'") {print $2; exit;}}' /proc/mounts)
        if [ "${first_mntdir}" = "/" ]; then
            # prevents // on candidate_path
            first_mntdir=""
        fi
        candidate_path="${first_mntdir}/.zfs/snapshot/${snapshot_name}"
    fi
    if [ -n "$(ls ${candidate_path} 2>/dev/null)" ]; then
        echo "${candidate_path}"
        return
    else
        mountpoint -q "${mount_path}" && umount "${mount_path}" || true
    fi
}
# Detect system directory relevant to the other, trying to find the ones associated on the current dataset or snapshot/
# System directory should be at most a direct child dataset of main datasets (no recursivity)
# We can fallback trying other zfs pools if no match has been found.
# $1 is our current dataset name (which can have @snapshot name)
# $2 directory path we look for (cannot contains /)
# $3 restrict_to_same_pool (true|false) force looking for dataset with the same basename in the current dataset pool only
# $4 is the temporary mount directory to use
# $5 is the optional etc directory (if not $2 is not etc itself)
# return path for directory (which can be a mountpoint)
get_system_directory() {
    local dataset_path="$1"
    local directory="$2"
    local restrict_to_same_pool="$3"
    local mntdir="$4"
    local etc_dir="$5"
    if [ -z "${etc_dir}" ]; then
        etc_dir="${mntdir}/etc"
    fi
    local candidate_path="${mntdir}/${directory}"
    # 1. Look for /etc/fstab first (which will mount even on top of non empty $directory)
    local mounted_fstab_entry="false"
    if [ -f "${etc_dir}/fstab" ]; then
        mount_args=$(awk '/^[^#].*[ \t]\/'"${directory}"'[ \t]/ {print "-t", $3, $1}' "${etc_dir}/fstab")
        if [ -n "${mount_args}" ]; then
            mounted_fstab_entry="true"
            mount -o noatime ${mount_args} "${candidate_path}" || mounted_fstab_entry="false"
        fi
    fi
    # If directory isn't empty. Only count if coming from /etc/fstab. Will be
    # handled below otherwise as we are interested in potential snapshots.
    if [ "${mounted_fstab_entry}" = "true" -a -n "$(ls ${candidate_path} 2>/dev/null)" ]; then
        echo "${candidate_path}"
        return
    fi
    # 2. Handle zfs case, which can be a snapshots.
    local base_dataset_path="${dataset_path}"
    local snapshot_name=""
    # For snapshots we extract the parent dataset
    if echo "${dataset_path}" | grep -q '@'; then
        base_dataset_path=$(echo "${dataset_path}" | cut -d '@' -f1)
        snapshot_name=$(echo "${dataset_path}" | cut -d '@' -f2)
    fi
    base_dataset_name="${base_dataset_path##*/}"
    base_pool="$(echo "${base_dataset_path}" | cut -d'/' -f1)"
    # 2.a) Look for child dataset included in base dataset, which needs to hold same snapshot if any
    candidate_path=$(validate_system_dataset "${base_dataset_path}/${directory}" "${directory}" "${mntdir}" "${snapshot_name}")
    if [ -n "${candidate_path}" ]; then
        echo "${candidate_path}"
        return
    fi
    # 2.b) Look for current dataset (which is already mounted as /)
    candidate_path="${mntdir}/${directory}"
    if [ -n "${snapshot_name}" ]; then
        # WORKAROUND a bug https://github.com/zfsonlinux/zfs/issues/9958
        # Reading the content of a snapshot fails if it is not the first mount
        # for a given dataset
        first_mntdir=$(awk '{if ($1 == "'${base_dataset_path}'") {print $2; exit;}}' /proc/mounts)
        if [ "${first_mntdir}" = "/" ]; then
            # prevents // on candidate_path
            first_mntdir=""
        fi
        candidate_path="${first_mntdir}/.zfs/snapshot/${snapshot_name}/${directory}"
    fi
    if [ -n "$(ls ${candidate_path} 2>/dev/null)" ]; then
        echo "${candidate_path}"
        return
    fi
    # 2.c) Look for every datasets in every pool which isn't the current dataset which holds:
    # - the same dataset name (last section) than our base_dataset_name
    # - mountpoint=directory
    # - canmount!=off
    all_same_base_dataset_name="$(zfs list -H -t filesystem -o name,canmount | awk '/^[^ ]+\/'"${base_dataset_name}"'[ \t](on|noauto)/ {print $1}') "
    # order by local pool datasets first
    current_pool_same_base_datasets=""
    other_pools_same_base_datasets=""
    root_pool=$(echo "${dataset_path%%/*}")
    for d in ${all_same_base_dataset_name}; do
        cur_dataset_pool=$(echo "${d%%/*}")
        if echo "${cur_dataset_pool}" | grep -wq "${root_pool}" 2>/dev/null ; then
            current_pool_same_base_datasets="${current_pool_same_base_datasets} ${d}"
        else
            other_pools_same_base_datasets="${other_pools_same_base_datasets} ${d}"
        fi
    done
    ordered_same_base_datasets="${current_pool_same_base_datasets} ${other_pools_same_base_datasets}"
    if [ "${restrict_to_same_pool}" = "true" ]; then
        ordered_same_base_datasets="${current_pool_same_base_datasets}"
    fi
    # now, loop over them
    for d in ${ordered_same_base_datasets}; do
        cur_dataset_pool=$(echo "${d%%/*}")
        rel_pool_root=$(zpool get -H altroot ${cur_dataset_pool} | awk '{print $3}')
        if [ "${rel_pool_root}" = "-" ]; then
            rel_pool_root=""
        fi
        # check mountpoint match
        candidate_dataset=$(zfs get -H mountpoint ${d} | grep -E "mountpoint\s${rel_pool_root}/${directory}\s" | awk '{print $1}')
        if [ -z "${candidate_dataset}" ]; then
            continue
        fi
        candidate_path=$(validate_system_dataset "${candidate_dataset}" "${directory}" "${mntdir}" "${snapshot_name}")
        if [ -n "${candidate_path}" ]; then
            echo "${candidate_path}"
            return
        fi
    done
    # 2.d) If we didn't find anything yet: check for persistent datasets corresponding to our mountpoint, with canmount=on without any snapshot associated:
    # Note: we go over previous datasets as well, but this is ok, as we didn't include them before.
    all_mountable_datasets="$(zfs list -t filesystem -o name,canmount | awk  '/^[^ ]+[ \t]+on/ {print $1}')"
    # order by local pool datasets first
    current_pool_datasets=""
    other_pools_datasets=""
    root_pool=$(echo "${dataset_path%%/*}")
    for d in ${all_mountable_datasets}; do
        cur_dataset_pool=$(echo "${d%%/*}")
        if echo "${cur_dataset_pool}" | grep -wq "${root_pool}" 2>/dev/null ; then
            current_pool_datasets="${current_pool_datasets} ${d}"
        else
            other_pools_datasets="${other_pools_datasets} ${d}"
        fi
    done
    ordered_datasets="${current_pool_datasets} ${other_pools_datasets}"
    if [ "${restrict_to_same_pool}" = "true" ]; then
        ordered_datasets="${current_pool_datasets}"
    fi
    for d in ${ordered_datasets}; do
        cur_dataset_pool=$(echo "${d%%/*}")
        rel_pool_root=$(zpool get -H altroot ${cur_dataset_pool} | awk '{print $3}')
        if [ "${rel_pool_root}" = "-" ]; then
            rel_pool_root=""
        fi
        # check mountpoint match
        candidate_dataset=$(zfs get -H mountpoint ${d} | grep -E "mountpoint\s${rel_pool_root}/${directory}\s" | awk '{print $1}')
        if [ -z "${candidate_dataset}" ]; then
            continue
        fi
        candidate_path=$(validate_system_dataset "${d}" "${directory}" "${mntdir}" "")
        if [ -n "${candidate_path}" ]; then
            echo "${candidate_path}"
            return
        fi
    done
    grub_warn "Failed to find a valid directory '${directory}' for dataset '${dataset_path}'. Ignoring"
    return
}
# Try our default layout bpool as a prefered layout (fast path)
# This is get_system_directory for boot optimized for our default installation layout
# $1 is our current dataset name (which can have @snapshot name)
# $2 is the temporary mount directory to use
# return path for directory (which can be a mountpoint) if found
try_default_layout_bpool() {
    local root_dataset_path="$1"
    local mntdir="$2"
    dataset_basename="${root_dataset_path##*/}"
    candidate_dataset="bpool/BOOT/${dataset_basename}"
    dataset_properties="$(zfs get -H mountpoint,canmount ${candidate_dataset} | cut -f3 | paste -sd ' ')"
    if [ -z "${dataset_properties}" ]; then
        return
    fi
    rel_pool_root=$(zpool get -H altroot bpool | awk '{print $3}')
    if [ "${rel_pool_root}" = "-" ]; then
        rel_pool_root=""
    fi
    snapshot_name="${dataset_basename##*@}"
    [ "${snapshot_name}" = "${dataset_basename}" ] && snapshot_name=""
    if [ -z "${snapshot_name}" ]; then
        if ! echo "${dataset_properties}" | grep -Eq "${rel_pool_root}/boot (on|noauto)"; then
            return
        fi
    else
        candidate_dataset=$(echo "${candidate_dataset}" | cut -d '@' -f1)
    fi
    validate_system_dataset "${candidate_dataset}" "boot" "${mntdir}" "${snapshot_name}"
}
# Return if secure boot is enabled on that system
is_secure_boot_enabled() {
    if LANG=C mokutil --sb-state 2>/dev/null | grep -qi enabled; then
        echo "true"
        return
    fi
    echo "false"
    return
}
# Given a filesystem or snapshot dataset, returns dataset|machine id|pretty name|last used
# $1 is dataset we want information from
# $2 is the temporary mount directory to use
get_dataset_info() {
    local dataset="$1"
    local mntdir="$2"
    local base_dataset="${dataset}"
    local etc_dir="${mntdir}/etc"
    local is_snapshot="false"
    # For snapshot we extract the parent dataset
    if echo "${dataset}" | grep -q '@'; then
        base_dataset=$(echo "${dataset}" | cut -d '@' -f1)
        is_snapshot="true"
    fi
    mount -o noatime,zfsutil -t zfs "${base_dataset}" "${mntdir}"
    # read machine-id/os-release from /etc
    etc_dir=$(get_system_directory "${dataset}" "etc" "true" "${mntdir}" "")
    if [ -z  "${etc_dir}" ]; then
        grub_warn "Ignoring ${dataset}"
        mountpoint -q "${mntdir}/etc" && umount "${mntdir}/etc" || true
        umount "${mntdir}"
        return
    fi
    machine_id=""
    if [ -f "${etc_dir}/machine-id" ]; then
        machine_id=$(cat "${etc_dir}/machine-id")
    fi
    # We have to use a random temporary id if we don't have any machine-id file or if this one is empty
    # (mostly the case of new installations before first boot).
    # Let's use the dataset name directly for this.
    # Consequence is that all datasets are then separated.
    if [ -z "${machine_id}" ]; then
        machine_id="${dataset}"
    fi
    pretty_name=$(. "${etc_dir}/os-release" && echo "${PRETTY_NAME}")
    mountpoint -q "${mntdir}/etc" && umount "${mntdir}/etc" || true
    # read available kernels from /boot
    boot_dir="$(try_default_layout_bpool "${dataset}" "${mntdir}")"
    if [ -z "${boot_dir}" ]; then
        boot_dir=$(get_system_directory "${dataset}" "boot" "false" "${mntdir}" "${etc_dir}")
    fi
    if [ -z  "${boot_dir}" ]; then
        grub_warn "Ignoring ${dataset}"
        mountpoint -q "${mntdir}/boot" && umount "${mntdir}/boot" || true
        umount "${mntdir}"
        return
    fi
    initrd_list=""
    kernel_list=""
    list=$(find "${boot_dir}" -maxdepth 1 -type f -regex '.*/\(vmlinuz\|vmlinux\|kernel\)-.*')
    while [ "x$list" != "x" ] ; do
        linux=`version_find_latest $list`
        list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
        if ! grub_file_is_not_garbage "${linux}" ; then
            continue
        fi
        # Filters entry if efi/non efi.
        # Note that for now we allow kernel without .efi.signed as those are signed kernel
        # on ubuntu, loaded by the shim.
        case "${linux}" in
            *.efi.signed)
                if [ "$(is_secure_boot_enabled)" = "false" ]; then
                    continue
                fi
            ;;
        esac
        linux_basename=$(basename "${linux}")
        linux_dirname=$(dirname "${linux}")
        version=$(echo "${linux_basename}" | sed -e "s,^[^0-9]*-,,g")
        alt_version=$(echo "${version}" | sed -e "s,\.old$,,g")
        gettext_printf "Found linux image: %s in %s\n" "${linux_basename}" "${dataset}" >&2
        initrd=""
        for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
            "initrd-${version}" "initramfs-${version}.img" \
            "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
            "initrd-${alt_version}" "initramfs-${alt_version}.img" \
            "initramfs-genkernel-${version}" \
            "initramfs-genkernel-${alt_version}" \
            "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
            "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
            if test -e "${linux_dirname}/${i}" ; then
                initrd="$i"
                break
            fi
        done
        if test -z "${initrd}" ; then
            grub_warn "Couldn't find any valid initrd for dataset ${dataset}."
            continue
        fi
        gettext_printf "Found initrd image: %s in %s\n" "${initrd}" "${dataset}" >&2
        rel_linux_dirname=$(make_system_path_relative_to_its_root "${linux_dirname}")
        initrd_list="${initrd_list}|${rel_linux_dirname}/${initrd}"
        kernel_list="${kernel_list}|${rel_linux_dirname}/${linux_basename}"
    done
    initrd_list="${initrd_list#|}"
    kernel_list="${kernel_list#|}"
    initrd_device=$(${grub_probe} --target=device "${boot_dir}" | head -1)
    mountpoint -q "${mntdir}/boot" && umount "${mntdir}/boot" || true
    # We needed to look in / for snapshots on root dataset, umount there before zfs lazily unmount it
    case "${boot_dir}" in /boot/.zfs/snapshot/*)
        umount "${boot_dir}" || true
        ;;
    esac
    # for zsys snapshots: we want to know which kernel we successful last booted with
    last_booted_kernel=$(zfs get -H com.ubuntu.zsys:last-booted-kernel "${dataset}" | awk '{print $3}')
    # snapshot: last_used is dataset creation time
    if [ "${is_snapshot}" = "true" ]; then
        last_used="$(zfs get -pH creation "${dataset}" | awk -F '\t' '{print $3}')"
    # otherwise, last_used is manually marked at boot/shutdown on a root dataset for zsys
    else
        # if current system, take current time
        if zfs mount | awk '/[ \t]+\/$/ {print $1}' | grep -q ${dataset}; then
            last_used=$(date +%s)
        else
            last_used=$(zfs get -H com.ubuntu.zsys:last-used "${dataset}" | awk '{print $3}')
            # case of non zsys, or zsys without annotation, take /etc/machine-id stat (as we mounted with noatime).
            # However, as systems can be relatime, if system is current mounted one, set current time (case of clone + reboot
            # within the same d).
            if [ "${last_used}" = "-" ]; then
                last_used=$(stat --printf="%X" "${mntdir}/etc/os-release")
                if [ -f "${mntdir}/etc/machine-id" ]; then
                    last_used=$(stat --printf="%X" "${mntdir}/etc/machine-id")
                fi
            fi
        fi
    fi
    is_zsys=$(zfs get -H com.ubuntu.zsys:bootfs "${base_dataset}" | awk '{print $3}')
    if [ -n "${initrd_list}" -a -n "${kernel_list}" ]; then
        echo "${dataset}\t${is_zsys}\t${machine_id}\t${pretty_name}\t${last_used}\t${initrd_device}\t${initrd_list}\t${kernel_list}\t${last_booted_kernel}"
    else
        grub_warn "didn't find any valid initrd or kernel."
    fi
    umount "${mntdir}" || true
    # We needed to look in / for snapshots on root dataset, umount the snapshot for etc before zfs lazily unmount it
    case "${etc_dir}" in /.zfs/snapshot/*/etc)
        snapshot_path="$(findmnt -n -o TARGET -T ${etc_dir})"
        umount "${snapshot_path}" || true
        ;;
    esac
}
# Scan available boot options and returns in a formatted list
# $1 is the temporary mount directory to use
bootlist() {
    local mntdir="$1"
    local boot_list=""
    for dataset in $(get_root_datasets); do
        # get information from current root dataset
        boot_list="${boot_list}$(get_dataset_info ${dataset} ${mntdir})\n"
        # get information from snapshots of this root dataset
        for snapshot_dataset in $(zfs list -H -o name -t snapshot "${dataset}"); do
            boot_list="${boot_list}$(get_dataset_info ${snapshot_dataset} ${mntdir})\n"
        done
    done
    echo "${boot_list}"
}
# Order machine ids by last_used from their main entry
get_machines_sorted() {
    local bootlist="$1"
    local machineids="$(echo "${bootlist}" | awk '{print $3}' | sort -u)"
    for machineid in ${machineids}; do
        echo "${bootlist}" | awk 'BEGIN{FS="\t"} $1 !~ /.*@.*/  {print $5, $3}' | sort -nr | grep -E "[^^]\b${machineid}\b" | head -1
    done | sort -nr | awk '{print $2}'
}
# Sort entries by last_used for a given machineid
sort_entries_for_machineid() {
    local bootlist="$1"
    local machineid="$2"
    tab="$(printf '\t')"
    echo "${bootlist}" | grep -E "[^^]\b${machineid}\b" | sort -k5,5r -k1,1 -t "${tab}"
}
# Return main entry index
get_main_entry() {
    local entries="$1"
    echo "${entries}" | awk 'BEGIN{FS="\t"} $1 !~ /.*@.*/  {print}' | head -1
}
# Return specific field at index from entry
get_field_from_entry() {
    local entry="$1"
    local index="$2"
    echo "${entry}" | awk "BEGIN{FS=\"\t\"} {print \$$index}"
}
# Get the main entry metadata
main_entry_meta() {
    local main_entry="$1"
    initrd=$(get_field_from_entry "${main_entry}" 7 | cut -d'|' -f1)
    kernel=$(get_field_from_entry "${main_entry}" 8 | cut -d'|' -f1)
    # Take first element (most recent entry) which is not a snapshot
    echo "${main_entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"} {print \$3, \$2, \"main\", \$4, \$1, \$6, \"$initrd\", \"$kernel\"}"
}
# Get advanced entries metadata
advanced_entries_meta() {
    local main_entry="$1"
    last_used_kernel="$(get_field_from_entry "${main_entry}" 9 )"
    # We must align initrds with kernels.
    # Adds initrds to the stack then pop them 1 by 1 as we process the kernels
    set -- $(get_field_from_entry "${main_entry}" 7 | tr "|" " ")
    for kernel in $(get_field_from_entry "${main_entry}" 8 | tr "|" " "); do
        # get initrd and pop to the next one
        initrd="$1"; shift
        was_last_used_kernel="false"
        kernel_basename=$(basename "${kernel}")
        if [ "${kernel_basename}" = "${last_used_kernel}" ]; then
            was_last_used_kernel="true"
        fi
        echo "${main_entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"}    {print \$3, \$2, \"advanced\", \$4, \$1, \$6, \"$initrd\", \"$kernel\", \"$was_last_used_kernel\"}"
    done
}
# Get history metadata
history_entries_meta() {
    local entries="$1"
    local main_dataset_name="$2"
    local main_dataset_releasename="$3"
    if [ -z "${entries}" ]; then
        return
    fi
    # Traverse snapshots and clones
    echo "${entries}" | while read entry; do
        name=""
        # Compute snapshot/filesystem dataset name
        snap_dataset_name="$(get_field_from_entry "${entry}" 1)"
        snapname="${snap_dataset_name##*@}"
        # If, this is a clone, take what is after main_dataset_name
        if [ "${snapname}" = "${snap_dataset_name}" ]; then
            snapname="${snap_dataset_name##${main_dataset_name}_}"
            # Handle manual user clone (not prefixed by "main_dataset_name")
            snapname="${snapname##*/}"
        fi
        # We keep the snapname only if it is not only a zsys auto snapshot
        if echo "${snapname}" | grep -q "^autozsys_"; then
            snapname=""
        fi
        # We store the release only if it different from main dataset release (snapshot before a release upgrade)
        releasename=$(get_field_from_entry "${entry}" 4)
        if [ "${releasename}" = "${main_dataset_releasename}" ]; then
            releasename=""
        fi
        # Snapshot date
        foo="$(get_field_from_entry "${entry}" 5)"
        snapdate="$(date -d @$(get_field_from_entry "${entry}" 5) "+%x @ %H:%M")"
        # For snapshots/clones the name can have the following formats:
        # 	<DATE>: autozsys, same release
        #   <OLD_RELEASE> on <DATE>: autozsys, different release
        #   <SNAPNAME> on <DATE>: Manual snapshot, same release
        #   <SNAPNAME>, <OLD_RELEASE> on <DATE>: Manual snapshot, different release
        if [ "${snapname}" = "" -a "${releasename}" = "" ]; then
            name="${snapdate}"
        elif [ "${snapname}" = "" -a "${releasename}" != "" ]; then
            name=$(gettext_printf "%s on %s" "${releasename}" "${snapdate}")
        elif [ "${snapname}" != "" -a "${releasename}" = "" ]; then
            name=$(gettext_printf "%s on %s" "${snapname}" "${snapdate}")
        else # snapname != "" && releasename != ""
            name=$(gettext_printf "%s, %s on %s" "${snapname}" "${releasename}" "${snapdate}")
        fi
        # Choose kernel and initrd if the snapshot was booted successfully on a specific kernel before
        # Take latest by default if no match
        initrd=$(get_field_from_entry "${entry}" 7 | cut -d'|' -f1)
        kernel=$(get_field_from_entry "${entry}" 8 | cut -d'|' -f1)
        last_used_kernel="$(get_field_from_entry "${entry}" 9)"
        # We must align initrds with kernels.
        # Adds initrds to the stack then pop them 1 by 1 as we process the kernels
        set -- $(get_field_from_entry "${entry}" 7 | tr "|" " ")
        for k in $(get_field_from_entry "${entry}" 8|tr "|" " "); do
            # get initrd and pop to the next one
            candidate_initrd="$1"; shift
            kernel_basename=$(basename "${k}")
            if [ "${kernel_basename}" = "${last_used_kernel}" ]; then
                kernel="${k}"
                initrd="${candidate_initrd}"
                break
            fi
        done
        echo "${entry}" | awk "BEGIN{ FS=\"\t\"; OFS=\"\t\"}    {print \$3, \$2, \"history\", \"$name\", \$1, \$6, \"$initrd\", \"$kernel\"}"
    done
}
# Generate metadata from a BOOTLIST that will subsequently used to generate
# the final grub menu entries
generate_grub_menu_metadata() {
    local bootlist="$1"
    # Sort machineids by last_used from their main entry
    for machineid in $(get_machines_sorted "${bootlist}"); do
        entries="$(sort_entries_for_machineid "${bootlist}" ${machineid})"
        main_entry="$(get_main_entry "${entries}")"
        if [ -z "$main_entry" ]; then
            continue
        fi
        main_entry_meta "${main_entry}"
        advanced_entries_meta "${main_entry}"
        main_dataset_name="$(get_field_from_entry "${main_entry}" 1)"
        main_dataset_releasename="$(get_field_from_entry "${main_entry}" 4)"
        # grep -v errcode != 0 if there is no match. || true to not fail with -e
        other_entries="$(echo "${entries}" | grep -v "${main_entry}" || true)"
        history_entries_meta "${other_entries}" "${main_dataset_name}" "${main_dataset_releasename}"
    done
}
# Print the configuration part common to all sections
# Note:
#   If 10_linux runs these part will be defined twice in grub configuration
print_menu_prologue() {
    cat << 'EOF'
function gfxmode {
	set gfxpayload="${1}"
EOF
    if [ "${vt_handoff}" = 1 ]; then
        cat << 'EOF'
	if [ "${1}" = "keep" ]; then
		set vt_handoff=vt.handoff=1
	else
		set vt_handoff=
	fi
EOF
    fi
    cat << EOF
}
EOF
    # Use ELILO's generic "efifb" when it's known to be available.
    # FIXME: We need an interface to select vesafb in case efifb can't be used.
    GRUB_GFXPAYLOAD_LINUX="${GRUB_GFXPAYLOAD_LINUX:-}"
    if [ "${GRUB_GFXPAYLOAD_LINUX}" != "" ] || [ "${gfxpayload_dynamic}" = 0 ]; then
        echo "set linux_gfx_mode=${GRUB_GFXPAYLOAD_LINUX}"
    else
        cat << EOF
if [ "\${recordfail}" != 1 ]; then
  if [ -e \${prefix}/gfxblacklist.txt ]; then
    if hwmatch \${prefix}/gfxblacklist.txt 3; then
      if [ \${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
EOF
    fi
    cat << EOF
export linux_gfx_mode
EOF
}
# Cache for prepare_grub_to_access_device call
# $1: boot_device
# $2: submenu_level
prepare_grub_to_access_device_cached() {
    local boot_device="$1"
    local submenu_level="$2"
    local boot_device_idx="$(echo ${boot_device} | tr '/' '_')"
    cache_file="${ZFSTMP}/$(echo boot_device${boot_device_idx})"
    if [ ! -f "${cache_file}" ]; then
        set +u
        echo "$(prepare_grub_to_access_device "${boot_device}")" > "${cache_file}"
        set -u
        for i in 0 1 2; do
            submenu_indentation="$(printf %${i}s | tr " " "${grub_tab}")"
            sed "s/^/${submenu_indentation}	/" "${cache_file}" > "${cache_file}--${i}"
        done
    fi
    cat "${cache_file}--${submenu_level}"
}
# Print a grub menu entry
zfs_linux_entry () {
    submenu_level="$1"
    title="$2"
    type="$3"
    dataset="$4"
    boot_device="$5"
    initrd="$6"
    kernel="$7"
    kernel_version="$8"
    kernel_additional_args="${9:-}"
    boot_devices="${10:-}"
    submenu_indentation="$(printf %${submenu_level}s | tr " " "${grub_tab}")"
    echo "${submenu_indentation}menuentry '$(echo "${title}" | grub_quote)' ${CLASS} \${menuentry_id_option} 'gnulinux-${dataset}-${kernel_version}' {"
    if [ "${quick_boot}" = 1 ]; then
        echo "${submenu_indentation}	recordfail"
    fi
    if [ "${type}" != "recovery" ] ; then
        GRUB_SAVEDEFAULT=${GRUB_SAVEDEFAULT:-}
        default_entry="$(save_default_entry)"
        if [ -n "${default_entry}" ]; then
            echo "${submenu_indentation}	${default_entry}"
        fi
    fi
    # Use ELILO's generic "efifb" when it's known to be available.
    # FIXME: We need an interface to select vesafb in case efifb can't be used.
    if [ "${GRUB_GFXPAYLOAD_LINUX}" = "" ]; then
        echo "${submenu_indentation}	load_video"
    else
        if [ "${GRUB_GFXPAYLOAD_LINUX}" != "text" ]; then
            echo "${submenu_indentation}	load_video"
        fi
    fi
    if ([ "${ubuntu_recovery}" = 0 ] || [ "${type}" != "recovery" ]) && \
        ([ "${GRUB_GFXPAYLOAD_LINUX}" != "" ] || [ "${gfxpayload_dynamic}" = 1 ]); then
        echo "${submenu_indentation}	gfxmode \${linux_gfx_mode}"
    fi
    echo "${submenu_indentation}	insmod gzio"
    echo "${submenu_indentation}	if [ \"\${grub_platform}\" = xen ]; then insmod xzio; insmod lzopio; fi"
    if [ -n "$boot_devices" ]; then
        for device in ${boot_devices}; do
            echo "${submenu_indentation}	if [ "${boot_device}" = "${device}" ]; then"
            echo "$(prepare_grub_to_access_device_cached "${device}" $(( submenu_level +1 )) )"
            echo "${submenu_indentation}	fi"
        done
    else
        echo "$(prepare_grub_to_access_device_cached "${boot_device}" "${submenu_level}")"
    fi
    if [ "${quiet_boot}" = 0 ] || [ "${type}" != simple ]; then
        echo "${submenu_indentation}	echo $(gettext_printf "Loading Linux %s ..." ${kernel_version} | grub_quote)"
    fi
    linux_default_args="${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
    if [ ${type} = "recovery" ]; then
        linux_default_args="${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}"
    fi
    echo "${submenu_indentation}	linux	${kernel} root=ZFS=${dataset} ro ${linux_default_args} ${kernel_additional_args}"
    if [ "${quiet_boot}" = 0 ] || [ "${type}" != simple ]; then
        echo "${submenu_indentation}	echo '$(gettext_printf "Loading initial ramdisk ..." | grub_quote)'"
    fi
    echo "${submenu_indentation}	initrd	${initrd}"
    echo "${submenu_indentation}}"
}
# Generate a GRUB Menu from menu meta data
# $1 menu metadata
generate_grub_menu() {
    local menu_metadata="$1"
    local last_section=""
    local main_dataset_name=""
    local main_dataset=""
    local have_zsys=""
    if [ -z "${menu_metadata}" ]; then
        return
    fi
    CLASS="--class gnu-linux --class gnu --class os"
    if [ "${GRUB_DISTRIBUTOR}" = "" ] ; then
        OS=GNU/Linux
    else
        case ${GRUB_DISTRIBUTOR} in
            Ubuntu|Kubuntu)
            OS="${GRUB_DISTRIBUTOR}"
            ;;
            *)
            OS="${GRUB_DISTRIBUTOR} GNU/Linux"
            ;;
        esac
        CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1 | LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
    fi
    if [ -x /lib/recovery-mode/recovery-menu ]; then
        GRUB_CMDLINE_LINUX_RECOVERY=recovery
    else
        GRUB_CMDLINE_LINUX_RECOVERY=single
    fi
    if [ "${ubuntu_recovery}" = 1 ]; then
        GRUB_CMDLINE_LINUX_RECOVERY="${GRUB_CMDLINE_LINUX_RECOVERY} nomodeset"
    fi
    case "$GENKERNEL_ARCH" in
        x86*) GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY dis_ucode_ldr";;
    esac
    if [ "${vt_handoff}" = 1 ]; then
        for word in ${GRUB_CMDLINE_LINUX_DEFAULT}; do
            if [ "${word}" = splash ]; then
                GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_DEFAULT} \${vt_handoff}"
            fi
        done
    fi
    print_menu_prologue
    cat<<'EOF'
function zsyshistorymenu {
	# $1: root dataset (eg rpool/ROOT/ubuntu_2zhm07@autozsys_k56fr6)
	# $2: boot device id (eg 411f29ce1557bfed)
	# $3: initrd (eg /BOOT/ubuntu_2zhm07@autozsys_k56fr6/initrd.img-5.4.0-21-generic)
	# $4: kernel (eg /BOOT/ubuntu_2zhm07@autozsys_k56fr6/vmlinuz-5.4.0-21-generic)
	# $5: kernel_version (eg 5.4.0-21-generic)
	set root_dataset="${1}"
	set boot_device="${2}"
	set initrd="${3}"
	set kernel="${4}"
	set kversion="${5}"
EOF
    boot_devices=$(echo "${menu_metadata}" | cut -d"$(printf '\t')" -f6 | sort -u)
    title=$(gettext_printf "Revert system only")
    zfs_linux_entry 1 "${title}" "simple" '${root_dataset}' '${boot_device}' '${initrd}' '${kernel}' '${kversion}' '' "${boot_devices}"
    title="$(gettext_printf "Revert system and user data")"
    zfs_linux_entry 1 "${title}" "simple" '${root_dataset}' '${boot_device}' '${initrd}' '${kernel}' '${kversion}' 'zsys-revert=userdata' "${boot_devices}"
    GRUB_DISABLE_RECOVERY="${GRUB_DISABLE_RECOVERY:-}"
    if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then
        title="$(gettext_printf "Revert system only (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
        zfs_linux_entry 1 "${title}" "recovery" '${root_dataset}' '${boot_device}' '${initrd}' '${kernel}' '${kversion}' '' "${boot_devices}"
        title="$(gettext_printf "Revert system and user data (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
        zfs_linux_entry 1 "${title}" "recovery" '${root_dataset}' '${boot_device}' '${initrd}' '${kernel}' '${kversion}' 'zsys-revert=userdata' "${boot_devices}"
    fi
echo "}"
echo
    # IFS is set to TAB (ASCII 0x09)
    echo "${menu_metadata}" |
    {
        at_least_one_entry=0
        have_zsys="$(which zsysd || true)"
        while IFS="$(printf '\t')" read -r machineid iszsys section name dataset device initrd kernel opt; do
            # Disable history for non zsys system or if systems is a zsys one and zsys isn't installed.
            # In pure zfs systems, we identified multiple issues due to the mount generator
            # in upstream zfs which makes it incompatible. Don't show history for now.
            if [ "${section}" = "history" ]; then
                if [ "${iszsys}" != "yes" ] || [ "${iszsys}" = "yes" -a -z "${have_zsys}" ]; then
                    continue
                fi
            fi
            if [ "${last_section}" != "${section}" -a -n "${last_section}" ]; then
                # Close previous section wrapper
                if [ "${last_section}" != "main" ]; then
                    echo "}"    # Add grub_tabs
                    at_least_one_entry=0
                fi
            fi
            case "${section}" in
                main)
                    title="${name}"
                    main_dataset_name="${name}"
                    main_dataset="${dataset}"
                    kernel_version=$(basename "${kernel}" | sed -e "s,^[^0-9]*-,,g")
                    zfs_linux_entry 0 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}"
                    at_least_one_entry=1
                ;;
                advanced)
                    # normal and recovery entries for a given kernel
                    if [ "${last_section}" != "${section}" ]; then
                        echo "submenu '$(gettext_printf "Advanced options for %s" "${main_dataset_name}" | grub_quote)' \${menuentry_id_option} 'gnulinux-advanced-${main_dataset}' {"
                    fi
                    last_booted_kernel_marker=""
                    if [ "${opt}" = "true" ]; then
                        last_booted_kernel_marker="* "
                    fi
                    kernel_version=$(basename "${kernel}" | sed -e "s,^[^0-9]*-,,g")
                    title="$(gettext_printf "%s%s, with Linux %s" "${last_booted_kernel_marker}" "${name}" "${kernel_version}")"
                    zfs_linux_entry 1 "${title}" "advanced" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}"
                    GRUB_DISABLE_RECOVERY=${GRUB_DISABLE_RECOVERY:-}
                    if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then
                        title="$(gettext_printf "%s%s, with Linux %s (%s)" "${last_booted_kernel_marker}" "${name}" "${kernel_version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
                        zfs_linux_entry 1 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}"
                    fi
                    at_least_one_entry=1
                ;;
                history)
                    # Revert to a snapshot
                    # revert system, revert system and user data and associated recovery entries
                    if [ "${last_section}" != "${section}" ]; then
                        echo "submenu '$(gettext_printf "History for %s" "${main_dataset_name}" | grub_quote)' \${menuentry_id_option} 'gnulinux-history-${main_dataset}' {"
                    fi
                    if [ "${iszsys}" = "yes" ]; then
                        title="$(gettext_printf "Revert to %s" "${name}" | grub_quote)"
                    else
                        title="$(gettext_printf "Boot on %s" "${name}" | grub_quote)"
                    fi
                    echo "	submenu '${title}' \${menuentry_id_option} 'gnulinux-history-${dataset}' {"
                    kernel_version=$(basename "${kernel}" | sed -e "s,^[^0-9]*-,,g")
                    # Zsys only: let revert system without destroying snapshots
                    if [ "${iszsys}" = "yes" ]; then
                        echo "${grub_tab}${grub_tab}zsyshistorymenu" \"${dataset}\" \"${device}\" \"${initrd}\" \"${kernel}\" \"${kernel_version}\"
                    # Non-zsys: boot temporarly on snapshots or rollback (destroying intermediate snapshots)
                    else
                        title="$(gettext_printf "One time boot")"
                        zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}"
                        GRUB_DISABLE_RECOVERY="${GRUB_DISABLE_RECOVERY:-}"
                        if [ "${GRUB_DISABLE_RECOVERY}" != "true" ]; then
                            title="$(gettext_printf "One time boot (%s)" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
                            zfs_linux_entry 2 "${title}" "recovery" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}"
                        fi
                        title="$(gettext_printf "Revert system (all intermediate snapshots will be destroyed)")"
                        zfs_linux_entry 2 "${title}" "simple" "${dataset}" "${device}" "${initrd}" "${kernel}" "${kernel_version}" "rollback=yes"
                    fi
                    echo "	}"
                    at_least_one_entry=1
                ;;
                *)
                    grub_warn "unknown section: ${section}. Ignoring entry ${name} for ${dataset}"
                ;;
            esac
            last_section="${section}"
        done
        if [ "${at_least_one_entry}" -eq 1 ]; then
            echo "}"
        fi
    }
}
# don't add trailing newline of variable is empty
# $1: content to write
# $2: destination file
trailing_newline_if_not_empty() {
    content="$1"
    dest="$2"
    if [ -z "${content}" ]; then
        rm -f "${dest}"
        touch "${dest}"
        return
    fi
    echo "${content}" > "${dest}"
}
GRUB_LINUX_ZFS_TEST="${GRUB_LINUX_ZFS_TEST:-}"
case "${GRUB_LINUX_ZFS_TEST}" in
    bootlist)
        # Import all available pools on the system and return imported list
        imported_pools=$(import_pools)
        boot_list="$(bootlist ${MNTDIR})"
        trailing_newline_if_not_empty "${boot_list}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}"
        break
    ;;
    metamenu)
        boot_list="$(cat ${GRUB_LINUX_ZFS_TEST_INPUT})"
        menu_metadata="$(generate_grub_menu_metadata "${boot_list}")"
        trailing_newline_if_not_empty "${menu_metadata}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}"
        break
    ;;
    grubmenu)
        menu_metadata="$(cat ${GRUB_LINUX_ZFS_TEST_INPUT})"
        grub_menu=$(generate_grub_menu "${menu_metadata}")
        trailing_newline_if_not_empty "${grub_menu}" "${GRUB_LINUX_ZFS_TEST_OUTPUT}"
        break
    ;;
    *)
        # Import all available pools on the system and return imported list
        imported_pools=$(import_pools)
        # Generate the complete list of boot entries
        boot_list="$(bootlist ${MNTDIR})"
        # Create boot menu meta data from the list of boot entries
        menu_metadata="$(generate_grub_menu_metadata "${boot_list}")"
        # Create boot menu meta data from the list of boot entries
        grub_menu="$(generate_grub_menu "${menu_metadata}")"
        if [ -n "${grub_menu}" ]; then
            # We want the trailing newline as a marker will be added
            echo "${grub_menu}"
        fi
    ;;
esac

========================= sdb1/etc/grub.d/33_linux_xen =========================

#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"
. "$pkgdatadir/grub-mkconfig_lib"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
CLASS="--class gnu-linux --class gnu --class os --class xen"
SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart"
if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
  OS=GNU/Linux
else
  OS="${GRUB_DISTRIBUTOR} GNU/Linux"
  CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
# loop-AES arranges things so that /dev/loop/X can be our root device, but
# the initrds that Linux uses don't like that.
case ${GRUB_DEVICE} in
  /dev/loop/*|/dev/loop[0-9])
    GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"`
    # We can't cope with devices loop-mounted from files here.
    case ${GRUB_DEVICE} in
      /dev/*) ;;
      *) exit 0 ;;
    esac
  ;;
esac
# Default to disabling partition uuid support to maintian compatibility with
# older kernels.
GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
# btrfs may reside on multiple devices. We cannot pass them as value of root= parameter
# and mounting btrfs requires user space scanning, so force UUID in this case.
if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
    || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
	&& [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
    || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \
	&& ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \
    || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
  LINUX_ROOT_DEVICE=${GRUB_DEVICE}
elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
    || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then
  LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID}
else
  LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
fi
# Allow overriding GRUB_CMDLINE_LINUX and GRUB_CMDLINE_LINUX_DEFAULT.
if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE}" ]; then
  GRUB_CMDLINE_LINUX="${GRUB_CMDLINE_LINUX_XEN_REPLACE}"
fi
if [ "${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}" ]; then
  GRUB_CMDLINE_LINUX_DEFAULT="${GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT}"
fi
case x"$GRUB_FS" in
    xbtrfs)
	rootsubvol="`make_system_path_relative_to_its_root /`"
	rootsubvol="${rootsubvol#/}"
	if [ "x${rootsubvol}" != x ]; then
	    GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
	fi;;
    xzfs)
	rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
	bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
	LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
	;;
esac
title_correction_code=
linux_entry ()
{
  os="$1"
  version="$2"
  xen_version="$3"
  type="$4"
  args="$5"
  xen_args="$6"
  if [ -z "$boot_device_id" ]; then
      boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
  fi
  if [ x$type != xsimple ] ; then
      if [ x$type = xrecovery ] ; then
	  title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")"
      elif [ "${type#init-}" != "$type" ] ; then
	  title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")"
      else
	  title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")"
      fi
      replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
      if [ x"Xen ${xen_version}>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
         quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
         title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
         grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
      fi
      echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
  else
      title="$(gettext_printf "%s, with Xen hypervisor" "${os}")"
      echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'xen-gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
  fi
  if [ x$type != xrecovery ] ; then
      save_default_entry | grub_add_tab | sed "s/^/$submenu_indentation/"
  fi
  if [ -z "${prepare_boot_cache}" ]; then
    prepare_boot_cache="$(prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | grub_add_tab)"
  fi
  printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/"
  xmessage="$(gettext_printf "Loading Xen %s ..." ${xen_version})"
  lmessage="$(gettext_printf "Loading Linux %s ..." ${version})"
  sed "s/^/$submenu_indentation/" << EOF
	echo	'$(echo "$xmessage" | grub_quote)'
        if [ "\$grub_platform" = "pc" -o "\$grub_platform" = "" ]; then
            xen_rm_opts=
        else
            xen_rm_opts="no-real-mode edd=off"
        fi
	${xen_loader}	${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts}
	echo	'$(echo "$lmessage" | grub_quote)'
	${module_loader}	${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args}
EOF
  if test -n "${initrd}" ; then
    # TRANSLATORS: ramdisk isn't identifier. Should be translated.
    message="$(gettext_printf "Loading initial ramdisk ...")"
    initrd_path=
    for i in ${initrd}; do
       initrd_path="${initrd_path} ${rel_dirname}/${i}"
    done
    sed "s/^/$submenu_indentation/" << EOF
	echo	'$(echo "$message" | grub_quote)'
	${module_loader}	--nounzip   $(echo $initrd_path)
EOF
  fi
  sed "s/^/$submenu_indentation/" << EOF
}
EOF
}
linux_list=
for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
    if grub_file_is_not_garbage "$i"; then
    	basename=$(basename $i)
	version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
	dirname=$(dirname $i)
	config=
	for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
	    if test -e "${j}" ; then
		config="${j}"
		break
	    fi
	done
        if (grep -qx "CONFIG_XEN_DOM0=y" "${config}" 2> /dev/null || grep -qx "CONFIG_XEN_PRIVILEGED_GUEST=y" "${config}" 2> /dev/null); then linux_list="$linux_list $i" ; fi
    fi
done
if [ "x${linux_list}" = "x" ] ; then
    exit 0
fi
file_is_not_sym () {
    case "$1" in
	*/xen-syms-*)
	    return 1;;
	*)
	    return 0;;
    esac
}
xen_list=
for i in /boot/xen*; do
    if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" ; then xen_list="$xen_list $i" ; fi
done
prepare_boot_cache=
boot_device_id=
title_correction_code=
machine=`uname -m`
case "$machine" in
    i?86) GENKERNEL_ARCH="x86" ;;
    mips|mips64) GENKERNEL_ARCH="mips" ;;
    mipsel|mips64el) GENKERNEL_ARCH="mipsel" ;;
    arm*) GENKERNEL_ARCH="arm" ;;
    *) GENKERNEL_ARCH="$machine" ;;
esac
# Extra indentation to add to menu entries in a submenu. We're not in a submenu
# yet, so it's empty. In a submenu it will be equal to '\t' (one tab).
submenu_indentation=""
is_top_level=true
while [ "x${xen_list}" != "x" ] ; do
    list="${linux_list}"
    current_xen=`version_find_latest $xen_list`
    xen_basename=`basename ${current_xen}`
    xen_dirname=`dirname ${current_xen}`
    rel_xen_dirname=`make_system_path_relative_to_its_root $xen_dirname`
    xen_version=`echo $xen_basename | sed -e "s,.gz$,,g;s,^xen-,,g"`
    if [ -z "$boot_device_id" ]; then
	boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
    fi
    if [ "x$is_top_level" != xtrue ]; then
	echo "	submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {"
    fi
    if ($grub_file --is-arm64-efi $current_xen); then
	xen_loader="xen_hypervisor"
	module_loader="xen_module"
    else
	if ($grub_file --is-x86-multiboot2 $current_xen); then
	    xen_loader="multiboot2"
	    module_loader="module2"
	else
	    xen_loader="multiboot"
	    module_loader="module"
        fi
    fi
    initrd_early=
    for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \
             ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do
       if test -e "${xen_dirname}/${i}" ; then
          initrd_early="${initrd_early} ${i}"
       fi
    done
    while [ "x$list" != "x" ] ; do
	linux=`version_find_latest $list`
	gettext_printf "Found linux image: %s\n" "$linux" >&2
	basename=`basename $linux`
	dirname=`dirname $linux`
	rel_dirname=`make_system_path_relative_to_its_root $dirname`
	version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
	alt_version=`echo $version | sed -e "s,\.old$,,g"`
	linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
	initrd_real=
	for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \
	   "initrd-${version}" "initramfs-${version}.img" \
	   "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
	   "initrd-${alt_version}" "initramfs-${alt_version}.img" \
	   "initramfs-genkernel-${version}" \
	   "initramfs-genkernel-${alt_version}" \
	   "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
	   "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}" ; do
	    if test -e "${dirname}/${i}" ; then
		initrd_real="$i"
		break
	    fi
	done
	initrd=
	if test -n "${initrd_early}" || test -n "${initrd_real}"; then
	    initrd="${initrd_early} ${initrd_real}"
	    initrd_display=
	    for i in ${initrd}; do
		initrd_display="${initrd_display} ${dirname}/${i}"
	    done
	    gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2
	fi
	if test -z "${initrd_real}"; then
    # "UUID=" magic is parsed by initrds.  Since there's no initrd, it can't work here.
	    if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \
		|| [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then
		linux_root_device_thisversion=${GRUB_DEVICE}
	    else
		linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID}
	    fi
	fi
	if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then
	    linux_entry "${OS}" "${version}" "${xen_version}" simple \
		"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
	    submenu_indentation="$grub_tab$grub_tab"
    
	    if [ -z "$boot_device_id" ]; then
		boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
	    fi
            # TRANSLATORS: %s is replaced with an OS name
	    echo "submenu '$(gettext_printf "Advanced options for %s (with Xen hypervisor)" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
	echo "	submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {"
	   is_top_level=false
	fi
	linux_entry "${OS}" "${version}" "${xen_version}" advanced \
	    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
	for supported_init in ${SUPPORTED_INITS}; do
	    init_path="${supported_init#*:}"
	    if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then
		linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \
		    "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}"
	    fi
	done
	if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then
	    linux_entry "${OS}" "${version}" "${xen_version}" recovery \
		"single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}"
	fi
	list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '`
    done
    if [ x"$is_top_level" != xtrue ]; then
	echo '	}'
    fi
    xen_list=`echo $xen_list | tr ' ' '\n' | fgrep -vx "$current_xen" | tr '\n' ' '`
done
# If at least one kernel was found, then we need to
# add a closing '}' for the submenu command.
if [ x"$is_top_level" != xtrue ]; then
  echo '}'
fi
echo "$title_correction_code"

====================== sdb1/etc/grub.d/35_os-prober_proxy ======================

#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/os-prober' | /etc/grub.d/bin/grubcfg_proxy "-'Windows 7 (sur /dev/sda1)'~a0a34d518e4c2800dd85fb6ac910e64e~
-'Windows 10 (sur /dev/sda2)'~0b6a40edeb105c59e9ba81473b378fb6~
+*
+#text
"

====================== sdb1/etc/grub.d/37_os-prober_proxy ======================

#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/os-prober' | /etc/grub.d/bin/grubcfg_proxy "-*
-#text
-'Windows 10 (sur /dev/sda2)'~0b6a40edeb105c59e9ba81473b378fb6~
+'Windows 7 (sur /dev/sda1)'~a0a34d518e4c2800dd85fb6ac910e64e~
"

======================= sdb1/etc/grub.d/38_uefi-firmware =======================

#! /bin/sh
set -e
# grub-mkconfig helper script.
# Copyright (C) 2012  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
prefix="/usr"
exec_prefix="/usr"
datarootdir="/usr/share"
export TEXTDOMAIN=grub
export TEXTDOMAINDIR="${datarootdir}/locale"
. "${datarootdir}/grub/grub-mkconfig_lib"
efi_vars_dir=/sys/firmware/efi/vars
EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c
OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data"
if [ -e "$OsIndications" ] && \
   [ "$(( $(printf 0x%x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then
  LABEL="UEFI Firmware Settings"
  gettext_printf "Adding boot menu entry for UEFI Firmware Settings\n" >&2
  onstr="$(gettext_printf "(on %s)" "${DEVICE}")"
  cat << EOF
menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
	fwsetup
}
EOF
fi


================================= User choice ==================================

Is sdb (ATA SanDisk SSD PLUS) a removable disk? no

Suggested repair: ______________________________________________________________

The default repair of the Boot-Repair utility would purge (in order to fix customized files) and reinstall the grub2 of
sdb1 into the MBRs of all disks (except live-disks and removable disks without OS).
Additional repair would be performed: unhide-bootmenu-10s win-legacy-basic-fix     

Final advice in case of suggested repair: ______________________________________


Please do not forget to make your BIOS boot on sdb (ATA SanDisk SSD PLUS) disk!

_ _ _

Montre, en te servant du Retour utilisable de commande :

systemd-analyze time
systemd-analyze blame
systemd-analyze critical-chain

et :

ls -l /var/crash

Dernière modification par xubu1957 (Le 18/04/2021, à 17:22)


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#3 Le 18/04/2021, à 22:35

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonsoir xubu1957,
Je vous remercie rapide réponse. J'ai toujours de vos lumières.

J' espère que j'ai correctement copié le rapport.

The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @41.014s
└─multi-user.target @41.014s
  └─snapd.seeded.service @9.495s +128ms
    └─snapd.service @6.717s +2.776s
      └─basic.target @6.630s
        └─sockets.target @6.630s
          └─snapd.socket @6.630s +765us
            └─sysinit.target @6.613s
              └─snapd.apparmor.service @6.503s +109ms
                └─apparmor.service @6.236s +265ms
                  └─local-fs.target @6.235s
                    └─run-snapd-ns-snap\x2dstore.mnt.mount @1min 493ms
                      └─run-snapd-ns.mount @1min 182ms
                        └─swap.target @4.819s
                          └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9ed>
                            └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9>
...skipping...
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @41.014s
└─multi-user.target @41.014s
  └─snapd.seeded.service @9.495s +128ms
    └─snapd.service @6.717s +2.776s
      └─basic.target @6.630s
        └─sockets.target @6.630s
          └─snapd.socket @6.630s +765us
            └─sysinit.target @6.613s
              └─snapd.apparmor.service @6.503s +109ms
                └─apparmor.service @6.236s +265ms
                  └─local-fs.target @6.235s
                    └─run-snapd-ns-snap\x2dstore.mnt.mount @1min 493ms
                      └─run-snapd-ns.mount @1min 182ms
                        └─swap.target @4.819s
                          └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9ed>
                            └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9>
~
~
~
~
...skipping...
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @41.014s
└─multi-user.target @41.014s
  └─snapd.seeded.service @9.495s +128ms
    └─snapd.service @6.717s +2.776s
      └─basic.target @6.630s
        └─sockets.target @6.630s
          └─snapd.socket @6.630s +765us
            └─sysinit.target @6.613s
              └─snapd.apparmor.service @6.503s +109ms
                └─apparmor.service @6.236s +265ms
                  └─local-fs.target @6.235s
                    └─run-snapd-ns-snap\x2dstore.mnt.mount @1min 493ms
                      └─run-snapd-ns.mount @1min 182ms
                        └─swap.target @4.819s
                          └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9ed>
                            └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9>
~
~
~
~
...skipping...
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

graphical.target @41.014s
└─multi-user.target @41.014s
  └─snapd.seeded.service @9.495s +128ms
    └─snapd.service @6.717s +2.776s
      └─basic.target @6.630s
        └─sockets.target @6.630s
          └─snapd.socket @6.630s +765us
            └─sysinit.target @6.613s
              └─snapd.apparmor.service @6.503s +109ms
                └─apparmor.service @6.236s +265ms
                  └─local-fs.target @6.235s
                    └─run-snapd-ns-snap\x2dstore.mnt.mount @1min 493ms
                      └─run-snapd-ns.mount @1min 182ms
                        └─swap.target @4.819s
                          └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9ed>
                            └─dev-disk-by\x2duuid-86046774\x2d1aa7\x2d4682\x2d9>
~
~
~
~
-- Logs begin at Tue 2021-03-16 23:21:38 CET, end at Mon 2021-04-19 19:46:17 CEST. --
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: x86/cpu: VMX (outside TXT) disabled by BIOS
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 5, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 6, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1-port7: unable to enumerate USB device
avril 19 19:25:31 mohamed-To-be-filled-by-O-E-M kernel: Bluetooth: hci0: BCM: firmware Patch file not found, tried:
avril 19 19:25:31 mohamed-To-be-filled-by-O-E-M kernel: Bluetooth: hci0: BCM: 'brcm/BCM20702A1-0a5c-21ec.hcd'
avril 19 19:25:31 mohamed-To-be-filled-by-O-E-M kernel: Bluetooth: hci0: BCM: 'brcm/BCM-0a5c-21ec.hcd'
avril 19 19:25:42 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:58 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:26:03 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:26:19 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:26:23 mohamed-To-be-filled-by-O-E-M gdm-password][1604]: gkr-pam: unable to locate daemon control file
avril 19 19:26:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 10, error -110
avril 19 19:26:41 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 11, error -110
avril 19 19:26:41 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1-port7: unable to enumerate USB device
avril 19 19:26:46 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:27:02 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:27:07 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:27:23 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:27:34 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 14, error -110
avril 19 19:27:45 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 15, error -110
avril 19 19:27:45 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1-port7: unable to enumerate USB device
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom                                        Version                             Architecture Description
+++-==========================================-===================================-============-======================================================================================================
rc  linux-image-5.8.0-43-generic               5.8.0-43.49~20.04.1                 amd64        Signed kernel image generic
rc  linux-image-5.8.0-45-generic               5.8.0-45.51~20.04.1+1               amd64        Signed kernel image generic
rc  linux-image-5.8.0-48-generic               5.8.0-48.54~20.04.1                 amd64        Signed kernel image generic
rc  linux-modules-5.8.0-43-generic             5.8.0-43.49~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-5.8.0-45-generic             5.8.0-45.51~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-5.8.0-48-generic             5.8.0-48.54~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.8.0-43-generic       5.8.0-43.49~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.8.0-45-generic       5.8.0-45.51~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.8.0-48-generic       5.8.0-48.54~20.04.1                 amd64        Linux kernel extra modules for version 5.8.0 on 64 bit x86 SMP
rc  linux-modules-nvidia-460-5.8.0-43-generic  5.8.0-43.49~20.04.1                 amd64        Linux kernel nvidia modules for version 5.8.0-43
rc  linux-modules-nvidia-460-5.8.0-45-generic  5.8.0-45.51~20.04.1+1               amd64        Linux kernel nvidia modules for version 5.8.0-45
rc  linux-modules-nvidia-460-5.8.0-48-generic  5.8.0-48.54~20.04.1                 amd64        Linux kernel nvidia modules for version 5.8.0-48

Dernière modification par Massydra (Le 19/04/2021, à 18:50)

Hors ligne

#4 Le 19/04/2021, à 05:12

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonjour,

Comme demandé dans le premier message du tutoriel Retour utilisable de commande

Pour ajouter toi-même les balises code à ton précédent message #3 :

  • Cliquer sur  le lien « Modifier » en bas à droite du message

  • Sélectionner le texte

  • Cliquer sur le <> de l'éditeur de message

1530289742.png

Dernière modification par xubu1957 (Le 19/04/2021, à 21:29)


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#5 Le 19/04/2021, à 21:14

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonsoir xubu1957,
J'ai modifié mon message comme vous me l'avez indiqué.

En vous remerciant

Hors ligne

#6 Le 19/04/2021, à 21:31

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonsoir,

Merci. smile

Pour nettoyer :

Le 11/02/2017, moko138 a écrit :

Pour supprimer tous ces fichiers de configuration devenus sans objets et marqués "rc", et uniquement ces fichiers, exécute :

dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P

Montre :

uname -a; lspci -nnk | grep -iA3 net; lsusb; dmesg | grep -i bluetooth; dmesg | grep -i firmware; lsmod | grep bluetooth

Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#7 Le 20/04/2021, à 04:59

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonjour xubu1957,
J'ai supprimé avec la commande ;

dpkg -l | awk '/^rc/{print $2}' | xargs -r sudo dpkg -P

et voici le rapport de la 2ème commande:

Linux mohamed-To-be-filled-by-O-E-M 5.8.0-50-generic #56~20.04.1-Ubuntu SMP Mon Apr 12 21:46:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
05:00.0 Ethernet controller [0200]: Qualcomm Atheros AR8161 Gigabit Ethernet [1969:1091] (rev 10)
	Subsystem: Gigabyte Technology Co., Ltd AR8161 Gigabit Ethernet [1458:e000]
	Kernel driver in use: alx
	Kernel modules: alx
06:00.0 USB controller [0c03]: Etron Technology, Inc. EJ168 USB 3.0 Host Controller [1b6f:7023] (rev 01)
Bus 002 Device 007: ID 0a5c:21ec Broadcom Corp. 
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 005 Device 002: ID 3938:1031 MOSART Semi. 2.4G Wireless Mouse
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 1bcf:2284 Sunplus Innovation Technology Inc. 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[   67.559630] Bluetooth: Core ver 2.22
[   67.559656] Bluetooth: HCI device and connection manager initialized
[   67.559659] Bluetooth: HCI socket layer initialized
[   67.559660] Bluetooth: L2CAP socket layer initialized
[   67.559663] Bluetooth: SCO socket layer initialized
[   67.899613] Bluetooth: hci0: BCM: chip id 63
[   67.900612] Bluetooth: hci0: BCM: features 0x07
[   67.916621] Bluetooth: hci0: mohamed-To-be-filled-by-O-E-M
[   67.916623] Bluetooth: hci0: BCM20702A1 (001.002.014) build 1460
[   68.041763] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
[   68.041766] Bluetooth: hci0: BCM: 'brcm/BCM20702A1-0a5c-21ec.hcd'
[   68.041767] Bluetooth: hci0: BCM: 'brcm/BCM-0a5c-21ec.hcd'
[   72.482436] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   72.482437] Bluetooth: BNEP filters: protocol multicast
[   72.482440] Bluetooth: BNEP socket layer initialized
[  114.919664] Bluetooth: RFCOMM TTY layer initialized
[  114.919669] Bluetooth: RFCOMM socket layer initialized
[  114.919673] Bluetooth: RFCOMM ver 1.11
[    0.149967] Spectre V2 : Enabling Restricted Speculation for firmware calls
[   68.041763] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
bluetooth             581632  31 btrtl,btintel,btbcm,bnep,btusb,rfcomm
ecdh_generic           16384  2 bluetooth

Encore merci.

Hors ligne

#8 Le 20/04/2021, à 05:08

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonjour,

Ton Bluetooth fonctionne t-il ?

Dernière modification par xubu1957 (Le 20/04/2021, à 15:06)


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#9 Le 20/04/2021, à 14:44

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonjour xubu1957,
J'ai deux clés bluetooth branchées à mon PC, une pour la souris et une autre pour mon casque . Elles fonctionnent bien toutes les deux.

Hors ligne

#10 Le 20/04/2021, à 15:00

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonjour,

avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 5, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 6, error -110

Je ne sais pas interpréter ces retours.


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#11 Le 20/04/2021, à 22:27

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonsoir,
Néanmoins, je vous remercie d'avoir essayé de m'aider.

Bonne soirée

Hors ligne

#12 Le 20/04/2021, à 22:28

xubu1957

Re : Démarrage lent Ubuntu 20.04

Fournis :

lsusb | sort; echo; lsusb -t
lsmod | sort
dmesg | grep -i usb

Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#13 Le 21/04/2021, à 11:43

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonjour,
Voici les rapports fournis par les 3 commandes respectives :

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 1bcf:2284 Sunplus Innovation Technology Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0a5c:21ec Broadcom Corp. BCM20702A0
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 002: ID 3938:1031 MOSART Semi. 2.4G Wireless Mouse
Bus 005 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 2, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 3: Dev 2, If 1, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 3: Dev 2, If 2, Class=Vendor Specific Class, Driver=btusb, 12M
    |__ Port 3: Dev 2, If 3, Class=Application Specific Interface, Driver=, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
        |__ Port 1: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
        |__ Port 1: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 1: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
aesni_intel           372736  7
af_alg                 28672  10 algif_hash,algif_skcipher
algif_hash             16384  2
algif_skcipher         16384  2
alx                    49152  0
at24                   24576  0
autofs4                45056  2
bluetooth             581632  31 btrtl,btintel,btbcm,bnep,btusb,rfcomm
bnep                   24576  2
btbcm                  16384  1 btusb
btintel                28672  1 btusb
btrtl                  24576  1 btusb
btusb                  57344  0
cec                    53248  1 drm_kms_helper
cmac                   16384  5
coretemp               20480  0
crc32_pclmul           16384  0
crct10dif_pclmul       16384  1
cryptd                 24576  4 crypto_simd,ghash_clmulni_intel
crypto_simd            16384  1 aesni_intel
drm                   552960  9 drm_kms_helper,nvidia_drm
drm_kms_helper        217088  1 nvidia_drm
ecc                    32768  1 ecdh_generic
ecdh_generic           16384  2 bluetooth
fb_sys_fops            16384  1 drm_kms_helper
ghash_clmulni_intel    16384  0
glue_helper            16384  1 aesni_intel
hid                   135168  4 usbhid,hid_generic,hid_logitech_dj,hid_logitech_hidpp
hid_generic            16384  0
hid_logitech_dj        28672  0
hid_logitech_hidpp     45056  0
i2c_i801               32768  0
i2c_smbus              20480  1 i2c_i801
input_leds             16384  0
intel_cstate           20480  0
intel_powerclamp       20480  0
intel_rapl_common      28672  1 intel_rapl_msr
intel_rapl_msr         20480  0
ip_tables              32768  0
joydev                 24576  0
ledtrig_audio          16384  1 snd_hda_codec_generic
lp                     20480  0
lpc_ich                24576  0
mac_hid                16384  0
mc                     57344  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common
mdio                   16384  1 alx
mei                   106496  3 mei_hdcp,mei_me
mei_hdcp               24576  0
mei_me                 40960  1
Module                  Size  Used by
nvidia              34140160  334 nvidia_uvm,nvidia_modeset
nvidia_drm             53248  6
nvidia_modeset       1228800  9 nvidia_drm
nvidia_uvm           1011712  0
parport                65536  3 parport_pc,lp,ppdev
parport_pc             45056  0
pata_acpi              16384  0
ppdev                  24576  0
rapl                   20480  0
rc_core                57344  1 cec
rfcomm                 81920  4
sch_fq_codel           20480  5
serio_raw              20480  0
snd                    94208  29 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,snd_hda_codec_via,snd_pcm,snd_rawmidi
snd_hda_codec         139264  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_via
snd_hda_codec_generic    81920  1 snd_hda_codec_via
snd_hda_codec_hdmi     61440  1
snd_hda_codec_via      20480  1
snd_hda_core           94208  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_via
snd_hda_intel          53248  6
snd_hwdep              20480  2 snd_usb_audio,snd_hda_codec
snd_intel_dspcfg       24576  1 snd_hda_intel
snd_pcm               114688  5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd_rawmidi            36864  2 snd_seq_midi,snd_usbmidi_lib
snd_seq                69632  2 snd_seq_midi,snd_seq_midi_event
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
snd_seq_midi           20480  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_timer              40960  2 snd_seq,snd_pcm
snd_usb_audio         282624  2
snd_usbmidi_lib        36864  1 snd_usb_audio
soundcore              16384  1 snd
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
usbhid                 57344  1 hid_logitech_dj
uvcvideo               98304  0
video                  49152  0
videobuf2_common       57344  2 videobuf2_v4l2,uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
videobuf2_v4l2         24576  1 uvcvideo
videobuf2_vmalloc      20480  1 uvcvideo
videodev              241664  3 videobuf2_v4l2,uvcvideo,videobuf2_common
x86_pkg_temp_thermal    20480  0
xhci_pci               20480  0
xhci_pci_renesas       20480  1 xhci_pci
x_tables               49152  1 ip_tables
[    0.204700] ACPI: bus type USB registered
[    0.204700] usbcore: registered new interface driver usbfs
[    0.204700] usbcore: registered new interface driver hub
[    0.204700] usbcore: registered new device driver usb
[    0.249452] pci 0000:00:1a.0: quirk_usb_early_handoff+0x0/0x670 took 23995 usecs
[    0.273445] pci 0000:00:1d.0: quirk_usb_early_handoff+0x0/0x670 took 23417 usecs
[    0.590547] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.590654] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    0.609386] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    0.609445] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[    0.609446] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.609447] usb usb1: Product: EHCI Host Controller
[    0.609448] usb usb1: Manufacturer: Linux 5.8.0-50-generic ehci_hcd
[    0.609449] usb usb1: SerialNumber: 0000:00:1a.0
[    0.609605] hub 1-0:1.0: USB hub found
[    0.609824] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    0.629387] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    0.629440] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[    0.629441] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.629442] usb usb2: Product: EHCI Host Controller
[    0.629442] usb usb2: Manufacturer: Linux 5.8.0-50-generic ehci_hcd
[    0.629443] usb usb2: SerialNumber: 0000:00:1d.0
[    0.629601] hub 2-0:1.0: USB hub found
[    0.629729] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.629742] uhci_hcd: USB Universal Host Controller Interface driver
[    0.945387] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    0.965393] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    1.101824] usb 1-1: New USB device found, idVendor=8087, idProduct=0024, bcdDevice= 0.00
[    1.101827] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.102128] hub 1-1:1.0: USB hub found
[    1.121847] usb 2-1: New USB device found, idVendor=8087, idProduct=0024, bcdDevice= 0.00
[    1.121850] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.122148] hub 2-1:1.0: USB hub found
[    1.369355] usb 1-1.1: new high-speed USB device number 3 using ehci-pci
[    1.389364] usb 2-1.7: new high-speed USB device number 3 using ehci-pci
[    1.478898] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 3
[    1.480129] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[    1.480130] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.480131] usb usb3: Product: xHCI Host Controller
[    1.480132] usb usb3: Manufacturer: Linux 5.8.0-50-generic xhci-hcd
[    1.480133] usb usb3: SerialNumber: 0000:00:14.0
[    1.480238] hub 3-0:1.0: USB hub found
[    1.480691] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 4
[    1.480693] xhci_hcd 0000:00:14.0: Host supports USB 3.0 SuperSpeed
[    1.480725] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.08
[    1.480726] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.480727] usb usb4: Product: xHCI Host Controller
[    1.480728] usb usb4: Manufacturer: Linux 5.8.0-50-generic xhci-hcd
[    1.480729] usb usb4: SerialNumber: 0000:00:14.0
[    1.480830] hub 4-0:1.0: USB hub found
[    1.481319] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 5
[    1.481584] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.08
[    1.481586] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.481587] usb usb5: Product: xHCI Host Controller
[    1.481588] usb usb5: Manufacturer: Linux 5.8.0-50-generic xhci-hcd
[    1.481589] usb usb5: SerialNumber: 0000:06:00.0
[    1.481682] hub 5-0:1.0: USB hub found
[    1.481823] xhci_hcd 0000:06:00.0: new USB bus registered, assigned bus number 6
[    1.481825] xhci_hcd 0000:06:00.0: Host supports USB 3.0 SuperSpeed
[    1.481847] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.481866] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.08
[    1.481867] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.481868] usb usb6: Product: xHCI Host Controller
[    1.481868] usb usb6: Manufacturer: Linux 5.8.0-50-generic xhci-hcd
[    1.481869] usb usb6: SerialNumber: 0000:06:00.0
[    1.481965] hub 6-0:1.0: USB hub found
[    1.643877] usb 1-1.1: New USB device found, idVendor=1bcf, idProduct=2284, bcdDevice= 0.05
[    1.643878] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.643879] usb 1-1.1: Product: Full HD webcam
[    1.643880] usb 1-1.1: Manufacturer: SHENZHEN AONI ELECTRONIC CO.,LTD
[    1.643881] usb 1-1.1: SerialNumber: AN20200417001
[    1.817410] usb 3-3: new full-speed USB device number 2 using xhci_hcd
[    1.817413] usb 5-1: new full-speed USB device number 2 using xhci_hcd
[    1.968436] usb 3-3: New USB device found, idVendor=0a5c, idProduct=21ec, bcdDevice= 1.12
[    1.968439] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.968440] usb 3-3: Product: BCM20702A0
[    1.968442] usb 3-3: Manufacturer: Broadcom Corp
[    1.968443] usb 3-3: SerialNumber: 214986010549
[    1.996995] usb 5-1: New USB device found, idVendor=3938, idProduct=1031, bcdDevice= 1.08
[    1.996998] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.997000] usb 5-1: Product: 2.4G Wireless Mouse
[    1.997001] usb 5-1: Manufacturer: MOSART Semi.
[    2.125390] usb 5-2: new full-speed USB device number 3 using xhci_hcd
[    2.298031] usb 5-2: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=24.11
[    2.298034] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.298036] usb 5-2: Product: USB Receiver
[    2.298037] usb 5-2: Manufacturer: Logitech
[    2.352276] usbcore: registered new interface driver usbhid
[    2.352277] usbhid: USB HID core driver
[    2.355941] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-1/5-1:1.0/0003:3938:1031.0001/input/input3
[    2.356150] input: MOSART Semi. 2.4G Wireless Mouse as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-1/5-1:1.0/0003:3938:1031.0001/input/input4
[    2.356379] hid-generic 0003:3938:1031.0001: input,hiddev0,hidraw0: USB HID v1.10 Mouse [MOSART Semi. 2.4G Wireless Mouse] on usb-0000:06:00.0-1/input0
[    2.356643] input: Logitech USB Receiver as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.0/0003:046D:C52B.0002/input/input5
[    2.413654] hid-generic 0003:046D:C52B.0002: input,hidraw1: USB HID v1.11 Keyboard [Logitech USB Receiver] on usb-0000:06:00.0-2/input0
[    2.414028] input: Logitech USB Receiver Mouse as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.1/0003:046D:C52B.0003/input/input6
[    2.414278] input: Logitech USB Receiver Consumer Control as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.1/0003:046D:C52B.0003/input/input7
[    2.473579] input: Logitech USB Receiver System Control as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.1/0003:046D:C52B.0003/input/input8
[    2.473782] hid-generic 0003:046D:C52B.0003: input,hiddev1,hidraw2: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:06:00.0-2/input1
[    2.474050] hid-generic 0003:046D:C52B.0004: hiddev2,hidraw3: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:06:00.0-2/input2
[    2.666475] logitech-djreceiver 0003:046D:C52B.0004: hiddev1,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:06:00.0-2/input2
[    2.788675] input: Logitech Wireless Device PID:4072 Keyboard as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.2/0003:046D:C52B.0004/0003:046D:4072.0005/input/input10
[    2.788867] input: Logitech Wireless Device PID:4072 Mouse as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.2/0003:046D:C52B.0004/0003:046D:4072.0005/input/input11
[    2.789116] input: Logitech Wireless Device PID:4072 Consumer Control as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.2/0003:046D:C52B.0004/0003:046D:4072.0005/input/input12
[    2.789267] input: Logitech Wireless Device PID:4072 System Control as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.2/0003:046D:C52B.0004/0003:046D:4072.0005/input/input13
[    2.789420] hid-generic 0003:046D:4072.0005: input,hidraw2: USB HID v1.11 Keyboard [Logitech Wireless Device PID:4072] on usb-0000:06:00.0-2/input2:1
[    2.970266] input: Logitech MX Anywhere 2 as /devices/pci0000:00/0000:00:1c.7/0000:06:00.0/usb5/5-2/5-2:1.2/0003:046D:C52B.0004/0003:046D:4072.0005/input/input17
[    2.970533] logitech-hidpp-device 0003:046D:4072.0005: input,hidraw2: USB HID v1.11 Keyboard [Logitech MX Anywhere 2] on usb-0000:06:00.0-2/input2:1
[    6.577389] usb 2-1.7: device descriptor read/64, error -110
[   22.193371] usb 2-1.7: device descriptor read/64, error -110
[   22.381393] usb 2-1.7: new high-speed USB device number 4 using ehci-pci
[   27.569393] usb 2-1.7: device descriptor read/64, error -110
[   43.185370] usb 2-1.7: device descriptor read/64, error -110
[   43.293591] usb 2-1-port7: attempt power cycle
[   43.897394] usb 2-1.7: new high-speed USB device number 5 using ehci-pci
[   54.577370] usb 2-1.7: device not accepting address 5, error -110
[   54.657397] usb 2-1.7: new high-speed USB device number 6 using ehci-pci
[   65.329392] usb 2-1.7: device not accepting address 6, error -110
[   65.329541] usb 2-1-port7: unable to enumerate USB device
[   67.654750] usbcore: registered new interface driver btusb
[   67.661983] usb 1-1.1: failed to read current rate; disabling the check
[   67.685984] usb 1-1.1: Warning! Unlikely big volume range (=4096), cval->res is probably wrong.
[   67.685986] usb 1-1.1: [5] FU [Mic Capture Volume] ch = 1, val = 0/4096/1
[   67.686203] usbcore: registered new interface driver snd-usb-audio
[   67.754128] input: Full HD webcam: Full HD webcam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input23
[   67.754267] usbcore: registered new interface driver uvcvideo
[   67.754268] USB Video Class driver (1.1.1)
[   71.586810] audit: type=1400 audit(1619000212.450:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="ippusbxd" pid=919 comm="apparmor_parser"

Hors ligne

#14 Le 21/04/2021, à 11:47

xubu1957

Re : Démarrage lent Ubuntu 20.04

Bonjour,

usb 2-1.7: new high-speed USB device number 6 using ehci-pci

Une piste pour chercher.


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

En ligne

#15 Le 21/04/2021, à 12:10

ylag

Re : Démarrage lent Ubuntu 20.04

Bonjour,

xubu1957 a écrit :
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device descriptor read/64, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 5, error -110
avril 19 19:25:30 mohamed-To-be-filled-by-O-E-M kernel: usb 2-1.7: device not accepting address 6, error -110

Je ne sais pas interpréter ces retours.

error -110 peut faire référence à un problème d'alimentation soit au niveau du port USB ou du périphérique qui y est branché ?
Si possible, essayer un démarrage avec ce périphérique débranché ?

A+

Dernière modification par ylag (Le 21/04/2021, à 12:11)

Hors ligne

#16 Le 21/04/2021, à 14:02

Massydra

Re : Démarrage lent Ubuntu 20.04

Merci,
je vais voir ce côté là.

Hors ligne

#17 Le 21/04/2021, à 19:53

Massydra

Re : Démarrage lent Ubuntu 20.04

Bonsoir,
J'ai débranché tous les ports USB ainsi que  les périphériques. Le démarrage long persiste (1minute et 24 secondes).

Hors ligne