Nvme sur vieux pc

Tags: #<Tag:0x00007f63f499fe08> #<Tag:0x00007f63f499fca0> #<Tag:0x00007f63f499fb88>

Bonjour,
Je souhaite installer une carte nvme sur un PCI d’un pc de 13 ans qui me donne toute satisfaction.
Évidemment il n’est pas détecté par le bios (dernière version). Par contre la debian 11 le détecte parfaitement. Elle y installe grub sans problème mais au moment démarrage le bios ne peut pas lancer grub puisqu’il ne reconnaît pas le nvme.
D’où ma demande d’aide. Après recherche je voudrais réaliser le lancement de ma debian/nvme à partir d’une clé usb mais mes premiers essais aboutissent à un grub qui

    • se lance,
    • reconnaît le disque nvme ((hd1))
    • mais ne trouve pas la partition ((hd1,1)) sur laquelle est installé debian 11.
      Pourriez-vous m’indiquer les ajouts à apporter au grub.cfg pour qu’il permette ce lancement. grub généré par l’install (je n’ai gardé que le principal) :
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_msdos
insmod ext2
search --no-floppy --fs-uuid --set=root 942c83ff-15e0-46cf-bc9c-e8fd323490e8
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
search --no-floppy --fs-uuid --set=root 942c83ff-15e0-46cf-bc9c-e8fd323490e8
insmod png
if background_image /usr/share/desktop-base/homeworld-theme/grub/grub-4x3.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-942c83ff-15e0-46cf-bc9c-e8fd323490e8' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	search --no-floppy --fs-uuid --set=root 942c83ff-15e0-46cf-bc9c-e8fd323490e8
	echo	'Loading Linux 5.10.0-20-amd64 ...'
	linux	/boot/vmlinuz-5.10.0-20-amd64 root=UUID=942c83ff-15e0-46cf-bc9c-e8fd323490e8 ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-5.10.0-20-amd64
}
.../...
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Par avance merci.

Y a l’ISO Super Grub 2 qui permet de lancer facilement une Install de Linux qui a des soucis de démarrage.

Si non c’est quoi exactement que tu as comme adaptateur ? Me concernant j’ai une ASUS Hyper M.2 X4 PCI-E qui fonctionne à merveille, je crois même en avoir une 2 eme de côté au cas ou.

Si tu as un disque dur standard également installé sur cette machine met Grub dessus…

L’adaptateur est un no-name qui garantit respecter les fonctionnalité des supports nvme. Ce que j’ai tendance à croire puisqu’après le boot le disque est opérationnel. De plus grub le reconnait en tant que disque ; c’est la partition qu’il contient qui n’est pas reconnue.
J’ai installé le grub sur un dd classique qui démarre un autre linux sans pb. Là l’install du grub reconnait via grub-probe la debian sur le nvme mais à l’exécution grub plante aussi : « no known filesystem detected »
C’est cet ensemble qui me fait penser à un mauvais paramétrage de grub …

Amorçage BIOS ou UEFI ?

Vraiment ? GRUB compte sur le BIOS/UEFI pour accéder aux disques, donc ça veut dire que le BIOS/UEFI reconnaît le SSD et dans ce cas c’est un peu étonnant qu’il ne boote pas dessus.
On peut voir la sortie de « fdisk -l » depuis Linux (live ou installateur) avec le SSD et la clé USB branchée et la sortie de « ls » depuis la ligne de commande de GRUB (touche « c » au menu de GRUB) ?

Je dis cela car sous grub ‹ rescue › un ls renvoie un (hd1) à coté du (hd0) qui lui est totalement reconnu :
>ls
>(hd0) (hd0,2), (hd0,3), (hd1)
mais
>ls (hd1)
>no known filesytem detected
Ma CM est une bios simple pas de UEFI qui je penses n’existait pas à l’époque…
Pour le fdisk je reviens … je suis en train de réinstaller debian sur cle usb.

Ça ne pourrait pas être un lecteur de CD ou de carte SD ?
Comment as-tu installé GRUB ?
(hd0), c’est la clé USB ? A quoi correspondent les 3 partitions ?
Au pire il faudra installer non seulement GRUB mais aussi /boot (partition séparée de la racine) sur une clé USB ou autre support amorçable par le BIOS.
Pour information l’UEFI est bien plus ancien que 13 ans, ma carte mère UEFI la plus ancienne date d’environ 2007.

