[Syslinux]Configurer Syslinux pour LUKS/LVM

Applications, problèmes de configuration réseau
chindit
Daikyu
Messages : 76
Inscription : dim. 07 oct. 2012, 15:56

[Syslinux]Configurer Syslinux pour LUKS/LVM

Message par chindit »

Salut à tous

Comme je me suis procuré un p'tit SSD, j'ai voulu refaire une installation fraîche d'Arch en partant sur un chiffrement intégral du disque.
J'ai donc suivi ce tuto avec quelques adaptations. À savoir:
[*]Boot: 250Mo | Partitions chiffrée contenant [ SWAP 4Go | Ext4 Le reste ]
[*]Chiffrement: AES remplacé par Serpent (j'aime bien serpent :D )
Voilà.

L'installation s'est déroulée sans problème.
Puis, je redémarre le PC pour booter sur mon nouvel Arch et là… catastrophe:
Image
(Désolé pour la photo pourrie, je pouvais pas faire mieux).

Quelques petites explications sur mon système.
J'ai un tri-boot:
ArchLinux sur HDD -> C'est lui le maître. Le PC boot d'office sur le Syslinux de cet Arch là.
Dans le bootloader, on a le choix entre:
  • ArchLinux sur HDD -> le «maître» précédemment cité
  • Windows (chhhht! Pas taper!)
  • ArchLinux chiffré sur SSD (celui qui pose problème)
L'idée est donc d'avoir ce schéma:
[Power On]->[SysLinux de ArchLinux master]->[Sélection de «ArchLinux SSD»]->[Syslinux du «ArchLinux SSD»]->[Boot du SSD avec déchiffrement des partitions].

Je sais que ce système de «ricochet» de boot est surprenant mais il est nécessaire parce que le SSD changera d'hôte et aura (bientôt?) une tour à lui tout seul.
Vous me suivez toujours?

Niveau partitions, j'ai ceci:

Code : Tout sélectionner

/dev/sdc1: LABEL="Boot" UUID="b0bbd7ee-9d7b-4735-9059-2cd0f4ce7928" TYPE="ext4" PARTUUID="33f68d5f-01"
/dev/sdc2: UUID="5f842950-c005-4b50-87b6-fa965c13b80b" TYPE="crypto_LUKS" PARTUUID="33f68d5f-02"
sdc1 = 250Mo Boot
sdc2 = Le reste, chiffré, qui contient SWAP + EXT4

Le ArchLinux sur SSD est appelé comme suit:

Code : Tout sélectionner

LABEL arch_david
	MENU LABEL David's ArchLinux
	LINUX ../vmlinuz-linux
	APPEND root=UUID="b0bbd7ee-9d7b-4735-9059-2cd0f4ce7928" rw
	INITRD ../initramfs-linux.img
Logiquement, je devrais, en sélectionnant «David's ArchLinux» tomber sur le SysLinux du SSD.
Sauf que quand je le sélectionne… boum, message d'erreur (que vous avez vu).

Le SysLinux du SSD chiffré contient ceci (en plus du bla bla habituel)

Code : Tout sélectionner

LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    #APPEND root=UUID="b0bbd7ee-9d7b-4735-9059-2cd0f4ce7928" rw
    APPEND cryptdevice=/dev/disk/by-uuid/b0bbd7ee-9d7b-4735-9059-2cd0f4ce7928:luks root=/dev/mapper/ArchLinuxGroup-lvarch rw
    INITRD ../initramfs-linux.img

LABEL archfallback
    MENU LABEL Arch Linux Fallback
    LINUX ../vmlinuz-linux
    APPEND root=UUID="b0bbd7ee-9d7b-4735-9059-2cd0f4ce7928" rw
    INITRD ../initramfs-linux-fallback.img
Le «archfallback» est faux, mais je m'en occuperai après.

«ArchLinuxGroup-lvarch» est la partition chiffrée EXT4
Il existe également «ArchLinuxGroup-lvswap», pour la SWAP chiffrée.

Quant à l'erreur «hibernate», j'ignore d'où elle vient, j'ai supprimé cet élément de la ligne «hooks» de «mkinitcpio.conf» et j'ai re-généré le noyeau via «mkinitcpio -p linux».
En cas de besoin, le mkinitcpio.conf du SSD:

Code : Tout sélectionner

# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run.  Advanced users may wish to specify all system modules
# in this array.  For instance:
#     MODULES="piix ide_disk reiserfs"
MODULES="sd_mod"

# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image.  This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=""

# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way.  This is useful for config files.
FILES=""

# HOOKS
# This is the most important setting in this file.  The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added.  Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
##   This setup specifies all modules in the MODULES setting above.
##   No raid, lvm2, or encrypted root is needed.
#    HOOKS="base"
#
##   This setup will autodetect all modules for your system and should
##   work as a sane default
#    HOOKS="base udev autodetect block filesystems"
#
##   This setup will generate a 'full' image which supports most systems.
##   No autodetection is done.
#    HOOKS="base udev block filesystems"
#
##   This setup assembles a pata mdadm array with an encrypted root FS.
##   Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
#    HOOKS="base udev block mdadm encrypt filesystems"
#
##   This setup loads an lvm2 volume group on a usb device.
#    HOOKS="base udev block lvm2 filesystems"
#
##   NOTE: If you have /usr on a separate partition, you MUST include the
#    usr, fsck and shutdown hooks.
HOOKS="base udev keymap encrypt lvm2 autodetect modconf block filesystems keyboard fsck"

# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"

# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""
Voilà, je pense que j'ai tout dit.

Le problème est donc que je patauge avec le boot d'une partition chiffrée.
Quelqu'un sait-il comment configurer correctement tout ce bazar?
Merci d'avance à tous.
Avatar de l’utilisateur
floflo77890
Maître du Kyudo
Messages : 1266
Inscription : lun. 29 juil. 2013, 21:05
Localisation : île de france

Re: [Syslinux]Configurer Syslinux pour LUKS/LVM

Message par floflo77890 »

J'avoue ne pas trop comprendre ce que tu veux faire. Si je te suis bien tu veux démarrer sur le syslinux du HDD pour ensuite démarrer le syslinux du ssd et ensuite démarrer archlinux en déchiffrant le partitions ?

Je ne voie pas trop d'utilités à faire une telle chose mais bon. Pourquoi ne pas démarrer sur le sys du HDD et de démarrer ensuite le archlinux du ssd directement ?
chindit
Daikyu
Messages : 76
Inscription : dim. 07 oct. 2012, 15:56

Re: [Syslinux]Configurer Syslinux pour LUKS/LVM

Message par chindit »

Oh, les deux reviennent au même. Dans tous les cas, il faut configurer syslinux et c'est la que j'ai besoin d'aide.

Quelqu'un peut m'éclairer pour la configuration?
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux]Configurer Syslinux pour LUKS/LVM

