Los archivos de mi disco duro externo ya no se indexan después de reiniciar. Tengo que volver a montar y luego ejecutar
# updatedb
después de cada reinicio. El problema se actualizab toma unos minutos para mis discos duros externos. ¿Hay alguna manera de que pueda retener la indexación de mis elementos externos después de reiniciar para que el comando de localización pueda buscar a través de mis elementos externos?
EDITAR:Por solicitud aquí están mis especificaciones:
$ cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"
# mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/me/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=me)
/dev/sdb1 on /media/me type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sdd1 on /media/Little Boy type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
/dev/sde1 on /media/Fat Man type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096,default_permissions)
# on_ac_power; echo $?
255
Mejor respuesta
Los archivos de su disco duro externo no están indexados porque updatedb
está configurado para no indexar nada en /media
, que es donde normalmente se monta el almacenamiento externo. Esta configuración se establece en el archivo /etc/updatedb.conf
. Específicamente la entrada /media
en el PRUNEPATHS
línea.
Algunas ideas de cómo puedes hacer updatedb
para indexar su disco externo:
1. Monte la unidad externa debajo de /mnt
.
Si se supone que su disco duro externo debe estar montado permanentemente entonces sugiero configurarlo para que se monte bajo /mnt
en lugar de debajo de /media
. Eso generalmente se puede hacer editando /etc/fstab
. Busque "fstab" para aprender sobre eso. Necesitará derechos de sudo para editar /etc/fstab
.
2. Cree una base de datos dedicada para su disco duro externo y consulte a pedido.
El siguiente comando creará una base de datos dedicada:
updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk
Esto creará la base de datos en el archivo oculto .externalharddisk.db
en tu casa. No necesitas sudo
por ese comando. Ejecute el mismo comando nuevamente para mantener la base de datos actualizada. Cuidado:si ejecuta ese comando mientras el disco duro externo no está montado, entonces updatedb
pensará que los archivos se han eliminado y vaciará la base de datos.
Puede configurar un script para automatizar esa tarea. Busque "cronjob" para aprender a hacerlo. Nota:puede configurar un cronjob de usuario como usuario. No necesita derechos sudo para configurar un cronjob de usuario.
Relacionado:¿Cómo volver a habilitar Unity WebApps en Ubuntu 13.04?El siguiente comando consultará la base de datos:
locate -d ~/.externalharddisk.db searchterm
También puede consultar la base de datos dedicada y la base de datos predeterminada al mismo tiempo:
locate -d ~/.externalharddisk.db: searchterm
Los dos puntos al final seguidos de nada significa buscar también en la base de datos predeterminada.
Puede crear un alias para un uso más fácil. Ponga la siguiente línea en su .bashrc
:
alias locate-external='locate -d ~/.externalharddisk.db:'
Ahora puedes usar locate
para buscar solo en la base de datos predeterminada y locate-external
para buscar también en su disco duro externo.
3. Quitar /media
de PRUNEPATHS
Nota:no lo recomiendo ! Esto se debe a la forma en que updatedb
obras. Si updatedb
se ejecuta mientras se elimina el disco duro externo, todas las entradas que apuntan al disco duro externo se eliminarán de la base de datos. Si updatedb
se ejecuta mientras el disco duro externo está conectado, luego se agregarán nuevamente las entradas que apuntan al disco duro externo. Desde updatedb
se ejecuta regularmente en segundo plano, nunca puede estar seguro de si los archivos del disco duro externo están indexados o no.
Además:si elimina /media
de PRUNEPATHS
, este comportamiento también se aplicará a cualquier otro almacenamiento externo que haya montado mientras updatedb
está actualizando la base de datos.