Le(s) grub utilisé(s) étaient placés sur un SSD classique qui gère la machine quotidiennement en dual boot et sur une clé usb avec les mêmes résultats.
Les partitions de (hd0) sont celles de mon linux habituel (/, home, swap)
J’ai essayé beaucoup de truc en vain. Mon idée actuelle et d’utiliser les 2 étages du boot grub pour que dans un 1er temp il charge le linux min qui, détectant le nvme et son contenu, lancera la debian installée dessus.
Plus facile à dire qu’à faire car je ne sais pas comment lui faire monter la partition du nvme.
Nota : j’ai mis en paramètre du noyau ‹ load_nvme=YES › qui n’a rien arrangé.
D’où mon appel à l’aide :wink:

Ça ne me dit pas comment tu as installé GRUB sur la clé USB.
Et sur le SSD « classique » (je suppose que tu veux dire « SATA »), c’est lors de l’installation de Debian sur le SSD en question ?
J’attends la sortie de fdisk -l.
Si tu as un système opérationnel sur un SSD SATA, laisse tomber la clé USB et fais les manips depuis le GRUB et le système du SSD SATA.

Eh désolé mais installé une debian sur une clé usb c’est llloooonnnnng. :upside_down_face:
Le ssd tout d’abord :

Disque /dev/sda : 931,51 GiB, 1000204886016 octets, 1953525168 secteurs
Disk model: Samsung SSD 860 
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x35bf84c5

Périphérique Amorçage   Début        Fin   Secteurs Taille Id Type
/dev/sda1    *           2048    1050623    1048576   512M  b W95 FAT32
/dev/sda2             1052670 1953523711 1952471042   931G  5 Étendue
/dev/sda5             1052672    2549759    1497088   731M 83 Linux
/dev/sda6             2551808 1953523711 1950971904 930,3G 83 Linux
Disque /dev/nvme0n1 : 465,76 GiB, 500107862016 octets, 976773168 secteurs
Disk model: CT500P1SSD8                             
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x7634e98d

Périphérique   Amorçage    Début       Fin  Secteurs Taille Id Type
/dev/nvme0n1p1              2048  58593279  58591232  27,9G 83 Linux
/dev/nvme0n1p2          58595326 976771071 918175746 437,8G  5 Étendue
/dev/nvme0n1p5          58595328  60594175   1998848   976M 82 partition d'échange Linux / Sol
/dev/nvme0n1p6          60596224 976771071 916174848 436,9G 83 Linux
Disque /dev/sdb : 1,82 TiB, 2000398934016 octets, 3907029168 secteurs
Disk model: ST2000DL003-9VT1
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Disque /dev/mapper/vg2tera-vola : 500 GiB, 536870912000 octets, 1048576000 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/vg2tera-volb : 500 GiB, 536870912000 octets, 1048576000 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/vg2tera-volc : 500 GiB, 536870912000 octets, 1048576000 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/vg2tera-Logical_Volume_03 : 363,02 GiB, 389785059328 octets, 761298944 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x2052474d

Périphérique                                Amorçage      Début        Fin   Secteurs Taille Id Type
/dev/mapper/vg2tera-Logical_Volume_03-part1             6579571 1924427647 1917848077 914,5G 70 Disk
/dev/mapper/vg2tera-Logical_Volume_03-part2          1953251627 3771827541 1818575915 867,2G 43 inco
/dev/mapper/vg2tera-Logical_Volume_03-part3           225735265  225735274         10     5K 72 inco
/dev/mapper/vg2tera-Logical_Volume_03-part4          2642411520 2642463409      51890  25,3M  0 Vide

Les entrées de la table de partitions ne sont pas dans l'ordre du disque.


Disque /dev/mapper/sda6_crypt : 930,28 GiB, 998880837632 octets, 1950939136 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/vgxubuntu-root : 929,32 GiB, 997854281728 octets, 1948934144 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/vgxubuntu-swap_1 : 976 MiB, 1023410176 octets, 1998848 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Disque /dev/sdc : 3,73 GiB, 4009754624 octets, 7831552 secteurs
Disk model: ATTACHE OPTIMA  
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xdb4e140e

Périphérique Amorçage   Début     Fin Secteurs Taille Id Type
/dev/sdc1    *           2048 5830655  5828608   2,8G 83 Linux
/dev/sdc2             5832702 7829503  1996802   975M  5 Étendue
/dev/sdc5             5832704 7829503  1996800   975M 82 partition d'échange Linux / Solaris

Pour la clé qui rend le même résultat c’est beaucoup plus simple elle n’a que le std de partition (cf sdc) et tente de s’adresser au même nvme.

les grub de la clé (stanard debian) et du ssd :

La clé pour la partie appel du debian ssd=

