GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Problema de comando actualizado y localizar:¿los archivos del disco duro externo ya no se indexan después de reiniciar?

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.


Ubuntu
  1. ¿Recibe el mensaje 'hdio_get_identity Failed' al arrancar con un disco duro USB externo?

  2. ¿Cómo usar Btrfs con compresión en un disco duro USB externo?

  3. ¿Cómo cambiar la asociación de archivos para archivos abiertos en Dolphin desde la línea de comandos en Gnome?

  4. ¿Ubuntu no arranca desde el disco duro después de la instalación?

  5. ¿Costo de rendimiento de ejecutar Ubuntu desde un disco duro externo?

Cómo buscar archivos desde la Terminal en Linux

¿La computadora de arranque dual no arranca sin un disco duro externo?

Cómo transferir archivos de Ubuntu a Ipad Air 4 con una unidad flash USB

Cómo instalar Ubuntu en un disco duro externo

¿Cómo puedo evitar que un usuario copie archivos a otro disco duro?

Del nombre del dispositivo df al nombre de la unidad física (proveedor/tipo)