¿Cómo hacer mount --bind permanente?

22

Cuando estoy haciendo:

mount --bind dirone dirtwo

Después de reiniciar el sistema operativo, se pierde el enlace.

Estoy revisando directorios enlazados en /proc/mounts

¿Cómo puedo hacer que estos enlaces sean permanentes sin obstruirme /etc/fstab?

Aquí hay una entrada de /proc/mounts

/dev/disk/by-uuid/4f5082d7-aba2-4bc7-8d64-3bbb3d773aab /home/username/dir ext4 rw,relatime,data=ordered 0 0
Alexander Kim
fuente
1
Debe ejecutar ese comando durante el arranque (rc.local) o poner una entrada en / etc / fstab. ¿Qué te hace pensar que esto está obstruyendo / etc / fstab? , esto es para lo que sirve fstab, fstab es mucho más "limpio" que rc.local
Panther

Respuestas:

31

¿Qué quieres decir con "obstrucción /etc/fstab"? El mejor lugar para poner esto es /etc/fstab ; para eso fue hecho!

Todo lo que tiene que hacer es agregar una línea después del primer montaje:

# <device>                                 <dir>                 <type>  <options>                 <dump>  <pass>
UUID=288a84bf-876c-4c4b-a4ba-d6b4cc6fc0d2  /mnt/device            ext4    defaults,noatime,nofail   0       2
/mnt/device                                /srv/binded_device     none    bind                      0       0
ryanmjacobs
fuente
¿Entonces recomienda simplemente copiar / pegar de /proc/mountsa /etc/fstab?
Alexander Kim
Sí, eso debería funcionar. Simplemente copie tanto la montura original como lamount --bind
ryanmjacobs
Gracias, pero mount --bindno guardado en /proc/mounts?
Alexander Kim
No, supongo que no; pero, no debería ser demasiado difícil copiar el primer montaje y luego agregar el suyo mount --bind.
ryanmjacobs
al igual que en tu ejemplo en lugar de rw,relatime,data=orderedescribir bind, ¿verdad?
Alexander Kim
19

La forma más fácil es montar: atar lo que necesita

mount --bind /home/sda1/Windows/Users/Me/Dropbox ~/Dropbox

Entonces abra mtab

sudo nano /etc/mtab

Copia tu línea como

/home/sda1/Windows/Users/Me/Dropbox /home/me/Dropbox none rw,bind 0 0

y pegarlo en fstab para que se monte al reiniciar

sudo nano /etc/fstab

Si su carpeta está en el disco montado, asegúrese de que su línea de enlace viene después del montaje del disco

dgpro
fuente
2
Esta debería ser la solución aceptada.
Daksh Miglani
3

Otra solución (que es útil cuando está usando LVM y la respuesta aceptada no funcionará y algunos pueden considerar más útil ya que usa un poco más de lógica) sería hacer algo similar a esto:

Agregue lo siguiente a su crontab
# crontab -l | cola -1; cat / usr / sbin / custom-compiler-mount

@reboot /usr/sbin/custom-compiler-mount

Esencialmente, usaría crond para ejecutar un script al reiniciar

#!/bin/bash
( until [[ $( (mount |& grep vg0-homevol 2>&1 9<&1 > /dev/null 1<&9) ) ]] ; 
do 
sleep 1 
done & wait;mount -o rbind /home/linuxgeek/experimental/s3/gcc/ /gcc & ) & >/dev/null 
linuxgeek
fuente