Reparación do sistema: HowTo chroot

Moitas veces, especialmente cando nos xogamos, atopámonos na situación de non poder acceder ao sistema para reparalo, pero a solución é sinxela: use o comando chroot de calquera LiveCD / RepairCD.

En moitos lugares (foros, blogs ...) mencionase este comando e indícase un "copiar / pegar" do código, pero a miña intención con esta publicación é explicar un pouco eses pasos, co fin de facer un bo uso desta ferramenta, con coñecemento de causa.

Introdución

O comando chroot Coñécese como CHangeROOT, é dicir, un comando que lle permite cambiar a raíz do sistema no que está a traballar. Noutras palabras: se es dun LiveCD e queres que todo o que estás traballando na consola teña un efecto no sistema instalado, primeiro debes facer uso de chroot.

O problema é que non basta con empregalo chroot Como tal, antes debemos montar correctamente certas particións.

COMO

Primeiro necesitamos iniciar un terminal, xa sexa desde outro sistema instalado (noutra partición / disco) ou desde un LiveCD. IMPORTANTE: a arquitectura do LiveCD debe coincidir coa do sistema a reparar (32 ou 64 bits).
Unha vez que esteamos no terminal, comezaremos identificando as nosas particións:
fdisk -l

  • Con este comando listaremos todas as nosas particións / discos. Debemos identificar cal é a partición de destino, onde está instalado o noso sistema para reparar, a partir de agora chamarémola sistema roto.

Para este exemplo consideraremos que o noso sistema non funciona está / dev / sda1 .

Seguimos montando o sistema. Primeiro crearemos o cartafol onde imos traballar e máis tarde montaremos a partición onde se atopa o noso sistema roto nese cartafol
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Se tes o cartafol / home o / onde ou calquera outra noutra partición, debería montala / s do seguinte xeito:
mount /dev/sda2 /mnt/my_linux/var

  • NOTA: Tomei como exemplo a partición / dev / sda2 para o cartafol / var, que cada un axuste o código ás súas características.

Normalmente isto sería suficiente se simplemente precisa editar ficheiros a man, pero se queremos executar algúns comandos que configuran o sistema, necesitamos montar certos cartafoles especiais do sistema: / dev, / proc/ sys.
mount -t proc proc /mnt/my_linux/proc
mount -t sysfs sys /mnt/my_linux/sys
mount -o bind /dev /mnt/my_linux/dev

  • Con opción -t contamos montar o tipo de "sistema de ficheiros" que queremos montar. É necesario especificalo debido á natureza especial das carpetas / proc y / sys.
  • Con opción -o especificamos as opcións de montar. A opción vincular serve para "enlazar". En UNIX todos os dispositivos de hardware son accesibles a través do cartafol / dev, por iso debemos montar a nosa corrente / dev no cartafol onde está agora o noso sistema roto. Como este cartafol xa está montado, só é necesario contalo montar onde está montado orixinalmente.

Faise deste xeito para que chroot teñen acceso a estas carpetas coma se fosen o sistema roto, aínda que deben ser do sistema actual (por exemplo: a sesión LiveCD) xa que están relacionadas co estado do sistema, procesos e hardware.

Agora é o momento de empregalo chroot:
chroot /mnt/my_linux/ /bin/bash

  • O comando pásase como argumentos o camiño da nova raíz «/» (que no noso caso é / mnt / my_linux) e a consola que desexa usar (neste caso, optamos polo coñecido bash, que se atopa en / bin / bash). Se non especificamos a consola, atoparémonos diante dun intérprete de comandos un tanto arcaico (non se enche ao premer o separador, etc.).

Agora podemos usar a consola coma se tivésemos iniciado a sesión raíz no noso sistema roto (editar ficheiros, comprobar scripts, instalar / desinstalar paquetes ...). AVISO! Para que os cambios feitos entren en vigor, debes desmontar o sistema de ficheiros despois de saír chrootMire o seguinte exemplo.

Máis información https://wiki.archlinux.org/index.php/Change_Root (lectura máis que recomendada).

Exemplo de uso: restaurar GRUB2

Un dos usos máis estendidos de chroot É como unha ferramenta para reparar o GRUB. Xa que se o grub rompe, é practicamente imposible arrincar o noso sistema para solucionalo.

AVISO: este pequeno tutorial é un mero exemplo, funciona en varias distribucións derivadas de Debian, Ubuntu e openSUSE entre outras. Aínda así, comprobe a documentación da súa distribución, xa que en moitos non se atopa o comando actualización-grub.
# NOTA: estes comandos executanse unha vez dentro de chroot.update-grub
grub-install /dev/sda

  • con actualización-grub Actualizamos o menú de entrada de GRUB2, engadindo así as entradas que faltan. Máis tarde volvemos instalar GRUB no noso disco, xa que está danado.

Neste caso tomeino / dev / sda como o álbum onde temos o noso sistema, este debe adaptarse ao seu caso.

O noso GRUB xa debería ser reparado, polo que debemos saír chroot, desmonte o sistema de ficheiros (IMPORTANTE) e reinicie para que os cambios entren en vigor. Se esquecemos desmontar o sistema de ficheiros, é posible que reiniciar os ficheiros non se desmonten correctamente e, polo tanto, algúns cambios non terían efecto.
# deixamos chrootexit
# desmontar o sistema de ficheiros e reiniciarumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

E iso é todo. Espero que o disfrutes e que che axude. Un saúdo!


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

24 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado.

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   Leproso_Iván dixo

    Podo usar isto .. Nalgún momento teño que usalo.

  2.   Mario dixo

    Algún de vós usou Chakra Benz? Se é así, podería dicirme se
    é doado para o usuario común? Eu uso SolydK que é moi sinxelo pero
    Comprendo que o Chakra é puro KDE e interésame.

    1.    vaia dixo

      Si, o chakra é moi bo e máis ou menos sinxelo, o certo é que para instalar / desinstalar paquetes hai que facelo coa consola, xa que aínda están a traballar nun xestor de paquetes gráfico. Próbao porque paga a pena. Usa o xestor de paquetes pacman, herdado de Archlinux, pero coidado, non comparte repositorios con arch e NON é compatible con eles. Se queres saber máis sobre Pacman, bota unha ollada á wiki arch https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp dixo

        Oktopi xa é estable e funciona bastante ben para un usuario medio, co que non precisa o terminal para usar pacman.

  3.   x11tete11x dixo

    Espero que esta publicación sexa visitada por moitos, entón comezan a cabeza reinstalándose para calquera cousa cando cun chroot podes reparar o sistema case sempre, o chroot permíteche moitas posibilidades, incluída a instalación de Gentoo xD jajaja

  4.   lunar dixo

    bo, grazas ... Nunca lle dei unha pelota porque algún cd en directo para reparar paréceme que o suben por defecto, pero agora está claro, grazas de novo.

  5.   Lolo dixo

    Para completalo, sería bo explicar como montar particións LVM, particións cifradas e sistemas RAID.

    1.    vaia dixo

      mmm Hai moito tempo que non toco LVM e RAID, pero podería informarme un pouco para completar isto ... grazas polo consello!

      1.    Lolo dixo

        Ben, a verdade é que podería usalo xenial.

        Sería moi agradecido.

        1.    vaia dixo

          bótalle unha ollada a esta wiki, é bastante chula http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Módem dixo

    Se só existise este tema unhas semanas despois, resulta que tiven un problema co meu sistema e lin e lin e en todas partes atopei chroot e blablabla pero non me funcionou en función desa recomendación do directo que é o mesmo que o teu sistema , moi importante porque uso x64, o outro é montar as particións do sistema, porque no meu caso cando estaba aplicando chroot e montando, estaba lanzando un comando e simplemente non o recoñecía.

    Este tema irá aos meus ficheiros de "compilación de información"

  7.   biscoito dixo

    Un Arch LiveCD (con esta ferramenta) é todo o necesario para arranxar o seu sistema cando o rompe.

    1.    RAW-Básico dixo

      ¡Exactamente! .. ..é todo o que fai falta .. incluso para axudar a alguén co seu W $ que decidiu non comezar ..

      Sempre teño comigo un pendrive de 1 GB con Arch Live ... e chroot é todo o necesario para que, baixo calquera problema, en 10 minutos teñas todo en orde sen alarmarte .. 😉

    2.    izzyvp dixo

      Só tes que saber facelo.

    3.    pablo dixo

      Ola, teña en conta que teño un problema cos centos, envíame pánico ao núcleo etc. E non fun quen de resolvelo, teño a miña páxina web e a miña base de datos alí. Non sei que máis facer.

  8.   jony127 dixo

    Bo post, escoitara algún chroot de paso pero non sabía como se usaba, por suposto que nunca o necesitara e por iso non lera algo en particular. Agora coa túa publicación explicada moi claramente, sei usala por se acaso.

    Moitas grazas e, por certo, que viva Led Zeppelin jeje.

  9.   horrible dixo

    grazas, por fin saín do pesadelo de rescate grub

    de feito, seguín todos os pasos, excepto umount / mnt / my_linux, porque me dixo que estaba ocupado, e fuse -km, pero nin sequera iso, e rebote ...

    Espero que non sexa importante ....

    grazas de novo…
    un saúdo

  10.   Jose Antonio dixo

    Aínda que o artigo ten xa un par de anos, quero agradecer ao autor a súa xenerosidade ao compartilo, é un artigo estupendo porque este fin de semana salvoume a vida. Involuntariamente carguei un servidor instalando un paquete e ao reinicialo non se cargou. Despois de tres días intentando solucionalo e lendo diferentes artigos, conseguín chegar por casualidade e finalmente puiden reinstalar grub e arranxar o servidor.

    Moitas grazas!

    1.    vaia dixo

      Alégrome de que che axudase. Grazas polo comentario.

  11.   helio dixo

    Ola, sei que este post hai anos, estou moi agradecido por compartilo. E tiven unha dúbida, no meu caso danou o sistema e tamén os controladores de rede, así que seguín os pasos pero non me permite descargar paquetes, hai algunha forma de vincular a rede en directo co terminal

    1.    vaia dixo

      Non entendo realmente o teu problema ... Cando inicias sesión co LiveCD, o núcleo que se carga é o do LiveCD, polo que deberías poder configurar perfectamente unha conexión a Internet. Unha vez feita a conexión, tente facer o chroot para ver se continúa manténdoa, se non, pode que teña que configurala de novo, pero o núcleo danado non debería afectar a sesión de chroot.
      Se non especificas máis, pódoche dicir ...

  12.   dacha dixo

    Excelente publicación ... un dos poucos artigos útiles atopados en Internet.
    Moitas grazas pola contribución.

  13.   zopeck dixo

    Ola, excelente titorial! Superbamente explicado, para nós meros mortais!

    Teño unha pregunta:
    Cando mencionou que en caso de necesitar instalar paquetes, realizar actualizacións do sistema ou outra actividade especial e requirir o montaxe dos cartafoles / dev / proc e / sys, non me quedou claro se estes cartafoles están no sistema Live co que iniciou o equipo a reparar ou se está montado primeiro na partición raíz.

    Grazas.

  14.   Orlando dixo

    MOITAS GRAZAS!!!!

bool (verdadeiro)