En mi script bash, monto particiones, las verifico, les copio archivos y las desmonto. Cuando el script monta la partición, Nautilus aparece con una ventana que muestra la partición y el foco de robo. Esto es algo que quiero evitar.
Nota: Sé que puedo cambiar el comportamiento de esto en Configuración del sistema, Detalles, Medios extraíbles Never prompt or start programs on media insertion
, pero no quiero cambiar el comportamiento, por ejemplo, si una memoria USB está conectada, solo quiero evitarlo en mi script bash . Dado que este script se ejecuta en las computadoras de otros usuarios, no puedo modificar esta configuración (en el script) porque si se termina de manera anormal, dejará las configuraciones modificadas en su lugar (tampoco creo que sea necesario hacerlo).
En realidad, esta visualización automática no parece consistente. Si hago exactamente el mismo comando desde la terminal, Nautilus no se muestra, y sé que hay otras monturas en mi script que no se muestran. Entonces, ¿qué podría estar causando esto? Aquí hay un ejemplo del código (ambos provocan que se abran ventanas nautilus separadas):
mount $dev $target
mkdir -p $target/home
mount $homedev $target/home
Estoy interesado en comprender el proceso por el cual el montaje señala a Nautilus y por qué sucede esto (cuando no lo hace si monte la partición desde el terminal). Y cuál es la mejor manera de evitar que esto suceda.
Noté este comportamiento a partir de la versión 11.10 (si no recuerdo mal). Actualmente estoy ejecutando 12.04, pero el script tiene que funcionar en todas las versiones compatibles. No creo que la solución deba involucrar la modificación de la configuración del sistema (que puede diferir entre versiones). Por ejemplo, si observa otras cosas que montan particiones (como os-prober), no aparecen ventanas nautilus cuando se montan diferentes particiones.
El guión se puede encontrar aquí . Y aquí está la parte donde aparece Nautilus. Creo que también aparece aquí , pero he estado centrando mis pruebas en el primer enlace. Aquí es donde no aparece, llamado antes de esas otras monturas: tenga en cuenta que he reescrito las primeras como: solo lectura y dentro de una declaración if y no hace ninguna diferencia.
Idealmente, la respuesta explicará por qué está sucediendo esto y cómo prevenirlo, en otras palabras, explicará por qué el in-script mount
se trata de manera diferente al emitido desde un terminal. También se aceptará una buena solución si se trata de una solución completa y práctica que sea compatible con todos los entornos de escritorio (ubuntu, kubuntu, xubuntu, lubuntu, etc.). También quiero evitar un aumento exponencial en las pruebas para verificarlo.
Gracias por adelantado
============
Solución según el enlace de papashou :
add_udev_rules ()
{
for i in "$dev" "$homedev" "$bootdev" "$usrdev"; do
if [ -n "$i" ]; then
block=${i#/dev/}
echo "KERNEL==\"""$block""\",ENV{UDISKS_PRESENTATION_HIDE}=\"1\"" >> "$wubi_move_dir"/wubi_move.rules
fi
done
cp "$wubi_move_dir"/wubi_move.rules /etc/udev/rules.d/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
remove_udev_rules ()
{
rm /etc/udev/rules.d/wubi_move.rules
rm "$wubi_move_dir"/wubi_move.rules
udevadm trigger > /dev/null 2>&1
}
Esto logra el resultado deseado, pero se siente como un enfoque de mazo. Creo que probablemente haya un ajuste fino en udev que permitirá que la partición siga apareciendo en Nautilus (y otros exploradores de archivos) sin aparecer cuando esté montada. Por cierto, si alguien quiere probar esto, el siguiente script mostrará el efecto emergente de nautilus:
mkdir -p /tmp/testmount
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
mount /dev/sda1 /tmp/testmount
sleep 3
umount /dev/sda1
rmdir /tmp/testmount
Voy a seguir jugando udev
y también he presentado un error , ya que esto no tiene ningún sentido para una partición que no está insertada para actuar como una tarjeta USB / multimedia insertada en el soporte. Además, udevadm trigger
no es una operación económica que parece (al menos en 12.04) congelar temporalmente todo.
Entonces, en resumen, tengo una solución viable (gracias a todos los que me ayudaron), que puedo implementar o no (aún no estoy seguro); pero seguiré buscando otra cosa Gracias
Respuestas:
Pruebe esta sugerencia: http://www.worldofnubcraft.com/969/hide-your-disks-or-partitions-from-nautilus/
Estoy bastante seguro de que tiene que ver con las señales y el procesamiento de udev.
fuente
udevadm trigger
. Solo quiero confirmar que funciona en el script. Publicaré los detalles en la pregunta si no ha agregado más aquí.Intenta envolver tu script:
No probado porque estoy en 10.04
ACTUALIZAR:
fuente
Puede evitar el montaje automático de la unidad flash agregando una nueva regla udev. En esa regla, puede especificar una unidad flash por su proveedor, número de serie y otros atributos. Ver líneas ATTRS {} en la salida de:
Ese script debe colocarlo en la carpeta /etc/udev/rules.d con un nombre de archivo especial, por ejemplo, 81-usb-wubi-move.rules
La regla podría verse así
Ver también:
fuente
mount
desde el terminal), pero si obtengo una buena solución, también lo aceptaré.No probado ... solo una corazonada.
Monte el sistema de archivos en un árbol inaccesible para el usuario nautilus, por ejemplo, en un subdirectorio de / root o / home / someoneelse o un subdirectorio / tmp propiedad y asegurado por otra persona
Tenga en cuenta que puede ser una mala idea montar el mismo dispositivo de hardware en dos puntos de montaje y modificarlo desde ambos.
Es posible alguna configuración humana en (12.04beta) Ubuntu-> Configuración del sistema-> Detalles-> Medios extraíbles. Algunas de las opciones podrían configurarse para "no hacer nada" y eso podría evitar la ventana emergente.
La documentación en https://help.ubuntu.com/community/Mount/USB podría ser útil para 9.10 pero no funcionó con 12.04. Las claves para gconf-editor que mencionan ya no se usan.
fuente
chmod 700
en el directorio ... parecía prometedor y luego apareció una ventana de mensaje (sin título de ventana): "No se puede abrir una carpeta para el sistema de archivos de 10 GB", "No hay ninguna aplicación registrada que maneje este archivo"Prueba
mount
con las banderas-n
y-i
.fuente