tl; dr: ¿es posible arrancar desde un archivo .iso ubicado en un volumen lógico lmv2 sin cifrar? ¿Cómo?
Estoy tratando de configurar esto en una VM VirtualBox antes de hacerlo de verdad con mi computadora portátil. Tengo la siguiente configuración:
- 4 particiones gpt
- gpt1 - arranque bios ef02 2M
- gpt2 - 5G sin cifrar no lvm, para datos misceláneos, iso, etc.
- gpt3 - 5G lvm sin cifrar, para / boot, iso's, etc.
- gpt4 - restante, lvm, encriptado con dm-crypt / luks, para root, swap, home, etc.
- en gpt2, tengo copias de las iso de Arch y Xubuntu actuales
- en gpt3, tengo un lvm2 lv con las mismas copias de las mismas iso
Tengo el siguiente trabajo:
- en gpt4, instalaciones funcionales de Arch y Xubuntu (y me gustaría agregar otras distribuciones en otros volúmenes lógicos en algún momento)
- grub2 instalado desde Arch en / dev / sda
- usando el comando configfile de grub2, puede cambiar y arrancar desde el menú grub2 de la distribución
- puede arrancar iso desde el menú de grub desde gpt2 no lvm
Lo que me gustaría hacer es arrancar desde las iso en gpt3 lvm (y, en última instancia, ni siquiera tener la partición gpt2 que no sea lvm).
Mi entrada de comida es:
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
}
Las 2 líneas de loopback apuntan a 2 copias diferentes de la misma iso. Verifiqué en la línea de comando de grub que ambas líneas de bucle de retorno funcionan.
Al arrancar desde la iso en la partición no lvm, todo funciona bien.
Al arrancar desde la iso en la partición lvm, se inicia el arranque y, finalmente, aparece este error:
(initramfs) /scripts/casper-premount/20iso_scan: line 46: can't open /dev/sr0: No medium found
Para la entrada del arco:
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
}
arrancar desde gpt2 iso funciona, pero no sé a qué cambiar el "/ dev / sda2" para el arranque de lvm.
EDITAR: ¿Se puede hacer esto? ¿Para cualquier archivo .iso oficial de la distribución de Linux actual? Fedora? Debian? openSUSE? CentOS?
¿Es esto imposible? ¿O es algo que nadie ha pensado probar antes?
EDIT2: Mi recompensa ha expirado hace mucho tiempo, y después de 9 meses, supongo que esto simplemente no es posible con ninguna distribución de Linux. Dejaré la pregunta abierta, pero dudo que haya una solución que funcione en un futuro cercano.
search
es el del volumen lógico que contiene el archivo iso, ¿verdad? Para conseguirlo, tienes que hacerlosudo blkid
.Inspirado por esta solución simple para Ubuntu , utilicé lo siguiente, que funciona para cargar una iso Fedora 27 KDE y una iso Ubuntu 17.10.
Acabo de agregar las siguientes líneas en el archivo
/etc/grub.d/40_custom
Explicación
set iso_path
define la ruta, donde se puede encontrar el archivo iso en el volumen lógico. Cuando inicio mi sistema, se encuentra en/home/erik/Downloads/transmission/Fedora-KDE-Live-x86_64-27/Fedora-KDE-Live-x86_64-27-1.6.iso"
, pero/home
es el volumen lógico montado, así que lo dejo afuera y comienzo la ruta con/erik/Downloads/…
La línea que comienza
search
tiene una extraña variable alfanumérica (un llamado UUID) al final, que comienza con6340
. Obtuve este número del comandolo que me dio, junto con otros, la siguiente línea
Luego, otra cosa importante si desea arrancar otros archivos iso, son las líneas que comienzan con
linux
yinitrd
. Los obtuve abriendo el archivo iso confile-roller
(gui para extraer archivos comprimidos) omc
(administrador de archivos de consola).Fedora y similares: allí vas al directorio
/isolinux
, donde encontrarás un archivo llamadoisolinux.cfg
. Allí encontré algunas líneas que comienzan conlabel
, y debajo de ellas las siguientes líneas importantesque usarás para llenar las dos últimas líneas de mi grub2
menuentry
.Ubuntu y similares: allí vas al directorio
/boot/grub
, donde encontrarás un archivo llamadogrub.cfg
. Aquí encontrará algunas líneas que comienzan conmenuentry
, y debajo de ellas las siguientes líneas importantesque puedes copiar
fuente
Creo que no es posible para el archivo iso oficial de la mayoría de las distribuciones.
El error que obtienes:
significa que al arrancar, el sistema en vivo que está iniciando está buscando una unidad de CD / DVD y no encuentra ninguna.
Los CD en vivo no están configurados para buscar su iso de origen en un LVM; tal vez pueda modificar los scripts de arranque de la imagen para hacerlo, pero no creo que ningún archivo .iso oficial de distribución actual lo haga. ¿Puede intentar ponerse en contacto con los desarrolladores de su distribución favorita para tener eso integrado tal vez?
fuente
Podrías probar esto:
Agregue esto al comienzo de la menuentry:
Luego, especifique su partición LVM con:
Entonces su entrada Xubuntu ISO sería así:
Por favor, haga las correcciones necesarias.
Esto debería hacer que GRUB reconozca el volumen lvm2, haciendo posible leer el archivo ISO en él. Sin embargo, probablemente todavía no se encuentre el ISO ...
fuente
Solo un punto:
El ISO al arrancar debe montar el iso, por lo que debe saber cómo encontrarlo.
Grub2 puede ver el ISO con comandos insmod ..., pero eso no hace más que dejar que Grub2 lea dentro del ISO, montarlo en bucle, etc., pero tan pronto como el Linux dentro del ISO inicia el LVM / LUKS / loop / etc es no está allí (no montado), los scripts de arranque dentro de ISO deben saber cómo montar ese LVM / LUKS / loop; así que si ese Linux no está preparado para hacerlo, no será posible arrancar desde él.
Muestra sin LVM, LUKS, etc ... si un ISO LiveCD de Linux normal no está diseñado para buscar y montar un bucle en un archivo .iso durante el arranque, nunca será posible iniciarlo desde Grub2 (con .iso como archivo).
Para tales casos, necesita un emulador de CD / DVD de hardware (si está en hardware real), o simplemente monte el .iso en la unidad de CD / DVD virtual de una máquina virtual.
La otra opción, por supuesto, es 'editar' tal ISO para incorporar en el arranque algunos scripts para buscar y montar LVM / LUKS / etc.
fuente