¿Para qué son estos comandos?

10

Ayer tuve que instalar un Windows con su anulación Grub.

Bueno, no es la primera vez que tengo que arreglar Grub, así que usé LiveCD, monté la partición raíz (no tengo arranque, solo /y home) y corrí grub-install --root-directory=/mnt/ /dev/sda. Sin embargo, no funcionó.

Después de buscar en Google por un tiempo, encontré un tutorial en el que, en lugar de simplemente montar la partición de Linux, también lo hizo mount --bind /mnt/dev /devy mount --bind /mnt/proc /proc/. Después de que chroota /mnty luego instalado Grub, y el uso de este método, funcionó.

¿Para qué son los mount --bindcomandos? Estoy familiarizado con el uso de --bind used(página man) pero no sé por qué se utilizó en este ejemplo.

eez0
fuente

Respuestas:

10

procy sysel kernel en ejecución proporciona los sistemas de archivos; cuando el kernel no se está ejecutando, dejan de existir. Esto significa que cuando se conecta a otro sistema operativo, estos sistemas de archivos no están presentes. Muchos programas esperan que existan para que puedan funcionar, por ejemplo, pueden requerir información sobre el sistema en ejecución o desean modificar la forma en que el kernel maneja algo. A menudo es suficiente simplemente proporcionar /procy /sysdesde el núcleo actual para que estos programas funcionen como se espera.

Un enlace simbólico no sería suficiente, ya que el acto de chrooting invalidaría las rutas de archivo utilizadas. En Linux, tampoco puede vincular los directorios (excepto .y .., según lo dispuesto por mkdir). Esto significa que se debe utilizar una tercera opción para reflejar estos sistemas de archivos en el entorno chrooteado: el montaje de enlace. El núcleo proporciona un montaje de enlace directamente y funciona como se espera dentro de un chroot.

Chris Down
fuente
procy sysse puede montar en varios lugares, por --bindlo que no es necesario (solo móntelos dos veces). Sin embargo, /dev/es administrado por udev, no por el núcleo interno.
Maciej Piechotka
@MaciejPiechotka Nunca mencioné / dev, porque no está en la pregunta, pero eso no tiene que ser administrado necesariamente por udev.
Chris Down
Me refería más a procy syscomo sistemas de archivos que se pueden montar doblemente ( mount -t proc none /mnt/proc) para que no sea necesario mount --bind. devgeneralmente es administrado por el espacio de usuario (ya sea udev, busybox o cualquier otra cosa), por lo que debe hacerlo. Punto menor de todos modos.
Maciej Piechotka
0

La --bindopción permitirá que el punto de montaje se muestre en un chrootentorno ed.

Anthon
fuente