¿Cómo ejecutas update-grub?

25

Entré en Live CD y activé la Terminal. Luego, escribí gksu nautiluspara obtener acceso temporal a mi directorio raíz. Una vez que se abrió la ventana del Administrador, hice clic en Sistema de archivos y navegué al /etc/default/grubdirectorio. Luego hice doble clic en el archivo Grub para hacer cambios en el TIMEOUTy TIMEOUT_QUIET.

Guarde el archivo después de hacer los cambios. Luego volví al modo terminal y escribí:

gksu update-grub

El mensaje de error que recibí fue:

No se puede encontrar un dispositivo para / (¿está / dev montado?)

No estoy seguro de qué hacer en este momento. ¿Cómo puedo ejecutar update-grubpara actualizar los cambios? Gracias de antemano por tu ayuda. Sea muy detallado y específico con su respuesta, ya que soy totalmente nuevo en este entorno.

newbietoubu
fuente

Respuestas:

24

Fase 1 - Nota: no use un Live CD.

  • En su Ubuntu, abra una terminal (presione Ctrl+ Alt+ Tal mismo tiempo)
  • Escriba gedit admin:///etc/default/grub
    Esto ejecutará el editor de texto gedit , si está utilizando otro simplemente escriba el nombre en lugar de gedit.
  • Realice los cambios que desea realizar y guárdelos.
  • Cerrar gedit.
    Su terminal aún debe estar abierto.
  • En el tipo de terminal sudo update-grub, espere a que finalice la actualización.
  • Reinicie su computadora.

Fase 2: después de iniciar sesión en su sistema

  • Abra una terminal nuevamente ( Ctrl+ Alt+ T).
  • Escribe en la terminal gksu gedit /etc/default/grub
  • Para ver el menú grub en el momento del arranque,
    comente o elimine la siguiente línea:GRUB_HIDDEN_TIMEOUT=0
    • Para comentar, agregue #al principio de esta línea, el resultado será#GRUB_HIDDEN_TIMEOUT=0
  • Guarda el archivo.
  • De nuevo en la carrera terminal sudo update-grub.

Si ver el menú de grub en el arranque es lo único que desea, debe deshacer los cambios anteriores en el archivo.

jeroen
fuente
Gracias por su respuesta. El problema original que estoy tratando de resolver es que no puedo abrir el menú de grub. Así que pensé que tenía que usar el Live CD para acceder al archivo de configuración de grub y hacer mis cambios. Leí que si cambio TIMEOUT a 10 y TIMEOUT_QUIT a verdadero, podré acceder al menú de Grub. Cuando inicio el sistema, mantengo presionada la tecla Mayús. Veo las palabras GRUB MENU aparecer solo por una fracción de segundo. Entonces, sin poder usar el Live CD para acceder a la Terminal, no sé cómo modificar el archivo de configuración de GRUB. ¿Alguna sugerencia sobre cómo lograr esto?
newbietoubu
Creo que Jeroen respondió directamente a esto. ¿Posiblemente intentas modificar el menú de grub mientras estás en grub?
pfeiffep
2
Vea mi ansewer mejorado.
jeroen
6

Está recibiendo ese mensaje porque el Live CD no monta un sistema de archivos grabable. Solo debe usarse para probar Ubuntu o para rescatar un sistema dañado. La ejecución de a sudo update-grubsolo funciona en una versión instalada de Ubuntu, donde tiene acceso de escritura a los archivos GRUB subyacentes (y en un Live CD, no).

Aaron
fuente
44
Buena información, pero al OP también le gustaría saber cómo puede hacer los cambios que quiere en /etc/default/grubese momento update-grub.
chaskes
2

Puede hacer la actualización de grub desde un CD en vivo en una distribución de Ubuntu instalada (aunque supongo que esto funciona con cualquier distribución de Linux [¿basada en Debian?). Es "obligatorio" (puede haber otros métodos, pero conociendo este, no lo hago) no se preocupe por ellos en absoluto) si clona su unidad y ya ha instalado la nueva en la computadora. Menciono la clonación aquí ampliamente, porque en cierto sentido el paso de actualización-grub es un subconjunto de la misma y los enfoques tienen el mismo durante una sesión en vivo. También este método se descubrió mediante la búsqueda en el contexto de la clonación. Puede tomar lo que necesita si no está clonando, y su proceso se simplificará.

Debería calificar esto aquí; importante para la clonación, no solo para actualizar grub: lo he hecho solo en sistemas BIOS. No lo he intentado en un sistema UEFI. El sistema UEFI requiere una partición FAT para la carga de arranque y no he probado si esta partición solo debería aparecer durante los pasos de copia de clonación. Espero que afecte el montaje [bind-] requerido que sintetiza el entorno nativo de grub durante la sesión en vivo ...

Esto se detalla en esta página: http://frugaltech.happystoic.com/ssdlinux . He usado este método muchas veces, y puedes intercambiar discos duros alrededor de ad-infinitum usándolo. Intercambiar discos duros físicos se vuelve tan trivial de esta manera, que es tentador convertirlo en su propio pasatiempo y / o tratar de arreglar las computadoras en mal estado de otras personas.

