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.cfg
se utilizó el proceso de arranque? Tengo /boot/grub/grub.cfg
en cada una de las tres particiones.
12
/boot/grub/grub.cfg
archivo 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
/boot
podría no ser el que utilizó GRUB. Puede verificar los tiempos de acceso deboot/grub/grub.cfg
cada 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=2
etc. aGRUB_CMDLINE_LINUX
cada uno de estos, ejecutarsudo update-grub2
y reiniciar, puede verificar/proc/cmdline
para ver cuáles de estos valores se usaron.fuente
/boot
se 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
/boot
directorio de su sistema en ejecución. o/boot
es una partición separada o no lo es; Si su/boot
es una partición separada, debe buscar eso:Significa
grub.cfg
que 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
UUID
para 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.cfg
archivos los contiene, esto solo funciona cuando sus parámetros de iniciogrub.cfg
son 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_custom
para agregar una entrada de menú.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.04
a15.04
y 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 else
opció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
,sda2
ysda3
. 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.conf
archivo 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.config
archivo que realmente utilizamos no pertenece al sistema operativo activadosda2
osda3
sí al sistema operativo activadosda1
. En el caso de que uno o más sistemas operativos estén instalados con una/boot
partición separada, tendríamos que verificar qué/boot
parte pertenece a qué sistema operativo, pero eso se hace fácilmente ejecutando elfindmnt
comando 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/boot
en sus puntos montados.Si no está seguro, verifique el UUID
fuente
/boot
pasa si mi es una partición separada? entonces/boot/grub/grub.cfg
no se encuentra en la/
partición./
partición?/boot
primero 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/sda2
o/dev/sda1
. Para estar seguro, después de iniciar el sistema, es decir, "Ubuntu", ejecute el comando correspondiente para enumerar las particiones disponibles (lsblk
parece 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-9
Después de arrancar el sistema, es decir, "Ubuntu", ejecute el comando correspondiente para verificar la versión del paquete GRUB (
grub-install --version
es relevante y más directo).¿Cómo es esto relevante? Porque
grub-install
y losupdate-grub
comandos 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-base
paquete 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.png
en el directorio de destino.Para configurar la imagen de fondo:
Abra el
/etc/default/grub
archivo como superusuario, luego agregue la líneaGRUB_BACKGROUND=
con la ruta completa a la imagen elegida y citada.Luego, ejecute la
sudo update-grub
actualización/boot/grub/grub.cfg
que 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