Message par benjarobin »

Normal que cela ne fonctionne pas, la configuration de syslinux qui est sur le hdd est invalide.
Tu dois chaîner. Cela explique ton erreur de resume...

Syslinux ne supporte mas une telle chose. Syslinux ne permet pas de démarrer un Linux situé sur un autre disque. Tu dois utiliser Grub ou chaîner 2 syslinux (chose que tu veux faire)

Ici tu utilises le kernel du HDD pour démarrer sur la partition du SSD. Sauf que l'initramfs du disque dur n'est pas adapté au chiffrage du SSD
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
chindit
Daikyu
Messages : 76
Inscription : dim. 07 oct. 2012, 15:56

Re: [Syslinux]Configurer Syslinux pour LUKS/LVM

Message par chindit »

benjarobin a écrit :Syslinux ne supporte mas une telle chose. Syslinux ne permet pas de démarrer un Linux situé sur un autre disque. Tu dois utiliser Grub ou chaîner 2 syslinux (chose que tu veux faire)
Ha ha ha!
Logique.

Donc, j'ai chainloadé le premier SysLinux sur le second. Bon.

Code : Tout sélectionner

LABEL david_arch_ssd
        MENU LABEL David's ArchLinux
        SAY Booting to Arch Linux
        COM32 chain.c32
        APPEND mbr:0x33f68d5f
Là, ça fonctionne et je vois correctement mon second Syslinux! (Champagne! :bravo: )

MAIS je suis toujours incabable de connecter correctement le second syslinux avec mes partitions chiffrées.

Le dernier code en date (parce que j'en ai essayé des tonnes) est celui-ci:

Code : Tout sélectionner

LABEL arch
    MENU LABEL Arch Linux
    LINUX ../vmlinuz-linux
    #APPEND cryptdevice=/dev/disk/by-uuid/5f842950-c005-4b50-87b6-fa965c13b80b:luks root=/dev/mapper/ArchLinuxGroup-lvarch rw
    APPEND root=/dev/mapper/arch_crypt cryptdevice=/dev/by-uuid/1c55f6a4-81d7-472e-8092-ea73a21f8869:allow-discards rw
    INITRD ../initramfs-linux.img
Avec ce code, il foire à trouver la partition chiffrée, puis il foire à trouver«/dev/mapper».

Avec le «APPEND» commenté, il trouve la partition chiffrée et, une fois le mot de passe rentré… il foire en disant ERROR: device '/dev/mapper/ArchLinuxGroup-lvarch' not found. Skipping fsck.
ERROR: Unable to find root device '/dev/mapper/ArchLinuxGroup-lvarch'.
You are being dropped to a recovery shell


Quelqu'un pourrait m'éclairer sur la manière de connecter correctement syslinux à la partition chiffrée?
Mille mercis.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17632
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Syslinux]Configurer Syslinux pour LUKS/LVM

Message par benjarobin »

Syslinux n'est plus responsable maintenant. Les seuls choses qui peuvent ne pas aller est la ligne APPEND, et surtout as tu bien refait l'initramfs, as tu essayé avec fallback ?
Et une fois que tu es dans le recovery shell, quelle sont les /dev découvert ? Les log ?
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre