GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Aggiornatob e individua il problema del comando:i file dal disco rigido esterno non vengono più indicizzati dopo il riavvio?

I file dal mio disco rigido esterno non vengono più indicizzati dopo il riavvio. Devo rimontare e poi correre

# updatedb

dopo ogni riavvio. Il problema viene aggiornatob richiede alcuni minuti per i miei dischi rigidi esterni. C'è un modo per mantenere l'indicizzazione per i miei esterni dopo il riavvio in modo che il comando locate possa cercare tra i miei esterni?

EDIT:per richiesta ecco le mie specifiche:

$ 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

Migliore risposta

I file dal tuo disco rigido esterno non vengono indicizzati perché updatedb è configurato per non indicizzare nulla in /media , che è dove solitamente viene montata la memoria esterna. Questa configurazione è impostata nel file /etc/updatedb.conf . In particolare la voce /media nel PRUNEPATHS linea.

Alcune idee su come creare updatedb per indicizzare l'unità esterna:

1. Monta l'unità esterna in /mnt .

Se il tuo disco rigido esterno dovrebbe essere montato in modo permanente quindi suggerisco di configurarlo in modo che sia montato sotto /mnt invece che sotto /media . Questo di solito può essere fatto modificando /etc/fstab . Cerca "fstab" per saperne di più. Avrai bisogno dei diritti sudo per modificare /etc/fstab .

2. Crea un database dedicato per il tuo disco rigido esterno e interrogalo su richiesta.

Il comando seguente creerà un database dedicato:

updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk

Questo creerà il database nel file nascosto .externalharddisk.db nella tua casa. Non hai bisogno di sudo per quel comando. Eseguire di nuovo lo stesso comando per mantenere aggiornato il database. Attenzione:se esegui quel comando mentre l'hard disk esterno non è montato, allora updatedb penserà che i file siano stati eliminati e svuoterà il database.

È possibile impostare uno script per automatizzare tale attività. Cerca "cronjob" per imparare a farlo. Nota:puoi configurare un utente cronjob come utente. Non sono necessari i diritti sudo per configurare un cronjob utente.

Correlati:come riattivare Unity WebApps in Ubuntu 13.04?

Il comando seguente interrogherà il database:

locate -d ~/.externalharddisk.db searchterm

Puoi anche interrogare contemporaneamente il database dedicato e il database predefinito:

locate -d ~/.externalharddisk.db: searchterm

I due punti alla fine seguiti da niente significano anche cercare nel database predefinito.

Puoi creare un alias per un uso più semplice. Inserisci la seguente riga nel tuo .bashrc :

alias locate-external='locate -d ~/.externalharddisk.db:'

Ora puoi usare locate per cercare solo nel database predefinito e locate-external per cercare anche nel tuo disco rigido esterno.

3. Rimuovi /media da PRUNEPATHS

Nota:non lo consiglio ! Ciò è dovuto al modo in cui updatedb lavori. Se updatedb viene eseguito mentre il disco rigido esterno viene rimosso, tutte le voci che puntano al disco rigido esterno verranno rimosse dal database. Se updatedb viene eseguito mentre il disco rigido esterno è collegato, le voci che puntano al disco rigido esterno verranno nuovamente aggiunte. Da updatedb viene eseguito regolarmente in background non puoi mai essere sicuro se i file dal disco rigido esterno sono attualmente indicizzati o meno.

Inoltre:se rimuovi /media da PRUNEPATHS , questo comportamento si applicherà anche a qualsiasi altra memoria esterna che hai montato mentre updatedb sta aggiornando il database.


Ubuntu
  1. Ricevi il messaggio "hdio_get_identity non riuscito" all'avvio con un disco rigido USB esterno?

  2. Come utilizzare Btrfs con compressione su disco rigido USB esterno?

  3. Come modificare l'associazione dei file per i file aperti in Dolphin dalla riga di comando in Gnome?

  4. Ubuntu non si avvia dal disco rigido dopo l'installazione?

  5. Recuperare dati da un disco rigido Fat32?

Come cercare file dal Terminale su Linux

Il computer a doppio avvio non si avvia senza disco rigido esterno?

Costo delle prestazioni dell'esecuzione di Ubuntu da un disco rigido esterno?

Come trasferire file da Ubuntu a Ipad Air 4 con chiavetta USB

Come posso impedire a un utente di copiare i file su un altro disco rigido?

Dal nome del dispositivo df al nome dell'unità fisica (fornitore/tipo)