menuentry 'Debian GNU/Linux 11 (bullseye) (on /dev/nvme0n1p1)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-942c83ff-15e0-46cf-bc9c-e8fd323490e8' {
	insmod part_msdos
	insmod ext2
	search --no-floppy --fs-uuid --set=root 942c83ff-15e0-46cf-bc9c-e8fd323490e8
	linux /boot/vmlinuz-5.10.0-20-amd64 root=UUID=942c83ff-15e0-46cf-bc9c-e8fd323490e8 ro quiet
	initrd /boot/initrd.img-5.10.0-20-amd64
}

L’équivalent ssd un peu modifié (essais infructueux) =

menuentry '40-b    GNU/Linux' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-18f066a6-65d4-4f4a-8751-7accd9bcd7be' {
	recordfail
	load_video
	gfxmode $linux_gfx_mode
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_msdos
	insmod ext2
	set root='hd0,msdos5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  9bcc86c7-0333-4d90-a302-65b1a38fd43e
	else
	  search --no-floppy --fs-uuid --set=root 9bcc86c7-0333-4d90-a302-65b1a38fd43e
	fi
	linux	/vmlinuz-5.15.0-58-generic root=/dev/mapper/vgxubuntu-root ro    nvme_load=YES rootdelay=1000 ro  quiet
    initrd	/boot/initrd.img-5.10.0-20-amd64 root=/dev/nvme0n1p1  nvme_load=YES rootdelay=1000 ro  quiet
}

Je sais. Faut pas faire comme ça. Quand j’ai besoin d’installer un système sur une clé USB, je fais l’installation sur un disque normal et une fois finie je copie le tout sur la clé USB. Mais passons, ce n’est pas le sujet.

Il y en a du monde dans cette machine. Un SSD SATA de 1To, un SSD NVMe de 500 Go, un disque dur de 2 To… Ce ne serait pas ce disque de 2 To sans table de partition apparemment utilisé pour LVM qui serait vu par GRUB, et non le SSD NVMe ? A l’invite de commande grub> (pas grub rescue>), tu peux taper

ls (hdX)

pour afficher la taille d’un disque.
S’il s’avère que le GRUB (et donc le BIOS) ne voit que les supports SATA et USB, alors il faudra installer GRUB et et /boot sur un tel support, le reste peut être installé sur le SSD NVMe.

ls (hd0) → 976762584KiB
ls (hd1) → 1953514584KiB
ls (hd2) → hd2 cannot get C/H/S

Pascal, je me suis trompé il n’y a pas de hd2 mais un fd (?) donc effectivement tu as raison ce n’est pas le nvme que je voyais mais la partition data du 2nd sata.
Donc est-ce rapé pour le lancement du nvme alors qu’il est bien reconnu par linux ?

Comme je l’ai écrit, il faut installer /boot et GRUB sur un support géré par le BIOS, comme un disque/SSD SATA ou une clé USB, et le reste sur le SSD NVMe.

N’est ce pas le cas de ma clé usb debian, elle inclue bien grub et le boot et est reconnue par le bios ? je ne suis pas sur de comprendre. Or tel quel ça ne fonctionne pas.

Si j’ai bien suivi, ta clé USB contient un système Debian complet et autonome, et non le GRUB et /boot d’un système installé sur le SSD NVMe. GRUB doit pouvoir charger son fichier de configuration /boot/grub/grub.cfg pour afficher le menu et les images de noyau /boot/vmlinuz-* et d’initramfs initrd.img-* pour démarrer un système. Il faut donc, lors de l’installation, monter un partition de la clé USB sur /boot. Ou ultérieurement, y copier le contenu de /boot, la monter sur /boot, mettre à jour /etc/fstab, réinstaller GRUB dans le MBR de la clé USB et regénérer grub.cfg.

Effectivement.
Il me faut un peu de temps pour comprendre ce que tu m’expliques … je reviendrais plus tard quand j’aurai compris ou aurai une question fondée. Merci pour cette direction.

Tu envisages plutôt de refaire toute l’installation ou de déplacer /boot sur la clé USB ?

Les 2 options sont possibles (une install sur le nvme est très rapide :slightly_smiling_face:
Déplacer /boot (du nvme) sur la clé ok mais pour y installer le grub du nvme dessus c’est plus chaud ! en chroot peut-être ?
A la réflexion une réinstall me semble plus à ma portée … il y a longtemps que je n’ai pas pratiqué.

La réinstallation est probablement plus simple en effet. Dans ce cas, choisir le partitionnement manuel. Il est possible de réutiliser les partitions existantes du SSD pour /, /home, /var, le swap… en les reformattant ou de repartitionner entièrement. Idem sur la clé USB. Il faudra qu’une partition de la clé USB ait /boot comme point de montage. Lors de l’installation de GRUB, sélectionner le MBR de la clé USB.

Question : que vont devenir le disque et le SSD SATA ?