Lo siguiente puede ser una paráfrasis útil de lo que encontrará allí:

  1. Ctrl+ Alt+ Tpara terminal Bash e ingrese un shell de superusuario ( sudo -s) durante una sesión en vivo.

  2. monte la partición de la unidad de instalación completa (que es [o se convertirá] en su directorio raíz del sistema de archivos Linux permanente).

    2a. Si la instalación completa ya existe en su disco duro, salte a (2). SI está CLONANDO: [basado en el supuesto de que no está realizando una instalación nueva, ya que todo es completamente automático en ese caso] si su instalación completa aún no existe en esta partición, ahora es el momento de simplemente

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [estos puntos de montaje son puramente con respecto al entorno de sesión en vivo; en Ubuntu generalmente tienen la forma "/ media / ubuntu / ???"] en la nueva unidad [partición].

    2b. Aquí se pueden manejar otras instalaciones completas del sistema operativo de la misma manera. En general, usé un recurso basado en Windows para copiar particiones de Windows en unidades nuevas por adelantado, pero también utilicé rsync y funcionó para Win XP (suponiendo que tenga soporte para el formato de partición correcto, como ntfs; creo que el Los medios de sesión en vivo generalmente incluyen compatibilidad con formatos alternativos). Solo tenga cuidado con su ortografía y use el seguimiento /en el directorio de origen si está nombrando completamente el destino.

  3. bind-mount the live /dev, /procy /sysdirectorios a sus respectivos directorios en su partición de instalación completa permanente [montada] que está buscando utilizar. El script detallado en el enlace de arriba logra esto de manera muy elegante con una declaración "for". Además, el script dado no necesita ejecutarse como un script, per se. Se puede ingresar desde el indicador de bash, línea por línea.

  4. chroota la partición permanente de instalación completa. Después de hacer (3) y (4), el sistema ahora "prácticamente reside" en su "sistema de archivos final" y GRUB funcionará de manera homogénea. Sin estos pasos, grub asumirá que su sistema es simplemente una sesión en vivo, y no sé específicamente qué hace en ese caso, pero no es el resultado deseado, como se mencionó anteriormente en este hilo.

  5. ejecute grub-install en la /dev/sdX(unidad, no en el punto de montaje) que corresponde con la instalación permanente (o cualquier unidad que albergue GRUB si es un sistema de varias unidades [, inicio múltiple]). La flexibilidad aquí puede depender de su cosecha y BIOS. Hasta donde sé, ejecutar "grub-install" no hace nada dañino si no es necesario, por lo que siempre lo hago si estoy usando este método de sesión en vivo.

  6. ejecute update-grub y actuará como si el sistema en ejecución estuviera anidado en la futura partición permanente, descubriendo todos los núcleos y sistemas operativos de arranque que pueda tener disponibles.

  7. Si no ha cambiado físicamente los discos duros, salte a (5). De lo contrario, edite o verifique su /new/linux/filesystem/live-mount-point/etc/fstabarchivo para garantizar la estructura correcta del sistema de archivos para su [nuevo] entorno. Si está en este nivel, seguramente ya sabe cómo usarlo blkid para cosechar UUID para fstab.

    En mi humilde opinión: siempre debe usar UUID en fstab (no en forma "dev / sdXY") ya que en su propio alcance es inmune a la reconfiguración del disco duro físico, aparte del grado en que esto requiere actualizaciones literales de los valores de UUID (como si en en algún momento en el futuro, instalará un HDD adicional para su directorio / home, etc.). Es simplemente el enfoque más fundamental, robusto e invariante.

  8. salga del chroot, salga del super shell, salga de bash, apague e inicie el sistema sin los medios en vivo. Ahora debería estar donde pretendía.

    Importante: los argumentos para mount y chrootson directorios (generalmente, PUNTOS DE MONTAJE como /mnt/??o /media/??) correspondientes a la sesión en vivo. En la mayoría de los casos, si no en todos, una instalación completa reside en su propia partición, por lo que los términos "directorio" y "punto de montaje" son esencialmente sinónimos aquí. El argumento para grub-install es una UNIDAD FÍSICA (generalmente /dev/sdX, donde "X" es una letra correspondiente a la unidad en su sistema, sda, sdb, etc. y no debe depender de la sesión).

Ahora deberías haber terminado. Simultáneamente cloné Windows (XP y 7) en varias permutaciones junto con Ubuntu y Puppy usando este método y no me ha fallado. Creo que puede usar un medio en vivo de una distribución diferente (sin embargo, solo he usado diferentes sabores de Ubuntu y Mint para esto) siempre que proporcionen la versión de GRUB que tiene la intención de usar. Puede mover particiones, intercambiar unidades, combinar otras instalaciones del sistema operativo y clonar hacia o desde SSD utilizando esto. Sin embargo, solo puedo hablar con él trabajando en la misma máquina. Supongo que los controladores que podrían ser necesarios para una máquina diferente podrían haberse omitido durante su instalación completa anterior. Mi regla general es cambiar las unidades en una computadora requiere este método, pero cambiar las computadoras con una unidad requiere una [reinstalación] completa.

¿Quizás alguien pueda desacreditar esto ...?

Jonathan Whittum
fuente
1
Bienvenido a Ask Ubuntu! :-) Excelente primera respuesta! +1
Fabby