[eside-ghost] VM a máquina real
Jon Urionaguena
juriona en nesys-st.com
Jue Sep 14 16:03:28 CEST 2006
Jon Ander Hernández escribió:
> Aupi!!
>
> On Wed, 2006-09-13 at 20:18 +0200, Jon Urionaguena wrote:
>> Jon Urionaguena escribió:
>>> zgor escribió:
>>>> Aupi Jon,
>>>>> Me preguntaba como respondería un sistema de máquina virtual Linux (que
>>>>> ya está montado y te ahorra toda la instalación) pasado a un disco
>>>>> físico con dd (o algo así) y montarle un lilo para que arranque... Es
>>>>> que se lleva mucho eso de que los fabricantes publiquen VMs de prueba
>>>>> con los sistemas ya montados para que los pruebes...
>>>>>
>>>>> Entiendo que el kernel puede dar problemas para arrancar dependiendo de
>>>>> la máquina real en la que se quiere montar... ¿no?
>>>>>
>>>>> ¿Alguien tiene experiencia con esto? ¿Algún axioma que diga, "no, esto
>>>>> no se puede hacer, por que bla, bla, bla..."?
>
> Yo entiendo que en teoría no tendría que haber más problema que el que
> te puedes encontrar con una distribución normal instalada en un sistema
> y que al llevarlo a otro equipo de algún problema, por ejemplo porque
> tenga un kernel específico para la CPU, porque use kudzu para el
> reconocimiento de hardware y te habrá algún asistente raro, que intente
> cargar modulos de hardware que no tienes porque están especificados
> en /etc/modules, etc...
>
>>> A ver,
>>>
>>> Lo he hecho todo y algo falla...
>>>
>>> Tengo una VM arrancada en red con rsync instalado
>>> Pincho un disco como secundario en un sistema arrancado, en red y con
>>> rsync. Lo monto...
>>> Copio disco completo con rsync, no problem...
>>> Chroot al disco montado y le instalo lilo, no problem...
>>> Quito el chroot (si no no puede acceder a este disco secundario, en mi
>>> caso /dev/hdc) y ejecuto "lilo -C /mnt/xxx/etc/lilo.conf" con está
>>> entrada en el lilo.conf:
>>> ##################################
>>> lba32
>>> boot = /dev/hdc
>>> disk=/dev/hdc bios=0x80 --> Importante para que lo ejecute en el disco
>>> correcto!!
>>> map = /mnt/disco/boot/System.map-2.6.15-1-686
>>> default=XXX
>>> menu-scheme=Wb
>>> prompt
>>> timeout=50
>>> delay=50
>>> vga=normal
>>>
>>> #LILO bootable partitions
>>>
>>> image = /mnt/disco/boot/vmlinuz-2.6.15-1-686
>>> root = /dev/hda1
>>> label=XXX
>>> read-only
>>> ####################################
>
> No se si te habrás percatado de este detalle, pero en lo que nos has
> copy/pasteado estas pasándole como parámetro del kernel root /dev/hda1
> cuando entiendo que debería ser /dev/hdc1.
>
>>> Así hace arrancable (MBR y partición primaria) dicho disco.
>>>
>>> Cambio el /etc/fstab del nuevo disco para que coincidan los montajes de /.
>
> Por lo que yo entiendo y además tal como lo comprobamos en los cursillos
> de Julio que tuvimos un divertido problemilla, a pesar de que este mal
> el / en fstab pasa, porque una vez que ha arrancado el user-space
> entiendo que no se puede desmontar y volver a montar /.
>
>>> Pincho el disco como primario maestro en otra maquina. Arranca lilo,
>>> selecciono sistema y ...taraaaa... Kernel Panic:
>>>
>>> "VFS: Cannot open root device "1601" or unknown-block..."
>>>
>>> Bueno, ahora a desbarrar:
>>> - Me da que no puede montar los fs's correctamente...
>>> - Al pincharlo en otra máquina como primario maestro, como lo detectará
>>> linux...? /dev/hda? Yo había puesto mis referencias (lilo.conf y fstab)
>>> a /dev/hdc... Y aún cambiando las de fstab a /dev/hda no ayuda nada
>>> - Si lo pincho en el IDE 2 sin nada en el IDE 1, lo detecta como
>>> /dev/hda o /dev/hdc?
>
> Debería ser /dev/hdc
>
> Si tienes udev un truco chulo para ver que es y que puede que la mayoría
> no lo conozca es el de :
>
> $ ls -l /dev/disk/by-id/
> total 0
> 9 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE -> ../../hda
> 10 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE-part1 -> ../../hda1
> 10 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE-part2 -> ../../hda2
> 10 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE-part4 -> ../../hda4
> 10 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE-part5 -> ../../hda5
> 10 Sep 13 22:22 ata-Maxtor_6Y120L0_Y36H72BE-part6 -> ../../hda6
>
> Bueno la verdad es que no sirve para pasarlo como argumento al kernel,
> porque esto lo hace udev y no el kernel, y tampoco podríamos pasarle
> un /dev/hd* o /dev/disk/by-id/*maxtor* porque el kernel tampoco hace
> pathname-expasion... aunque yo supongo que no es descabellado que esto
> se pueda hacer con un initrd muy poderoso que tenga udev dentro y muchos
> truquis (como el initrd de ubuntu que tiene udev dentro :D).
>
>>> - Y una tontería... VFS será Virtual File System... Hay capa de
>>> abstracción del HW desde la VM. En la VM eran discos SCSI, pero yo he
>>> copiado todo el contenido a un IDE y luego lo monto todo... Tiene el
>>> kernel creado alguna referencia más a SCSI y por eso no arranca??
>
> Yo diría que no tiene nada que ver con el hecho de que el HDD sea IDE o
> SCSI, yo creo que es porque le estas pasando como parámetro del kernel
> root=/dev/hda1 y eso es un dispositivo inválido porque el dispositivo
> debería ser hdc.
>
> Y bueno ya que has mencionado lo de IDE y SCSI, como curiosidad
> divertida que la capa IDE del kernel va a desaparecer, y en su lugar se
> va a usar libata. Libata es el driver SATA de Linux (que esta siendo
> extendida para soporta PATA aka IDE/ATA), y si os fijáis los
> dispositivos son sd*, es decir que son funcionan bajo el subsistema SCSI
> como también lo hace el usb mass storage, el firewire sbp-2 (el mass
> storage del firewire), con lo cual el ide también pasará a ser
> virtualmente SCSI :-D.
>
> Estado del port de Alan Cox de los drivers PATA a libata :
> http://zeniv.linux.org.uk/~alan/IDE/STATUS.txt
>
> Página de información de libata y el soporte sata de Linux :
> http://linux-ata.org/
>
>>> - Liada de booting y kernels...
>
> Otra cosa que se me ocurre es que el kernel de la distro necesitara y no
> lo estés cargando, es decir, si el kernel no tiene el soporte para leer
> ese sistema de archivos, lo típico es que el soporte este dentro del
> initrd.
> O prueba con otro kernel [+ initrd] de otra distro.
>
>> A ver si alguien me aclara algo!!!
>
> A ver si tienes suerte ;-)
>
> Un saludete!!
>
> JonAn.
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
Gracias JonAn
El caso es que cuando ejecuto LILO el disco en el que lo quiero ejecutar
es hdc (en ese momento...). Pero al pincharlo en su nueva máquina pasará
a ser hda...
El caso es que os he pasteado un lilo.conf concreto, pero he hecho
múltiples pruebas (la mayoría cambiando hdc por hda en cada uno de los
parámetros y viceversa)
Por esto tengo liada en los parámetros de lilo.conf...
La primera parte especifica parámetros globales... Los importantes son
(importantes en cuanto a mi liada)-->
boot
disk
map
install
Luego el boot de cada sistema que quieras que LILO lance
image
root
En estos parámetros, a qué se refiere cada uno?... a los dispositivos y
ficheros que hay en el momento de ejecutar LILO (hdc y /mnt/.../boot)? o
a los que habrá cuando arranque el disco (hda y /boot)?
Esa es mi verdadera liada...
Porque luego, que el kernel arranque o no en el HW nuevo pues dará sus
Kernel Panic por motivos diversos... Y vete a saber, será que le falta
modulo tal o cosa cual... Pero mi fallo es por que no monta bien el
sistema de fitxs raiz... Debido a:
-Que se lo pasa mal LILO (mi liada de parametros)
-Que el kernel descomprimido no puede leer ese tipo de discos (¿?),
falta de soporte IDE o algo así... (¿Estoy diciendo burradas?)
-Alguna otra razon (¿Cuál?)
De todas maneras, esta noche o mañana hago una prueba más... Tengo
kernel, map y archivos boot.X que sé que arrancan bien el HW y leen bien
los discos finales (de hecho está instalado y rula en la máquina de
pruebas en la que voy a poner el HD con la VM pasada a máquina real...).
Voy a probarla cambiando los que le he pasado de la VM por estos y
vuelvo a ejecutar LILO a ver que tal... Os comento...
Saludos,
--
Jon
Más información sobre la lista de distribución eside-ghost