Tengo una máquina que tiene particiones de arranque múltiple. Tengo Ubuntu 14.04 en una partición, Ubuntu 15.04 en la segunda y Ubuntu 16.04 en una tercera. ¿Hay alguna manera de saber, desde la línea de comandos, desde qué partición había arrancado, para encontrar en qué partición /boot/grub/grub.cfgse utilizó el proceso de arranque? Tengo /boot/grub/grub.cfg en cada una de las tres particiones.
12

/boot/grub/grub.cfgarchivo utilizado para el arranque podría haberse eliminado, esa partición podría haberse eliminado de la tabla de particiones y ese disco eliminado físicamente del sistema.Respuestas:
Una vez que GRUB ha entregado el arranque al kernel, el kernel no tiene idea de qué lo inició y
/bootpodría no ser el que utilizó GRUB. Puede verificar los tiempos de acceso deboot/grub/grub.cfgcada una de las particiones para ver a cuál se accedió más recientemente. Eso podría decirle qué archivo de configuración de partición utilizó GRUB.Si los tiempos de acceso no se actualizan, deberá buscar cualquier diferencia en los parámetros del núcleo utilizados por los diversos archivos de configuración de GRUB. Si puede cambiarlos, por ejemplo, agregar
foo=1,foo=2etc. aGRUB_CMDLINE_LINUXcada uno de estos, ejecutarsudo update-grub2y reiniciar, puede verificar/proc/cmdlinepara ver cuáles de estos valores se usaron.fuente
/bootse encuentra, pero eso podría no ser lo que usó grub, y usted y Katu están encontrando que la partición montada/está montada, pero, como señaló Ravexina, eso probablemente tiene incluso menos conexión/, seguro. ¿Encontrar qué configuración de GRUB de la partición se usó durante el arranque? No veo cómo se relaciona eso.Como sabe, el archivo que está buscando se encuentra en el
/bootdirectorio de su sistema en ejecución. o/bootes una partición separada o no lo es; Si su/bootes una partición separada, debe buscar eso:Significa
grub.cfgque el que se ha utilizado se encuentra ensda2.De lo contrario, debe buscar
root:esta vez se encuentra ubicado en
sda1.O incluso por diversión , podemos verificar los parámetros de tiempo de arranque:
luego use
UUIDpara averiguar qué partición es su raíz.Lo que significa de
sda1.También puede verificar estos parámetros de inicio para ver cuál de sus
grub.cfgarchivos los contiene, esto solo funciona cuando sus parámetros de iniciogrub.cfgson diferentes entre sí.fuente
readlink -f /dev/disk/by-uuid/<UUID>.Para mostrar el dispositivo que contiene el sistema de archivos raíz montado actualmente:
Para mostrar la versión de lanzamiento de Ubuntu actualmente en ejecución:
fuente
lsb_release -rs. KISSPodríamos agregar una entrada de menú personalizada simple en cada sistema operativo y veríamos en el menú Grub desde el cual OS Grub cargó su archivo de configuración.
Ejemplo:
Arrancamos en 16.04 y editamos el archivo
/etc/grub.d/40_custompara agregar una entrada de menú.#! / bin / sh ejecutivo exe -n +3 $ 0 # Este archivo proporciona una manera fácil de agregar entradas de menú personalizadas. Simplemente escriba el # entradas de menú que desea agregar después de este comentario. Ten cuidado de no cambiar # la línea de 'cola ejecutiva' arriba. # # menuentry 'grub.conf cargado desde 16.04' { reiniciar }Nos aseguramos de que el archivo sea ejecutable y se ejecute
sudo update-grub.Luego hacemos los mismos cambios en los otros sistemas operativos, solo usamos diferentes nombres para el menuentry, ig cambiamos
16.04a15.04y así sucesivamente.Si seleccionamos esta entrada de menú en el menú Grub durante el arranque, la máquina simplemente se reiniciará, los creamos no para arrancar ningún sistema operativo, sino para ver qué sistema operativo se usa realmente para cargar
grub.conf.Información Adicional
Este tipo de confusión aparece cuando instalamos múltiples sistemas operativos que utilizan Grub y durante la instalación de un sistema operativo elegimos la misma ubicación del cargador de arranque. De hecho, solo necesitamos un sistema operativo que instale Grub, Grub puede arrancar en cualquier distribución de Linux, por lo que si tenemos una distribución instalada (incluida Grub), podríamos instalar sistemas operativos adicionales sin instalar Grub.
En las instalaciones heredadas, es bastante fácil manejar la ubicación para la instalación del cargador de arranque, ya que podemos elegir el registro de arranque de la partición como ubicación, pero debemos tener cuidado de elegir la partición correcta. Entonces, un sistema operativo instala el cargador de arranque en el MBR y los sistemas operativos adicionales instalan el cargador de arranque en el PBR de la partición del sistema operativo. Esta posibilidad solo la tenemos cuando usamos la
Something elseopción durante la instalación.En las instalaciones de UEFI es un poco más extraño, el gestor de arranque se instalará en una carpeta en la partición del sistema EFI (ESP) y pueden coexistir fácilmente varios gestores de arranque. El problema aquí es que todos los sabores de Ubuntu y también algunas otras distribuciones de Linux instalarán Grub en la misma carpeta en el ESP y no tenemos otra opción. Por lo tanto, la instalación de una distribución de Linux adicional sobrescribiría nuestro cargador de arranque ya existente. La única forma en que sé evitar esto es iniciar una sesión en vivo e iniciar el instalador con
sudo ubiquity -b.Otra solucion simple
Supongamos que tenemos tres distribuciones de Linux instaladas en las particiones
sda1,sda2ysda3. Ahora echamos un vistazo a las entradas del menú de arranque de Grub. Durante el arranque, veremos algo como esto:Las dos primeras entradas son las entradas para el sistema operativo que generó el
grub.confarchivo que realmente utilizamos. Las entradas # 3 y # 4 no son interesantes en este momento. Las entradas n. ° 5, n. ° 6, n. ° 7 y n. ° 8 son las entradas que se generaron con OS-prober y vemos en qué particiones residen los sistemas operativos para estas entradas. Entonces, en el caso de este pequeño ejemplo, podemos concluir que elgrub.configarchivo que realmente utilizamos no pertenece al sistema operativo activadosda2osda3sí al sistema operativo activadosda1. En el caso de que uno o más sistemas operativos estén instalados con una/bootpartición separada, tendríamos que verificar qué/bootparte pertenece a qué sistema operativo, pero eso se hace fácilmente ejecutando elfindmntcomando en cada sistema operativo.fuente
Y verifique en qué disco está montado
/. Lea los comentarios a continuación o la respuesta de Ravexina si tiene/booten sus puntos montados.Si no está seguro, verifique el UUID
fuente
/bootpasa si mi es una partición separada? entonces/boot/grub/grub.cfgno se encuentra en la/partición./partición?/bootprimero por separado .Para saber desde qué partición se inició el usuario, mire el menú del cargador de inicio antes de iniciar cualquiera de los sistemas instalados. Es difícil saberlo sin ver el menú del cargador de arranque.
Donde mirar
En las siguientes capturas de pantalla combinadas, he etiquetado tres pistas que uno podría saber de qué partición había arrancado el usuario.
La pista más aparente es la etiqueta (3), que es cambiar la imagen de fondo de GNU GRUB en el sistema que tiene control del menú del cargador de arranque. Es el más fácil de saber, siempre que el usuario lo haya configurado de antemano.
Etiqueta (1) explicada
Busque la partición que no aparece en las entradas del menú debajo de la primera entrada. En la captura de pantalla, solo se instalan dos sistemas operativos, es decir, "Ubuntu" y "Ubuntu 14.04.5 LTS".
Este último ha mencionado
(on /dev/sda3), lo que significa que el primero podría estar ubicado en/dev/sda2o/dev/sda1. Para estar seguro, después de iniciar el sistema, es decir, "Ubuntu", ejecute el comando correspondiente para enumerar las particiones disponibles (lsblkparece ser lo más sencillo).Solo después de comparar con la salida de
lsblk, entonces sabemos que el sistema, es decir, "Ubuntu" se encuentra en/dev/sda2(que no figuraba en las entradas del menú) desde el que se gestiona el menú del cargador de arranque.Etiqueta (2) explicada
Busque la versión GRUB que está impresa en la parte superior del menú del cargador de arranque. Tenga en cuenta esa versión y compárela con la versión de GRUB que se encuentra en el sistema arrancado, es decir, "Ubuntu".
En la captura de pantalla (mitad inferior):
GNU GRUB version 2.02~beta2-9Después de arrancar el sistema, es decir, "Ubuntu", ejecute el comando correspondiente para verificar la versión del paquete GRUB (
grub-install --versiones relevante y más directo).¿Cómo es esto relevante? Porque
grub-instally losupdate-grubcomandos son proporcionados por el mismo paquetegrub2-common. Dado que el menú del cargador de arranque se crea y actualiza utilizando herramientas del mismo paquete, la versión impresa en la parte superior del menú del cargador de arranque será la misma.Etiqueta (3) explicada
Esta sugerencia requiere que se configure manualmente, ya que la imagen de fondo predeterminada del menú del cargador de arranque es ninguna (solo negro). La imagen de fondo debe tener una profundidad de 8 bits.
Si el
desktop-basepaquete está instalado en su sistema, las imágenes de fondo hechas especialmente para GRUB se encuentran fácilmente con el sufijo del nombre de archivo*grub.pngen el directorio de destino.Para configurar la imagen de fondo:
Abra el
/etc/default/grubarchivo como superusuario, luego agregue la líneaGRUB_BACKGROUND=con la ruta completa a la imagen elegida y citada.Luego, ejecute la
sudo update-grubactualización/boot/grub/grub.cfgque incluye el menú del cargador de arranque. El usuario verá una salida similar a la siguiente.Reinicie la máquina y vea si el menú del cargador de arranque tenía cambios visibles realizados por el comando de actualización del sistema.
De lo contrario, repita los pasos para otros sistemas, uno a la vez. Los pasos repetidos habrían sido innecesarios si el usuario supiera qué sistema tenía control sobre el menú del cargador de arranque (nuevamente, esto depende de cómo se realizó la instalación).
Descargo de responsabilidad
Esta respuesta explica los criterios probados y comprobados para el sistema BIOS con configuración de arranque múltiple usando la versión de PC / BIOS GNU GRUB. Se aplicarán las siguientes excepciones.
Para UEFI contraparte del sistema utilizando la versión de GNU GRUB EFI, se no garantiza o no sabe si aparecerían los criterios a ser el mismo que el descrito anteriormente.
Se enfatiza el aspecto del menú del cargador de arranque (cómo puede parecer diferente, es decir, la mitad superior de la captura de pantalla) en lugar de demostrar cómo funciona la carga en cadena. Como tal, con respecto a "cómo se configuró el arranque múltiple como se ve en la captura de pantalla" no se explicaría en esta respuesta.
Si la configuración de arranque múltiple se realiza con las mismas copias de un sistema operativo similar, es decir, Ubuntu 14.04, Kubuntu 14.04, Xubuntu 14.04, etc., entonces la única forma confiable de saber desde qué partición arrancó el usuario es la etiqueta (3).
La etiqueta (3) podría funcionar mejor utilizando una imagen de fondo personalizada que escriba explícitamente desde la que se inicia, es decir, "Este menú de inicio se gestiona desde / dev / sda1". Del mismo modo, con respecto a "cómo crear una imagen de fondo personalizada para GRUB" no se explicaría en esta respuesta.
TL; DR Mire el menú del cargador de arranque antes de arrancar cualquiera de los sistemas instalados. La forma más fácil y confiable de conocer es la etiqueta (3), que es configurar manualmente la imagen de fondo de GRUB.
fuente