tl; dr - Est-il possible de démarrer à partir d'un fichier .iso situé dans un volume logique lmv2 non chiffré? Comment?
J'essaie de configurer cela dans une machine virtuelle VirtualBox avant de le faire pour de vrai avec mon ordinateur portable. J'ai la configuration suivante:
- 4 partitions gpt
- gpt1 - Démarrage bios 2M ef02
- gpt2 - 5G non lvm non crypté, pour les données diverses, les iso, etc.
- gpt3 - LVM 5G non chiffré, pour / boot, iso, etc.
- gpt4 - restant, lvm, chiffré avec dm-crypt / luks, pour root, swap, home, etc.
- dans gpt2, j'ai des copies des archs actuels et des iso Xubuntu
- en gpt3, j'ai un lvm2 lv avec les mêmes copies du même iso
J'ai le travail suivant:
- dans gpt4, des installations fonctionnelles d'Arch et Xubuntu (et aimeraient ajouter d'autres distributions dans d'autres volumes logiques à un moment donné)
- grub2 installé depuis Arch sur / dev / sda
- en utilisant la commande configfile de grub2, peut basculer et démarrer à partir du menu grub2 de la distribution
- peut démarrer iso à partir du menu grub de non-lvm gpt2
Ce que je voudrais faire, c'est démarrer à partir des iso dans gpt3 lvm (et finalement, même pas du tout la partition non-lvm gpt2).
Mon entrée grub est:
menuentry "Xubuntu ISO" {
set isofile="/xubuntu-12.04.1-desktop-amd64.iso"
# from non-lvm
loopback loop (hd0,gpt2)$isofile
# from lvm
#loopback loop (vgboot-iso)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz
}
Les 2 lignes de bouclage pointent vers 2 copies différentes de la même iso. J'ai vérifié sur la ligne de commande grub que les deux lignes de bouclage fonctionnent.
Lors du démarrage à partir de l'iso dans la partition non lvm, tout fonctionne bien.
Lors du démarrage à partir de l'iso dans la partition lvm, le démarrage démarre et obtient finalement cette erreur:
(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Pour l'entrée en arc:
menuentry "Arch ISO" {
set isofile="/archlinux-2012.09.07-dual.iso"
loopback loop (hd0,gpt2)$isofile
#loopback loop (vgboot-iso)$isofile
linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201209 img_dev=/dev/sda2 img_loop=$isofile earlymodules=loop
initrd (loop)/arch/boot/x86_64/archiso.img
}
démarrer à partir de gpt2 iso fonctionne, mais je ne sais pas quoi changer le "/ dev / sda2" pour le démarrage lvm.
EDIT: Cela peut-il être fait? Pour tout fichier .iso officiel de la distribution Linux actuelle? Feutre? Debian? openSUSE? CentOS?
Est-ce impossible? Ou est-ce quelque chose que personne n'a pensé à essayer auparavant?
EDIT2: Ma prime a expiré depuis longtemps, et après 9 mois, je suppose que ce n'est tout simplement pas possible avec une distribution Linux. Je vais laisser la question ouverte, mais je doute qu'il y ait une solution de travail à tout moment dans un proche avenir.
search
est celui du volume logique qui contient le fichier iso, non? Pour l'obtenir, il faut le fairesudo blkid
.Inspiré par cette solution simple pour Ubuntu , j'ai utilisé ce qui suit, qui fonctionne pour charger une iso Fedora 27 KDE et une iso Ubuntu 17.10.
Je viens d'ajouter les lignes suivantes dans le fichier
/etc/grub.d/40_custom
Explication
set iso_path
définit le chemin d'accès où se trouve le fichier iso sur le volume logique. Lorsque je démarre mon système, il se trouve/home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
, mais/home
c'est le volume logique monté, donc je laisse cela de côté et commence le chemin avec/erik/Downloads/…
La ligne qui commence par
search
a une étrange variable alphanumérique (un soi-disant UUID) à la fin, qui commence par6340
. J'ai obtenu ce numéro de la commandece qui m'a donné, avec d'autres, la ligne suivante
Ensuite, une autre chose importante si vous voulez démarrer d'autres fichiers iso, ce sont les lignes qui commencent par
linux
etinitrd
. Je les ai obtenus en ouvrant le fichier iso avecfile-roller
(gui pour extraire les archives compressées) oumc
(gestionnaire de fichiers de la console).Fedora et similaire: Là, vous allez dans le répertoire
/isolinux
, où vous trouverez un fichier appeléisolinux.cfg
. Là, j'ai trouvé quelques lignes commençant parlabel
, et en dessous les lignes importantes suivantesque vous utiliserez pour remplir les deux dernières lignes de mon grub2
menuentry
.Ubuntu et similaire: Là, vous allez dans le répertoire
/boot/grub
, où vous trouverez un fichier appelégrub.cfg
. Vous trouverez ici quelques lignes commençant parmenuentry
et en dessous les lignes importantes suivantesque vous pouvez simplement copier.
la source
Je pense que ce n'est pas possible pour le fichier iso officiel de la plupart des distributions.
L'erreur que vous obtenez:
signifie qu'au démarrage, le système en direct que vous démarrez recherche un lecteur de cd / dvd et n'en trouve aucun.
Les CD live ne sont pas configurés pour rechercher leur iso source sur un LVM; vous pouvez peut-être modifier les scripts de démarrage de l'image pour le faire, mais je ne pense pas qu'un fichier .iso officiel de la distribution actuelle le fasse. Vous pouvez essayer de contacter les développeurs de votre distribution préférée pour que cela soit intégré peut-être?
la source
Vous pouvez essayer ceci:
Ajoutez ceci au début de l'entrée de menu:
Ensuite, spécifiez votre partition LVM avec:
Ainsi, votre entrée ISO Xubuntu serait comme ceci:
Veuillez apporter les corrections nécessaires.
Cela devrait permettre à GRUB de reconnaître le volume lvm2, ce qui permet d'y lire le fichier ISO. Cependant, l'ISO ne sera probablement toujours pas trouvé ...
la source
Juste un point à ce sujet:
L'ISO au démarrage doit monter l'iso, donc doit savoir comment le trouver.
Grub2 peut voir l'ISO avec les commandes insmod ..., mais cela ne fait rien d'autre que de laisser Grub2 lire à l'intérieur de l'ISO, le monter en boucle, etc., mais dès que Linux à l'intérieur de l'ISO démarre, LVM / LUKS / loop / etc est pas là (pas monté), les scripts de démarrage à l'intérieur de l'ISO doivent savoir comment monter cette boucle LVM / LUKS; donc si Linux n'est pas prêt à le faire, il ne sera pas possible de démarrer à partir de celui-ci.
Exemple sans LVM, LUKS, etc ... si un ISO LiveCD Linux normal n'est pas conçu pour rechercher et monter une boucle dans un fichier .iso lors du démarrage, il ne sera jamais possible de démarrer dedans depuis Grub2 (avec .iso comme fichier).
Dans de tels cas, vous avez besoin d'un émulateur de CD / DVD matériel (s'il s'agit d'un matériel réel), ou montez simplement le .iso sur l'unité CD / DVD virtuelle d'une machine virtuelle.
L'autre option, bien sûr, est de «modifier» une telle ISO pour incorporer au démarrage certains scripts pour rechercher et monter LVM / LUKS / etc.
la source